μ €λŠ” 코틀린이 μ•ˆλ“œλ‘œμ΄λ“œ κ°œλ°œμ„ μœ„ν•œ 언어라고 μƒκ°ν•˜κΈ°λ§Œ ν–ˆμŠ΅λ‹ˆλ‹€λ§Œ, μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬ 5 이상뢀터 코틀린에 λŒ€ν•œ 지원을 μ‹œμž‘ν–ˆκ³  JVM μ§„μ˜μ˜ λΉŒλ“œ μ‹œμŠ€ν…œμΈ Gradle μ—μ„œλ„ μ½”ν‹€λ¦° μ–Έμ–΄λ₯Ό 기본적으둜 μ±„νƒν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 생각보닀 λ§Žμ€ μ±„μš© κ³΅κ³ μ—μ„œλ„ μ½”ν‹€λ¦° κ²½ν—˜μžλ₯Ό μš°λŒ€ν•˜λŠ” 것을 확인할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

Gradle Kotlin DSL

Gradle의 κΈ°λ³Έ μ–Έμ–΄λŠ” Kotlin DSL둜 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ½”ν‹€λ¦° 기반 μŠ€ν”„λ§μ„ μ‚¬μš©ν•˜μ§€ μ•Šλ”λΌλ„ μžλ°” 기반 ν”„λ‘œμ νŠΈμ˜ Gradleμ—μ„œ μ½”ν‹€λ¦°μœΌλ‘œ λΉŒλ“œ 슀크립트λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Spring Initializrμ—μ„œ ν”„λ‘œμ νŠΈ 생성 μ‹œ Gradle DSL둜 코틀린을 μ„ νƒν•˜λ©΄ settings.gradle.kts 와 build.gradle.kts 파일이 ν¬ν•¨λ©λ‹ˆλ‹€.

μΈν…”λ¦¬μ œμ΄ - K2 λͺ¨λ“œ

IntelliJ IDEA 2024.2 이상을 μ‚¬μš©μ€‘μ΄λΌλ©΄ K2 λͺ¨λ“œλ₯Ό ν™œμ„±ν™”ν•˜μ„Έμš”. ν”„λ‘œμ νŠΈμ˜ Kotlin 컴파일러 버전과 상관없이 쑰금 더 κ°œμ„ λœ μ½”λ“œ κ°•μ‘°, μ½”λ“œ μ™„μ„± 등을 μ œκ³΅ν•œλ‹€κ³  ν•©λ‹ˆλ‹€. 코틀린을 μ›ΉμœΌλ‘œ ν•™μŠ΅ν•˜κΈ° μœ„ν•œ Kotlin Playgound 도 K2 컴파일러둜 λ™μž‘ν•©λ‹ˆλ‹€.

파일 - μ„€μ • - μ–Έμ–΄ 및 ν”„λ ˆμž„μ›Œν¬ - Kotlin - K2 λͺ¨λ“œ ν™œμ„±ν™”

kapt λŒ€μ‹ μ— KSP μ‚¬μš©ν•˜κΈ°

μ½”ν‹€λ¦°μ˜ Gradle best practicesμ—μ„œ μ–΄λ…Έν…Œμ΄μ…˜ 처리λ₯Ό μœ„ν•΄ μœ μ§€λ³΄μˆ˜ λͺ¨λ“œμΈ kapt λŒ€μ‹ μ— Kotlin Symbol Processing API둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μΆ”μ²œν•©λ‹ˆλ‹€. 단, μŠ€ν”„λ§ ν”„λ‘œμ νŠΈμ—μ„œ QueryDSL을 μ‚¬μš©ν•˜κ³  μžˆλ‹€λ©΄ Querydslμ—μ„œ Kotlin JDSL μœΌλ‘œμ™€ 같이 λΌμΈμ—μ„œ κ°œλ°œν•œ μ˜€ν”ˆμ†ŒμŠ€μΈ Kotlin JDSL둜의 μ „ν™˜μ„ κ³ λ €ν•΄μ•Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

plugins {
    id("com.google.devtools.ksp") version "2.1.0-1.0.29"
}