Spring Boot 의존성 스타터(Starters)¶
개요¶
Spring Boot로 프로젝트를 시작할 때 "어떤 의존성을 몇 버전으로 추가해야 하지?" 하고 예제 코드를 뒤져가며 의존성 선언을 붙여넣는 경험, 한 번쯤 있을 거예요. Spring Boot는 이런 수고를 덜어주는 스타터(starter)를 제공합니다. 스타터는 "이 기술을 쓰고 싶다면 이것만 추가하면 된다"는 편의 의존성 묶음이에요. 예를 들어 JPA로 데이터베이스 접근을 시작하고 싶다면 spring-boot-starter-data-jpa 의존성 하나만 추가하면 됩니다.
핵심 개념¶
스타터가 뭘 해주나¶
스타터에는 프로젝트를 빠르게, 그리고 일관된 지원 버전으로 띄우는 데 필요한 의존성 대부분이 들어 있어요. 특정 기술과 관련된 모든 스프링 및 서드파티 의존성이 관리 전이 의존성으로 함께 딸려 옵니다. "이 기능에는 이 스타터를 넣자"라는 하나의 결정으로 필요한 것들을 한 번에 채우는 셈이죠.
의존성 관리는 버전 관리를 대신¶
Spring Boot의 각 릴리스는 자체적으로 지원하는 의존성의 큐레이션 목록(curated list)을 제공합니다. 그래서 빌드 설정에서 해당 의존성들의 버전을 대부분 명시하지 않아도 돼요. Spring Boot를 업그레이드하면 이 의존성들이 일관되게 함께 올라갑니다. 물론 특정 의존성의 버전을 직접 지정해 권장값을 덮어쓸 수도 있어요. 출시 버전마다 기준 Spring Framework 버전이 짝지어져 있으니, 그 버전을 직접 지정하지 않는 게 권장됩니다.
대표 스타터들¶
org.springframework.boot 그룹 아래 많은 애플리케이션 스타터가 있어요.
spring-boot-starter— 자동 설정 지원, 로깅, YAML을 포함한 핵심 스타터.spring-boot-starter-webmvc— Spring MVC와 Tomcat 기반 웹(이전spring-boot-starter-web의 후속).spring-boot-starter-webflux— WebFlux와 Reactor Netty 기반 리액티브 웹.spring-boot-starter-data-jpa— Hibernate 기반 Spring Data JPA.spring-boot-starter-data-redis— Lettuce 클라이언트 기반 Redis.spring-boot-starter-security— Spring Security.spring-boot-starter-validation— Hibernate Validator 기반 빈 검증.spring-boot-starter-test— JUnit Jupiter, Hamcrest, Mockito를 포함한 테스트 스타터.spring-boot-starter-actuator— 운영 모니터링·관리 기능을 제공하는 Actuator 스타터.
이 밖에 특정 기술 측면을 빼거나 바꾸고 싶을 때 쓰는 스타터(WebFlux용 Jetty 런타임, Logback·Log4j2 등)도 있습니다. 커뮤니티가 만든 스타터는 spring-boot-starters 저장소의 README에서 확인할 수 있어요.
빌드 시스템¶
Maven이나 Gradle을 권장하며, Maven Central의 아티팩트를 소비하고 의존성 관리를 지원하는 빌드 시스템을 고르는 게 좋아요. Ant+Ivy로도 가능하지만 잘 지원되지는 않습니다. 스타터는 spring-boot-dependencies라는 표준 BOM(대량 재료 명세)로 제공되어 Maven·Gradle 모두에서 쓸 수 있어요.
실제 적용 (데이터스케쳐스 관점)¶
웹빌더 백엔드의 Spring Boot 모듈은 스타터를 조합해 필요한 기술 묶음을 선언합니다.
- 선언적 의존성 — 웹, 데이터, 보안, 모니터링이 필요하면 해당 스타터만 추가해 반복 설정을 줄여요.
- 버전 관리 위임 — Spring Boot의 큐레이션 목록에 버전 관리를 맡기고, 필요한 경우에만 버전을 오버라이드해요.
- 운영 스타터 —
spring-boot-starter-actuator를 추가해 모니터링 지표를 기본 제공받아요.
더 알아보기¶
- 공식 문서 (1차): Spring Boot Build Systems · Starters
- 인접 챕터: 자동 설정(Auto-configuration) · Actuator 모니터링
- 상위 문서: Spring Boot