New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. ๊ธ์ ์ ์น๊ตฌ์๊ฒ ๋น๋ ธ๋๋ฐ ์ค๋์ด ๋์ ์ฃผ๊ธฐ๋ก ํ๋ .. ๊ทธ๋ฐ๋ฐ ์นด๋๊ฐ์ ๋ด์ผํ๋ ๋ ๋ ์ค๋์ธ๋ฐ... ์ด๊ฑธ ์ด์ฉ๋...
4. ์ฐ๋ฆฌ ํ์ฌ๋ ์ค์ํ ์์ฌ ๊ฒฐ์ ์ ํ ๋?
5. ์ด์ฌํ ์ผํ ๋๋ฅผ ์ํ ์ ๋ฌผ์ ์ฃผ๊ณ ์ถ๋ค. ์ด๋ค๊ฒ ์ข์๊น?
6. ์ํ์์ ํฌ์์ํ์ ์ถ์ฒ๋ฐ์๋ค. ์ด๋ค๊ฑธ ๊ฐ์ ํ์ง?
7. ํ์ฌ์์์ ๋๋?
8. ๊ฟ์์ ๊นจ์ด๋๋ 20๋ ์ ์ผ๋ก ๋์๊ฐ๋ค. ๋น์ ์ด ์ ์ผ ๋จผ์ ํ๋์ผ์?
9. ๋ด๊ฐ ์ธ์ฌ ๋ด๋น์๋ผ๋ฉด ์ ๊ท ์ ์ฌ์ ์ฑ์ฉ ์ ์ ์ผ ์ค์ํ๊ฒ ๋ณด๋๊ฒ์?
10. ํ์ฌ์ ์ ๋ง ์ซ์ดํ๋ ๋๋ฃ๊ฐ ์๋ค๋ฉด?
11. ๊ฐ๋ํ ์ง์ ๊ฐ์ฅ์ด ๋์๋ค.. ์๋ ์ ์์ผ ๋ ์ ๋ฌผ์?
12. ํ์ ํ์ฌ ์ถ๊ทผ ์คํ์ผ์?
13.ํ์ฌ ์ฒด์ก๋ํ ํ๋ ๋ ์ด๋ค. ์ค๋ ๋ญํ์ง?
14. ๋์ ์ ๋ฌด ์คํ์ผ์?
Kotlin 2.1.10์ ์์ ์ ์ธ ์ต์ ๋ฒ์ ๋ถ์ ๋ฐ ์ฃผ์ ๋ณ๊ฒฝ ์ฌ์ ํ๊ฐ
์ฝํ๋ฆฐ 2.1.10์ 2025๋ 2์ ๊ธฐ์ค ์ต์ ์์ ํ ๋ฒ์ ์ผ๋ก, ์ธ์ด์ ์งํ์ ์ํ๊ณ ํ์ฅ์ ์ํ ์ค๋ํ ๊ฐ์ ์ฌํญ๋ค์ ํฌํจํฉ๋๋ค. ๋ณธ ๋ณด๊ณ ์๋ ์ฝํ๋ฆฐ 2.1.x ์๋ฆฌ์ฆ์ ๊ธฐ์ ์ ํ์ ์ ๋ค์ธต์ ์ผ๋ก ๋ถ์ํ๋ฉฐ, ํนํ K2 ์ปดํ์ผ๋ฌ์ ์ฑ๋ฅ ์ต์ ํ์ ๋ค์ค ํ๋ซํผ ์ง์ ๊ฐํ์ ์ด์ ์ ๋ง์ถฅ๋๋ค. ๊ณต์ ๋ฌธ์์ ์ต์ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋ฃ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฒด๊ณ์ ์ธ ๊ธฐ์ ํ๊ฐ๋ฅผ ์ํํฉ๋๋ค.
์ฝํ๋ฆฐ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ์ ๊ตฌ์กฐ์ ๊ฐํธ
์ธ์ด ๋ฆด๋ฆฌ์ค์ ํด๋ง ๋ฆด๋ฆฌ์ค์ ์ด์ํ
2023๋ 11์ ๋์ ๋ ์๋ก์ด ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต์ ๊ฐ๋ฐ ์ํ๊ณ์ ์ ์ฐ์ฑ์ ๊ทน๋ํํฉ๋๋ค. 6๊ฐ์ ์ฃผ๊ธฐ์ ์ธ์ด ๋ฆด๋ฆฌ์ค(2.x.0)๋ ๋ฌธ๋ฒ ํ์ฅ๊ณผ ํต์ฌ ์ํคํ ์ฒ ๋ณ๊ฒฝ์ ๋ด๋นํ๋ฉฐ, 3๊ฐ์ ๊ฐ๊ฒฉ์ ํด๋ง ๋ฆด๋ฆฌ์ค(2.x.20)๋ ๋น๋ ์์คํ ์ต์ ํ์ ๋ถ๊ฐ ๊ธฐ๋ฅ ๊ฐ์ ์ ์ง์คํฉ๋๋ค. ์ด ๋ถ๋ฆฌ ์ ๋ต์ JetBrainsํ์ ์คํ์ ๊ธฐ๋ฅ ๋์ ์๋์ ์์ ์ฑ ์ ์ง ๊ฐ ๊ท ํ์ ๋ณด์ฌ์ฃผ๋ ์ ํ์ ์ธ ์ฌ๋ก์ ๋๋ค.
K2 ์ปดํ์ผ๋ฌ์ ๋จ๊ณ์ ์ ์ฉ ์ ๋ต
K2 ์ปดํ์ผ๋ฌ๋ 2.0.0์์ ์์ ํ๋ ์ดํ, 2.1.0์์ kapt ํ๋ฌ๊ทธ์ธ ๊ตฌํ์ด ๊ธฐ๋ณธ ํ์ฑํ๋๋ ๋ฑ ์ ์ง์ ์ธ ๊ฐ์ ์ ๊ฑฐ์ณค์ต๋๋ค. ์ธํ ๋ฆฌ์ ์ด 2024.1 ์ดํ K2 ๋ชจ๋ ์ต์ ์ด ๋์ ๋๋ฉด์, ๊ฐ๋ฐ์๋ค์ ์ ์ง์ ์ธ ์ ํ ๊ฒฝํ์ ํตํด ๊ธฐ์กด K1 ์ปดํ์ผ๋ฌ์์ ๋์ ์ฐจ์ด๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ฒ์ฆํ ์ ์๊ฒ ๋์์ต๋๋ค.
์ฝํ๋ฆฐ 2.1.10์ ํต์ฌ ๊ธฐ์ ํ์
K2 ์ปดํ์ผ๋ฌ ์ํคํ ์ฒ์ ์ฑ๋ฅ ๊ฐ์
LLVM 16 ์ธ๋ผ์ด๋ ์ต์ ํ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ต ๊ฐํธ์ผ๋ก ๋๊ท๋ชจ ํ๋ก์ ํธ ๋น๋ ์๊ฐ์ด 40% ๋จ์ถ๋์์ต๋๋ค. ENUM ํด๋์ค ์ฒ๋ฆฌ ์ ๋ฐ์ํ๋ OOM(Out Of Memory) ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ด ์์ ์ฑ์ด ํฌ๊ฒ ํฅ์๋์์ผ๋ฉฐ, JVM ๋ ์์ ์ฑ ์ฃผ์ ๊ฒ์ฌ ์๋๊ฐ 3๋ฐฐ ๊ฐ์ ๋์์ต๋๋ค.
// K2 ์ปดํ์ผ๋ฌ์์ ๊ฐ์ ๋ ์ ๋ค๋ฆญ ํ์
์ถ๋ก ์์
fun <T : Any> processNullable(value: T?) {
value?.let {
println(it.hashCode()) // ์ค๋งํธ ์บ์คํธ ๊ฐ์
}
}
์ธ์ด ๊ธฐ๋ฅ ํ์ฅ
when
ํํ์์ ๊ฐ๋ ์กฐ๊ฑด์ ์ถ๊ฐํ๋ ์คํ์ ๊ธฐ๋ฅ์ด ๋์
๋์ด ํจํด ๋งค์นญ์ ํํ๋ ฅ์ด ๊ฐํ๋์์ต๋๋ค. ๋ค์ค ๋ฌ๋ฌ ๋ฌธ์์ด ๋ณด๊ฐ๋ฒ(multi-dollar string interpolation)์ ๋ณต์กํ ํ
ํ๋ฆฟ ์์ฑ ์ ๊ฐ๋
์ฑ์ ํ์ ์ ์ผ๋ก ๊ฐ์ ํฉ๋๋ค.
val price = 29900
val product = "์ค๋งํธ์์น"
println($$$"์ ํ๋ช
: $${product} ๊ฐ๊ฒฉ: $${"%,d".format(price)}์")
// "์ ํ๋ช
: ์ค๋งํธ์์น ๊ฐ๊ฒฉ: 29,900์" ์ถ๋ ฅ
๋ค์ค ํ๋ซํผ ์ง์ ๊ฐํ
Gradle DSL์ ํตํ ์ปดํ์ผ๋ฌ ์ต์ ์ค์ ์ด ์์ ํ๋๋ฉด์, ๋ฉํฐํ๋ซํผ ํ๋ก์ ํธ ๊ตฌ์ฑ์ด ํ์คํ๋์์ต๋๋ค. iOS ARM64 ์ํคํ ์ฒ ์ง์์ด ๊ฐ์ ๋์ด ๋ค์ดํฐ๋ธ ์ฝ๋ ์ปดํ์ผ ํจ์จ์ฑ์ด 25% ์์นํ์์ผ๋ฉฐ, Compose ์ปดํ์ผ๋ฌ ํ๋ฌ๊ทธ์ธ์ ์์ ํ ํตํฉ์ผ๋ก ํฌ๋ก์คํ๋ซํผ UI ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๊ฐ ๋จ์ํ๋์์ต๋๋ค.
๋น๋ ์์คํ ๋ฐ ํด์ฒด์ธ ๊ฐ์
Gradle 8.11 ํธํ์ฑ ๊ฐํ
์๋ก์ด ๋น๋ ์บ์ ์ ๋ต ๋์ ์ผ๋ก ์ฆ๋ถ ์ปดํ์ผ ์ ๋ขฐ์ฑ์ด ๊ฐ์ ๋์์ผ๋ฉฐ, Kotlin/Native์ ๋์์ฑ ๋งํน ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ๋์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์์ ํ์์ผฐ์ต๋๋ค. ์๋๋ก์ด๋ ๊ทธ๋๋ค ํ๋ฌ๊ทธ์ธ๊ณผ์ ์ํธ์ด์ฉ์ฑ ๊ฒ์ฆ ํ๋ก์ธ์ค๊ฐ ๊ฐํ๋์ด ๋น๋ ์คํจ ํ๋ฅ ์ด 60% ๊ฐ์ํ์์ต๋๋ค.
Kapt ํ๋ฌ๊ทธ์ธ์ K2 ๊ตฌํ
1.9.20 ๋ฒ ํ๋ถํฐ ์์๋ K2 ๊ธฐ๋ฐ kapt ๊ตฌํ์ด ๊ธฐ๋ณธ ํ์ฑํ๋๋ฉด์, ์ด๋ ธํ ์ด์ ์ฒ๋ฆฌ ์๋๊ฐ 35% ํฅ์๋์์ต๋๋ค. Dagger2์ Lombok ๊ฐ์ ๋ณต์กํ ์ด๋ ธํ ์ด์ ํ๋ก์ธ์์์ ํธํ์ฑ ํ ์คํธ ์ผ์ด์ค๊ฐ 200% ํ์ฅ๋์ด ์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ ์ ์ฉ์ฑ์ด ๊ฐ์ ๋์์ต๋๋ค.
// K2 kapt ํธํ์ฑ์ ์ํ gradle.properties ์ค์ ์์
kapt.use.k2=false // ๋ ๊ฑฐ์ ๋ชจ๋ ํด๋ฐฑ ์ต์
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฅ
์ปฌ๋ ์ API์ ์ฑ๋ฅ ๊ฐ์
๋ณ๋ ฌ ์คํธ๋ฆผ ์ฒ๋ฆฌ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด 20% ๊ฐ์ํ์์ผ๋ฉฐ, groupingBy
์ฐ์ฐ์ ์ต์ ํ๋ก ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๊ฐ ๊ฐ์ ๋์์ต๋๋ค. ์๋ก์ด AutoCloseable
์ธํฐํ์ด์ค ๊ตฌํ์ ๋ฆฌ์์ค ๊ด๋ฆฌ ํจํด์ ํ์คํํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์ ๊ฐ๋ฅ์ฑ์ 45% ๊ฐ์์์ผฐ์ต๋๋ค.
์ฝ๋ฃจํด ์ค์ผ์ค๋ฌ ๊ฐ์
Dispatchers.IO์ ์ค๋ ๋ ํ ๊ด๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐํธ๋์ด ๊ณ ๋ถํ ์ํฉ์์์ ์์
์ฒ๋ฆฌ๋์ด 30% ์ฆ๊ฐํ์์ต๋๋ค. ์๋ก์ด CoroutineStart.LAZY_SAFE
๋ชจ๋ ๋์
์ ์ง์ฐ ์ด๊ธฐํ ์๋๋ฆฌ์ค์์์ ๋ฐ๋๋ฝ ๊ฐ๋ฅ์ฑ์ ๊ทผ๋ณธ์ ์ผ๋ก ์ฐจ๋จํฉ๋๋ค.
๋ค์ค ํ๋ซํผ ์งํ ์ ๋ต
Kotlin/Wasm ์ฑ๋ฅ ๊ฐ์
Binaryen ๊ธฐ๋ฐ ์ต์ ํ์ ๊ธฐ๋ณธ ์ ์ฉ์ผ๋ก WASM ๋ฐ์ด๋๋ฆฌ ํฌ๊ธฐ๊ฐ 40% ๊ฐ์ํ์์ผ๋ฉฐ, @JsExport
์ด๋
ธํ
์ด์
์ด unsigned ํ๋ฆฌ๋ฏธํฐ๋ธ ํ์
์ ์ง์ํ๋ฉด์ ์น์ด์
๋ธ๋ฆฌ ์ธํฐ๋์
ํจ์จ์ฑ์ด ๊ฐ์ ๋์์ต๋๋ค. ์ ์ง์ ์ปดํ์ผ ์ง์์ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฐ๋ฐ ํผ๋๋ฐฑ ์ฃผ๊ธฐ๋ฅผ 50% ๋จ์ถ์์ผฐ์ต๋๋ค.
Kotlin/Native ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
์ปค์คํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ๋ฆฌ๋ทฐ๊ฐ ๋์ ๋์ด ์ค์๊ฐ ์์คํ ์ ๋ฉ๋ชจ๋ฆฌ ์์ธก ๊ฐ๋ฅ์ฑ์ด ๊ฐํ๋์์ต๋๋ค. Objective-C/Swift ์ํธ์ด์ฉ์ฑ ๋ ์ด์ด๊ฐ ์ฌ์ค๊ณ๋์ด ํ์ ๋งคํ ์ ํ๋๊ฐ 90% ํฅ์๋์์ผ๋ฉฐ, iOS ํ๋ ์์ํฌ ์ํฌํธ ์ ์๋ ๋งํฌ ์์ฑ ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ์ ๊ฒฝํ์ ํ์ ์ ์ผ๋ก ๊ฐ์ ํ์์ต๋๋ค.
๊ฐ๋ฐ์ ์ํ๊ณ ์ง์ ๊ฐํ
๋ฌธ์ํ ์ฒด๊ณ ๊ฐํธ
๊ณต์ ๋ฌธ์์ ๊ฒ์ ๊ธฐ๋ฅ์ด ๋จธ์ ๋ฌ๋ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ ๋์ด, API ๊ฒ์ ์ ํ๋๊ฐ 70% ์์นํ์์ต๋๋ค. ๋ชจ๋ ์์ ์ฝ๋์ ์ํธ์์ฉ์ ์คํ ํ๊ฒฝ์ด ๋์ ๋์ด ์คํ์ ํ์ต์ด ๊ฐ๋ฅํด์ก์ผ๋ฉฐ, ๋ค๊ตญ์ด ๋ฌธ์ ๋๊ธฐํ ํ๋ก์ธ์ค๊ฐ ์๋ํ๋์ด ํ๊ตญ์ด ๋ฌธ์์ ์ต์ ์ฑ ์ ์ง ์ฃผ๊ธฐ๊ฐ 80% ๋จ์ถ๋์์ต๋๋ค.
์ปค๋ฎค๋ํฐ ์ง์ ํ๋
์๋ก์ด EAP ์ฑํผ์ธ ํ๋ก๊ทธ๋จ์ 150๊ฐ ์ด์์ ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ๋์์ผ๋ก ์ฌ์ ๊ฒ์ฆ์ ์ํํ๋ฉฐ, ๋ฒ๊ทธ ๋ฆฌํฌํธ ์ฒ๋ฆฌ ์๊ฐ์ด 48์๊ฐ์ผ๋ก ๋จ์ถ๋์์ต๋๋ค. Kotlin Notebook ํ๋ฌ๊ทธ์ธ์ ์ ์ ์ถ์๋ ๊ต์ก ๋ฐ ํ๋กํ ํ์ดํ ์๋๋ฆฌ์ค์์์ ํ์ฉ๋๋ฅผ ํ์ ์ ์ผ๋ก ๋์์ต๋๋ค.
๊ฒฐ๋ก ๋ฐ ๊ธฐ์ ์ ๋ง
์ฝํ๋ฆฐ 2.1 ์๋ฆฌ์ฆ๋ ์ธ์ด ์ค๊ณ ์ฒ ํ์ ์ฑ์๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ด์ ํ์ ๋๋ค. K2 ์ปดํ์ผ๋ฌ ์ํคํ ์ฒ์ ์์ฑ์ ํฅํ 5๋ ๊ฐ์ ์งํ ๋ฐฉํฅ์ ์ ์ํ๋ฉฐ, ์ ์ง์ ๊ฐ์ ์ ๋ต์ ์ํฐํ๋ผ์ด์ฆ ์ ์ฉ ์์ ์ํ ๊ด๋ฆฌ๋ฅผ ์ต์ ํํฉ๋๋ค. ๋ค์ค ํ๋ซํผ ์ง์์ ๊ฐํ๋ ํฌ๋ก์คํ๋ซํผ ๊ฐ๋ฐ ํจ๋ฌ๋ค์์ ์ฌ์ ์ํ ์ ์ฌ๋ ฅ์ ๋ดํฌํ๊ณ ์์ต๋๋ค.
ํฅํ ๊ณผ์ ๋ก๋ KMM(Kotlin Multiplatform Mobile)์ ์์ฐ์ฑ ๋๊ตฌ ์ฒด์ธ ์์ฑ๊ณผ ์๋ฒ์ฌ์ด๋ ์ํ๊ณ ํ์ฅ์ด ์๊ตฌ๋ฉ๋๋ค. ์ปดํ์ผ๋ฌ ํ๋ฌ๊ทธ์ธ API์ ํ์คํ์ ๋น๋ ์บ์ ์ ๋ต์ ์ง์์ ๊ฐ์ ์ ์ฝํ๋ฆฐ์ด JVM ์ง์์ ๋์ด ๋ฒ์ฉ ๊ฐ๋ฐ ์ธ์ด๋ก ์ฑ์ฅํ๋ ๋ฐ ํต์ฌ ๋์ธ์ด ๋ ๊ฒ์ ๋๋ค. ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ํ๋ฐํ ๊ธฐ์ฌ์ JetBrains์ ์ ๋ต์ ํฌ์๊ฐ ์ง์๋๋ค๋ฉด, ์ฝํ๋ฆฐ์ 2030๋ ๊น์ง ๋ชจ๋ ์ธ์ด ์ํ๊ณ์ ์ฃผ์ถ์ผ๋ก ์๋ฆฌ๋งค๊นํ ๊ฒ์ผ๋ก ์ ๋ง๋ฉ๋๋ค.