더북(TheBook)

2.2.1 패싯 기반 의존성 지정하기

스프링 부트는 복잡한 프로젝트 의존성을 ‘스타터(Starter)’ 의존성 수십 개로 해결한다. 원래 스타터 의존성은 알고 보면 몇몇 기능을 지원하는 다른 라이브러리에 대한 전이적 의존성을 정의한 메이븐 POM이다. 대부분의 스타터 의존성에는 각각이 제공하는 패싯(Facet) 또는 기능을 나타내는 이름이 붙는다.

예를 들어 독서 목록 애플리케이션은 웹 애플리케이션으로 만들 것이다. 프로젝트 빌드에 여러 의존성을 개별적으로 선택하여 추가하기보다는 웹 애플리케이션을 개발한다고 선언하는 편이 훨씬 더 쉬울 것이다. 이렇게 선언하려면 스프링 부트 웹 스타터를 빌드에 추가해야 한다.

Thymeleaf로 웹 뷰를 만들고 JPA로 데이터를 영속화하려고 한다. 그러므로 Thymeleaf와 스프링 데이터 JPA 스타터 의존성이 빌드 명세에 있어야 한다.

테스트 목적으로 스프링 부트의 컨텍스트에서 통합 테스트를 실행할 때 필요한 라이브러리도 있어야 한다. 따라서 테스트할 때 필요한 스프링 부트의 테스트 스타터 의존성도 있어야 한다.

정리하면 다음과 같이 Spring Initializr가 그레이들 빌드에 제공한 의존성은 다섯 개가 된다.


dependencies {
    compile(org.springframework.boot:spring-boot-starter-data-jpa)
    compile(org.springframework.boot:spring-boot-starter-thymeleaf)
    compile(org.springframework.boot:spring-boot-starter-web)
    runtime(com.h2database:h2)
    testCompile(org.springframework.boot:spring-boot-starter-test)
}

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