스프링 부트 스타터란 의존성이 모여 있는 그룹이다. 스타터를 이용해 필요한 기능을 간편하고 빠르게 설정이 가능하다.
스타터는 spring-boot-starter-{작업유형}이라는 명명 규칙이 존재한다.
예를 들어 JDBC 관련 스타터는 spring-boot-starter-jdbc이다.
자주 사용하는 스타터는 다음과 같다.
- spring-boot-starter-web : Spring MVC를 사용해 RESTful 웹서비스를 개발할 때 필요한 의존성 모임
- spring-boot-starter-test : 스프링 애플리케이션을 테스트하기 위해 필요한 의존성 모음
- spring-boot-starter-validation : 유효성 검사를 위해 필요한 의존성 모음
- spring-boot-starter-actuator : 모니터링을 위해 애플리케이션을 제공하는 다양한 정보를 제공하기 쉽게 하는 의존성 모음
- spring-boot-starter-data-jpa : ORM을 사용하기 위한 인터페이스 모음인 JPA를 더 쉽게 사용하기 위한 의존성 모음
프로젝트에 설정된 스타터 살펴보기
build.gradle을 자세히 살펴보면 web 스타터와 test 스타터가 의존성으로 명시되어 있다.
스타터에 포함된 의존성 살펴보기
IDE 가장 오른쪽에 있는 [Gradle]탭 -> Dependencies 항목 -> compileClasspath 항목 확인.
또는 test 스타터도 확인하기 위해 testCompileClasspath 항목도 확인한다. 해당 스타터는 스프링 부트로 애플리케이션을 테스트하기 위한 스타터이다.
스프링 부트가 의존성을 가져오는 방법
스프링 부트는 현재 버전에 맞는 라이브러리를 자동으로 관리한다. 하지만 어떤 의존성을 사용하는지 버전별 확인이 필요할 시 스프링 공식 문서 Dependency Versions에서 확인 가능하다.
스프링 공식 Dependency Versions 문서 : https://bit.ly/3N0vENa
스타터 종류와 특정 스타터의 의존성을 확인하고 싶을 때는 다음 깃허브 링크에서 확인 가능하다.
스타터 종류 참고(깃허브) : https://bit.ly/40o8bZd
궁금한 의존성 클릭 후 build.gradle 파일을 확인하면 의존성을 다음과 같이 확인할 수 있다.
스프링 부트는 서버를 시작할 때 구성파일을 읽어와서 설정하여, 애플리케이션이 최소한의 설정으로도 실행되게 여러 부분을 자동으로 구성한다
추후 개발을 하다가 직접 구성하지 않은 부분인데, 스프링에서 자동으로 어떻게 구성했는지 확인해야하는 상황이 오기 때문에 매우 중요한 내용이다.
자동 설정은 META-INF에 있는 spring.factories 파일에 담겨 있다.
돋보기 -> files 탭 -> spring-boot-autoconfigure/spring.factories 검색후 첫 번째 파일 확인.
프로젝트에 쓰일 구성 후보들을 확인할 수 있다.
스프링 부트를 시작할 때 위 파일들에 설정되어 있는 클래스는 모두 불러오고, 이후 프로젝트에서 사용할 파일들만 자동으로 구성해 등록한다.
- 프로젝트에서 미리 구현되어 있는 자동 설정 파일을 확인 하기
왼쪽 프로젝트 구성의 External Libraries -> ...spring-boot-autoconfigure:x.x.x
자동 구성되는 클래스는 AutoConfiguration, 속성값을 정의해놓은 클래스는 Properties를 이름 끝에 붙인다.
해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽