PHpullh
학습 라이브러리/Kotlin/컴파일 최적화 (Kotlin Compiler)

KOTLIN · 성능

컴파일 최적화 (Kotlin Compiler)

Kotlin 컴파일러 옵션으로 빌드 속도와 런타임 성능을 최적화합니다.

성능고급compileroptimizationgradlebuild-speed

핵심 설명

Kotlin 컴파일러 옵션으로 빌드 속도와 런타임 성능을 최적화합니다.

Kotlin code

// build.gradle.kts 컴파일러 옵션
// kotlin {
//     compilerOptions {
//         jvmTarget.set(JvmTarget.JVM_17)
//         freeCompilerArgs.addAll(
//             "-Xjsr305=strict",      // null 안전성 강화
//             "-opt-in=kotlin.RequiresOptIn",
//             "-Xjvm-default=all",    // 인터페이스 기본 메서드
//         )
//     }
// }

// 컴파일 최적화 확인 코드
fun main() {
    // 1. const val → 컴파일 타임 상수 (인라인)
    val config = "API_URL: 상수 인라인됨"

    // 2. when → tableswitch/lookupswitch
    fun optimize(code: Int) = when (code) {
        200 -> "OK"
        404 -> "Not Found"
        500 -> "Server Error"
        else -> "Unknown"
    }

    // 3. 원시 타입 유지
    val nums = intArrayOf(1, 2, 3) // int[] (박싱 없음)
    val sum = nums.sum()

    // 4. 인라인 클래스 → 래퍼 제거
    @JvmInline
    value class Meter(val value: Double)
    val distance = Meter(100.0)  // 런타임에 Double

    // 5. 빌드 속도 최적화
    // gradle.properties:
    // kotlin.incremental=true
    // kotlin.daemon.jvmargs=-Xmx2g
    // org.gradle.parallel=true
    // org.gradle.caching=true

    println("JVM: ${System.getProperty("java.version")}")
    println("Kotlin: ${KotlinVersion.CURRENT}")
    println("최적화 결과: $sum, ${optimize(200)}")
    println("인라인 클래스: ${distance.value}m")
}

학습 팁

kotlin.incremental=trueorg.gradle.caching=true를 활성화하면 빌드 시간이 크게 단축됩니다.

주의할 점

-Xjvm-default=all을 기존 라이브러리에 적용하면 바이너리 호환성이 깨질 수 있습니다. 새 프로젝트에서만 설정하세요.

자주 묻는 질문

컴파일 최적화 (Kotlin Compiler)란 무엇인가요?

Kotlin 컴파일러 옵션으로 빌드 속도와 런타임 성능을 최적화합니다.

컴파일 최적화 (Kotlin Compiler) 학습 시 주의할 점은 무엇인가요?

-Xjvm-default=all 을 기존 라이브러리에 적용하면 바이너리 호환성이 깨질 수 있습니다. 새 프로젝트에서만 설정하세요.

Continue Learning

Kotlin 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.