반응형
    
    
    
  의존성 관리
- Spring Framework는 의존성 설정을 개발자가 직접 하고, 호환되는 버전 관리도 수동으로 해야 해서 불편함이 많았음.
하지만 스프링 부트에서는 이 같은 불편함을 해소 하기 위해
💡 ‘spring-boot-starter’라는 의존성을 제공
- 의존성은 여러 종류가 있음
- 각 라이브러리의 기능과 관련해서 자주 사용되고 서로 호환되는 버전의 모듈 조합을 제공 → 이를 통해 개발자는 라이브러리 호환 문제를 해결할 수 있다.
좀 더 예를 들어 설명한다면
- 기존 Spring Framework 방식의 문제점
예전에는 어떻게 했을까?
기존 Spring 프로젝트에서는 다음과 같은 식으로 직접 라이브러리 버전을 정해서 명시해야 했음
dependencies {
    implementation 'spring-core:4.3.0.RELEASE'
    implementation 'spring-context:4.3.0.RELEASE'
    implementation 'spring-webmvc:4.3.0.RELEASE'
    implementation 'jackson-databind:2.8.0'
    implementation 'log4j:1.2.17'
    ...
}
- 버전 하나라도 안 맞으면 에러 발생
- A 버전이 B 버전과 호환되지 않으면 충돌
- 직접 하나하나 맞춰줘야 해서 굉장히 귀찮고 오류 발생 가능성 큼
Spring Boot의 해결책: spring-boot-starter
Spring Boot에서는 이런 고통을 줄이기 위해 아래처럼 간단하게 사용
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
💡 내부적으로는 위 1줄이 여러 개의 라이브러리와 그 호환 버전들을 모두 자동으로 포함해줌
예제: spring-boot-starter-web이 실제로 포함하는 것들
spring-boot-starter-web
├── spring-boot-starter
│   ├── spring-boot
│   ├── spring-core
│   ├── spring-boot-autoconfigure
│   └── slf4j (로깅)
├── spring-web
├── spring-webmvc
├── jackson (JSON 직렬화)
├── validation-api (유효성 검사)
└── tomcat (내장 서버)
그래서 개발자는 이걸 몰라도 됨
- 톰캣을 따로 설치하거나 설정할 필요 없음
- 웹 서버 설정할 필요 없음
- JSON 라이브러리 설정 안 해도 됨
spring-boot-starter 많이 사용되는 라이브러리 소개
- spring-boot-starter web : 스프링 MVC를 사용하는 RESTFul 애플리케이션을 만들기 위한 의존성이다. 기본적으로 내장 톰캣(Tomcat)이 포함돼 있어 jar 형식으로 실행 가능
- spring-boot-starter-test : JUnit Jupiter, Mockito 등의 테스트용 라이브러리 포함
- spring-boot start-jdbc : HikariCP 커넥션 풀을 활용한 JDBD 기능을 제공
- spring-boot-starter-security : 스프링 시큐리티(인증, 권한, 인가 등) 기능 제공
- spring-boot-starter-data-jpa : 하이버네이트를 활용한 JPA 기능 제공
- spring-boot-starter-cache : 스프링 프레임워크의 캐시 기능 지원
의존성 조합 충돌 문제가 없도록 ‘spring-boot-starter-parent’가 검증된 조합 제공
반응형
    
    
    
  'Spring Boot > 스프링 프레임워크 vs 스프링 부트, 의존성 관리' 카테고리의 다른 글
| [Spring boot] 스프링 프레임워크 vs 스프링 부트 (1) | 2025.07.21 | 
|---|