gradle
나 maven
같은 빌드 툴들은 의존 관계를 관리해준다.
의존 관계를 관리한다 ?
예를 들어서
implementation 'org.springframework.boot:spring-boot-starter-web'
을 하게 되면 Gradle: org.springframework.boot:spring-boot-starter-tomcat:3.2.0
과 같은 starter-web
이 동작하기 위해 필요한 라이브러리를 모두 가져온다.즉, 이러한 의존 관계를 통해 starter-web
라이브러리를 implementation
만 해줘도
의존 관계로 묶여있는 tomcat
등..이 자동으로 추가
되어서 개발자는 간단하게 웹 서버를 띄울 수 있습니다.
build.gradle
의 코드 일부분입니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
현재 제가
implementation
를 한 라이브러리를 코드를 통해 확인해 보실 수 있는데, 아래 사진의 창 오른쪽 상단에 코끼리 아이콘을 눌러서 확인하면 코드에 명시된 라이브러리들이 있는 것을 확인할 수 있습니다.
spring-boot-starter-web:3.2.0
한개를 implementation
를 할 경우 의존 관계가 있는 수많은 라이브러리들이 하위에 생성되게 됩니다.
스프링 부트 라이브러리
spring-boot-starter-web
spring-boot-starter-tomcat
: 기본 제공 WebServerspring-webmvc
: 스프링 웹 MVCspring-boot-starter : 스프링 부트 + 스프링 코어 + 로깅
spring-boot
/ spring-core
spring-boot-starter-logging
: logback
, slf4j
테스트 리이브러리
spring-boot-starter-test
junit5
: 테스트 프레임워크mockito
: mock
라이브러리assertj
: 테스트 코드 작성을 편리하게 도와주는 라이브러리spring-test
: 스프링 통합 테스트 지원