Kotlin Academy · 강의

Kotlin/Native 개요: 대상, 도구 모음 및 컴파일

사용 가능한 Kotlin/Native 대상을 이해하고 간단한 CLI 바이너리를 컴파일합니다.

레슨 1/413개 단계

Kotlin/Native 개요: 대상, 도구 모음 및 컴파일은(는) CoddyKit의 무료 Kotlin Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kotlin Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

Kotlin/Native란 무엇입니까

Kotlin/Native는 JVM이나 Dalvik 런타임 없이 LLVM을 통해 Kotlin 소스 코드를 네이티브 기계어로 직접 컴파일합니다. 그 결과 자체 포함 바이너리가 생성되므로 대상 머신에 JVM을 설치할 필요가 없습니다.

지원 대상

Kotlin/Native는 다양한 대상을 지원합니다:

  • macOS / iOS: macosX64, macosArm64, iosX64, iosArm64, iosSimulatorArm64
  • Linux: linuxX64, linuxArm64
  • Windows: mingwX64
  • 임베디드 / watchOS / tvOS: 다양한 대상

컴파일 처리 흐름

Kotlin/Native의 컴파일 처리 흐름은 다음과 같습니다. Kotlin 소스 → Kotlin IR(중간 표현) → LLVM IR → 네이티브 바이너리. konanc 컴파일러가 이 과정을 주도하지만, 실제로는 항상 Kotlin 멀티플랫폼 Gradle 플러그인을 사용합니다.

Gradle에서 네이티브 대상 설정하기

Kotlin 멀티플랫폼 프로젝트에서는 build.gradle.kts에 네이티브 대상을 선언하십시오:

kotlin {
    macosArm64("macos") {
        binaries {
            executable { entryPoint = "main" }
        }
    }
    linuxX64("linux") {
        binaries { executable { entryPoint = "main" } }
    }
}

네이티브 대상의 소스 세트

네이티브 대상은 다른 플랫폼과 commonMain/commonTest를 공유합니다. 대상별 코드는 macosMain 또는 linuxX64Main과 같은 소스 세트에 둡니다. 플랫폼별 API에는 expect/actual을 사용하십시오.

출력 바이너리 유형

Kotlin/Native는 여러 바이너리 유형을 생성할 수 있습니다:

  • executable — 독립 실행형 명령줄 프로그램
  • staticLib — C/C++ 프로젝트에 연결하기 위한 정적 라이브러리
  • sharedLib — 동적(.dylib / .so / .dll) 라이브러리
  • framework — iOS/macOS 통합을 위한 Apple 프레임워크

네이티브 테스트 실행하기

./gradlew macosArm64Test 또는 해당 대상의 관련 작업으로 네이티브 테스트를 실행하십시오. 테스트는 네이티브 바이너리로 컴파일되어 호스트 머신에서 실행되며 JVM은 사용되지 않습니다.

교차 컴파일의 제한 사항

Kotlin/Native의 교차 컴파일에는 제한이 있습니다. Apple 대상은 macOS에서만 컴파일할 수 있으며 Xcode가 필요합니다. Linux와 Windows 대상은 지원되는 모든 호스트에서 컴파일할 수 있습니다. CI 처리 흐름에서는 일반적으로 Apple 대상에 macOS 에이전트를 사용합니다.

klib 형식

Kotlin/Native 라이브러리는 Kotlin의 플랫폼 독립적 라이브러리 형식인 .klib 파일로 배포됩니다. 의존성은 .klib로 해석되고 컴파일 시 최종 바이너리에 연결됩니다.

KMP iOS 앱에서의 Kotlin/Native

일반적인 Kotlin 멀티플랫폼 모바일(KMM) 프로젝트에서는 공유 코드가 Xcode가 iOS 앱에 연결하는 Apple 프레임워크로 컴파일됩니다. Swift/Objective-C 코드는 생성된 헤더를 통해 Kotlin API를 호출합니다.

성능 특성

네이티브 바이너리는 JVM 시작 과정이 없어 즉시 시작되고 메모리 사용량이 더 작으며, 명령줄 도구, 서버 측 Linux 애플리케이션, iOS/macOS 공유 로직에 적합합니다. 장시간 실행되는 JVM 애플리케이션은 JIT 최적화로 인해 네이티브보다 성능이 좋을 수 있지만, 많은 사용 사례에서는 시작 시간과 메모리 측면의 이점 때문에 네이티브가 유리합니다.

빠른 확인

Kotlin/Native에서 iOS Xcode 프로젝트에 사용할 Apple 프레임워크를 생성하는 Gradle 바이너리 유형은 무엇입니까?

정리: Kotlin/Native 개요

핵심 요점:

  • Kotlin/Native는 LLVM을 통해 네이티브 기계어로 컴파일되므로 JVM이 필요하지 않습니다
  • macOS, iOS, Linux, Windows, watchOS, tvOS 대상을 지원합니다
  • KMP Gradle 플러그인에서 대상과 바이너리 유형을 구성합니다
  • Apple 대상에는 macOS와 Xcode가 필요하며 교차 컴파일에는 플랫폼 제한이 있습니다
  • 라이브러리는 .klib로 배포되고 iOS 통합에는 framework 바이너리를 사용합니다
무료로 시작

AI 튜터와 함께 Kotlin을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
51
레슨
203

자주 묻는 질문

“Kotlin/Native 개요: 대상, 도구 모음 및 컴파일” 강의는 무료인가요?

네 — “Kotlin/Native 개요: 대상, 도구 모음 및 컴파일” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kotlin Academy 강의 전체를 잠금 해제할 수 있습니다. Kotlin Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Kotlin/Native 개요: 대상, 도구 모음 및 컴파일”에서 뭘 배우나요?

사용 가능한 Kotlin/Native 대상을 이해하고 간단한 CLI 바이너리를 컴파일합니다. 브라우저에서 직접 실행하는 실습 코드로 Kotlin Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Kotlin Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Kotlin Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“Kotlin/Native 개요: 대상, 도구 모음 및 컴파일” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Kotlin Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Kotlin Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Kotlin/Native 개요: 대상, 도구 모음 및 컴파일
  2. Kotlin/Native의 메모리 관리: 새로운 MM
  3. cinterop 및 .def 파일을 사용한 C 상호 운용
  4. Kotlin/WASM: 브라우저용 WebAssembly 컴파일
← Kotlin Academy(으)로 돌아가기