Skip to content

์ €๋Š” ์ฝ”ํ‹€๋ฆฐ์ด ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์–ธ์–ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ, ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ 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๋กœ์˜ ์ „ํ™˜์„ ๊ณ ๋ คํ•ด์•ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Released under the MIT License.