🏗️ Gradle 설정
📖 Gradle이란?
Gradle은 프로젝트를 빌드하고 관리하는 도구입니다. 코드 컴파일, 테스트, 패키징을 자동화합니다.
🎯 비유로 이해하기
프로젝트 = 집 짓기
├─ 코드 = 건축 자재
├─ Gradle = 건설 관리자
│ ├─ 자재 주문 (라이브러리 다운로드)
│ ├─ 건설 순서 관리 (빌드 순서)
│ └─ 품질 검사 (테스트)
└─ build.gradle.kts = 설계도
💡 Gradle vs Maven
Gradle:
├─ 빠른 빌드 속도
├─ Kotlin DSL 지원
├─ 유연한 설정
└─ 최신 프로젝트의 표준
Maven:
├─ 오래되고 안정적
├─ XML 설정 (장황함)
└─ 레거시 프로젝트에 주로 사용
결론: Gradle 추천! ✅
🔧 Kotlin DSL vs Groovy DSL
Gradle 설정 파일은 두 가지 언어로 작성할 수 있습니다:
Groovy DSL (build.gradle):
├─ 전통적인 방식
├─ 예제가 많음
└─ 덜 엄격함
Kotlin DSL (build.gradle.kts):
├─ Kotlin으로 작성
├─ 타입 안전성
├─ IDE 자동완성 지원
├─ Kotlin 프로젝트에 더 적합
└─ 추천! ✅
📂 프로젝트 구조
Gradle 프로젝트의 기본 구조:
my-kotlin-project/
├── src/
│ ├── main/
│ │ └── kotlin/ # 메인 코드
│ │ └── Main.kt
│ └── test/
│ └── kotlin/ # 테스트 코드
│ └── MainTest.kt
├── build.gradle.kts # 빌드 설정
├── settings.gradle.kts # 프로젝트 설정
└── gradle/
└── wrapper/ # Gradle 래퍼
📝 build.gradle.kts 기본 구조
최소 설정
// build.gradle.kts
plugins {
kotlin("jvm") version "1.9.22" // Kotlin JVM 플러그인
}
group = "com.example" // 프로젝트 그룹
version = "1.0.0" // 프로젝트 버전
repositories {
mavenCentral() // 라이브러리 저장소
}
dependencies {
// Kotlin 표준 라이브러리
implementation(kotlin("stdlib"))
}
설명
plugins {
// Kotlin JVM 플러그인 추가
kotlin("jvm") version "1.9.22"
}
// → Kotlin 컴파일러 설정
repositories {
mavenCentral()
}
// → 라이브러리를 다운로드할 저장소
dependencies {
implementation(kotlin("stdlib"))
}
// → 사용할 라이브러리 목록
📦 의존성 추가하기
의존성 타입
dependencies {
// implementation: 컴파일 + 런타임
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
// testImplementation: 테스트에만 사용
testImplementation(kotlin("test"))
// api: 다른 모듈에도 노출
api("com.google.code.gson:gson:2.10.1")
// compileOnly: 컴파일만
compileOnly("org.projectlombok:lombok:1.18.30")
// runtimeOnly: 런타임만
runtimeOnly("com.h2database:h2:2.2.224")
}