Kotlin 컴파일 과정

최희창·2022년 11월 25일
0

Kotlin

목록 보기
2/13

Introuduction

코틀린은 JVM 위에서 동작하며, 정적 타입 프로그래밍 언어입니다.

정적 타입 언어 : 객체 타입을 컴파일 타임에 결정하는 프로그래밍 언어로 컴파일 타임에 타입에 대한 정보가 결정되어 런타임에 메서드를 빨리 호출할 수 있으며 안정성 또한 올라갑니다.
(C ,C++, JAVA, Kotlin)

동적 타입 언어 : 타입을 런타임에 결정하는 프로그래밍 언어로 런타입까지 타입에 대한 결정을 미룰 수 있어 다양한 선택지를 가질 수 있는 이점을 가집니다.
(JavaScript, Python)

Build 과정

Kotlin의 컴파일 과정JVM 위에서 동작하기 때문에 Java 컴파일 과정과 유사합니다. kt 파일은 Kotlin Compiler를 통해 바이트 코드로 변환되고 Kotlin Runtime Library에 의존되어 실행합니다.
(Kotlin Runtime Library에는 Kotlin 표준 라이브러리, Java API를 확장한 내용 등이 있습니다.)

Kotlin과 Java가 함께 있을 때의 Compile 과정

  1. Kotlin 컴파일러가 kt 파일을 컴파일해 바이트 코드(.class)를 생성합니다. 이때 java파일도 함께 로딩되어 사용됩니다.
  2. Java 컴파일러가 java 파일을 컴파일해 바이트 코드(.class)를 생성합니다. 이때 이미 컴파일된 Kotlin의 바이트코드(.class)의 경로를 class path에 추가해 컴파일합니다.

-> 이로 인해서 Kotlin 코드에서 Java Annotation 프로세서로 생성되는 코드를 사용하면 문제가 발생합니다.
이유는 위 과정에서 보다시피 Kotlin은 이미 컴파일된 단게에서 Java 컴파일이 이루어지기 때문입니다.

(애노테이션 프로세서 과정에 대해 추가 글 작성 필요)

profile
heec.choi

0개의 댓글