build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.5'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
// 라이브러리를 다운로드 받기 위한 사이트 설정
mavenCentral()
}
// 라이브러리
// spring-boot-starter-thymeleaf : html 만드는 템플릿 엔진
// spring-boot-starter-web : 웹 프로젝트
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'
}
tasks.named('test') {
useJUnitPlatform()
}
- spring-boot-starter-thymeleaf : html 만드는 템플릿 엔진
- spring-boot-starter-web : 웹 프로젝트
- spring-boot-starter-test: 스프링부트 어플리케이션 통합테스트 지원
build.gradle을 통해 필요한 라이브러리들을 dependency로 설정할 수 있다.
우선 프로젝트 생성 시 spring-boot-starter-thymeleaf, spring-boot-starter-web을 설정했다.
spring-boot-starter-test는 따로 설정하지 않았지만 자동으로 들어와있다.

External Libraries를 살펴보면 build.gradle 파일에 명시한 라이브러리들 외에도 수많은 라이브러리들이 들어있는 것을 볼 수 있다.

이런 라이브러리들은 왜 함께 받아졌을까?
gradle이나 maven과 같은 빌드 툴은 의존 관계를 관리해준다.
예를 들어 spring-boot-starter-web 라이브러리를 당겨올 때 해당 라이브러리에 필요한 라이브러리를 함께 받아온다.
하나의 라이브러리를 명시했다고 해도 라이브러리가 다른 라이브러리를 의존하고, 그 라이브러리가 또 다른 라이브러리를 의존하는 상호 의존 관계이기 때문이다.
즉, Gradle은 의존관계가 있는 라이브러리를 함께 다운로드한다.