더북(TheBook)

앞에서 살펴보았듯이 Spring Initializr에서 Web, Thymeleaf, JPA 확인란에 체크하여 선택하면 애플리케이션 빌드에 의존성을 쉽게 추가할 수 있다. 하지만 프로젝트를 초기화할 때 의존성을 선택하지 않았다면 나중에 build.gradle 또는 pom.xml에 추가하면 된다.

전이적 의존성으로 의존성 네 개를 추가하는 것은 개별 라이브러리 수십 개를 빌드에 추가하는 것과 효과가 동일하다. 일부 전이적 의존성은 스프링 MVC, 스프링 데이터 JPA, Thymeleaf를 비롯하여 이들 의존성이 선언한 모든 전이적 의존성을 포함한다.

앞의 스타터 의존성에서는 오직 필요한 것만 선언했다는 점에 주목하자. 웹 애플리케이션을 빌드한다고 선언했을 뿐 스프링 MVC가 필요하다고 하지는 않았다. JUnit이나 다른 테스트 도구도 지정하지 않았고, 코드를 테스트하고 싶다고만 선언했다. 물론 Thymeleaf와 스프링 데이터 JPA 스타터는 조금 더 구체적이지만, 이들을 더 간단하게 선언할 수 있는 방법이 없기 때문에 그런 것이다.

빌드에 정의된 스타터 네 개는 스프링 부트가 제공하는 수많은 의존성 중 일부일 뿐이다. 부록 B에서는 각 스타터가 프로젝트 빌드에 무엇을 이행적으로 가져오는지 동일한 세부 내용과 함께 스타터 의존성의 전체 목록을 제공한다.

어떤 경우에도 버전을 지정할 필요가 없다. 스타터 의존성 버전은 사용하는 스프링 부트 버전에 따라 결정된다. 또 스타터 의존성은 추가로 가져오는 다양한 전이적 의존성 버전도 자체적으로 결정한다.

사용하는 여러 라이브러리의 버전을 몰라서 불안할 수도 있다. 하지만 스프링 부트는 사용할 모든 의존성 간에 호환성을 보장하도록 테스트를 마쳤다. 스타터 의존성만 지정하면 되므로 구성에서 자유로울 수 있고, 어떤 라이브러리와 어떤 버전을 사용해야 하는지 걱정할 필요가 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.