dependencies {
// 컴파일과 런타임 모두 필요한 일반적인 의존성
implementation 'org.springframework.boot:spring-boot-starter-web'
// 다른 모듈에서도 이 의존성을 사용할 수 있게 노출 (라이브러리 개발 시 주로 사용)
api 'com.google.guava:guava:33.2.0-jre'
// 컴파일 시에만 필요, 실행 파일에는 포함되지 않음 (예: Lombok)
compileOnly 'org.projectlombok:lombok:1.18.32'
// 컴파일 시 어노테이션 프로세서로 사용 (예: Lombok)
annotationProcessor 'org.projectlombok:lombok:1.18.32'
// 런타임에만 필요, 컴파일 시에는 필요 없음 (예: DB 드라이버)
runtimeOnly 'mysql:mysql-connector-java:8.0.33'
// 개발 환경에서만 필요, 배포에는 포함되지 않음 (예: DevTools)
developmentOnly 'org.springframework.boot:spring-boot-devtools'
// WAR 배포 시 톰캣 등 서버가 제공하므로 빌드 결과물에는 포함하지 않음
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
// 특정 폴더의 모든 JAR 파일을 의존성에 추가 (예: libs 폴더)
implementation fileTree(dir: 'libs', include: ['*.jar'])
// 멀티 프로젝트에서 다른 모듈을 의존성에 추가
implementation project(':common')
// 테스트 코드에서만 필요
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// 테스트 코드 컴파일 시에만 필요
testCompileOnly 'org.projectlombok:lombok:1.18.32'
// 테스트 실행(런타임)에서만 필요 (예: 테스트용 DB)
testRuntimeOnly 'com.h2database:h2'
}