์ ๋ ์ฝํ๋ฆฐ์ด ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ์ํ ์ธ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ๋ง ํ์ต๋๋ค๋ง, ์คํ๋ง ํ๋ ์์ํฌ 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"
}