[Android] KAPT vs KSP

kimgwon·2024년 10월 20일

Android

목록 보기
5/7

🫧 KAPT (Kotlin Annotation Processing Tool)

Kotlin 코드에서는 직접 Annotation Processing이 불가능하므로,
KAPT는 Java 컴파일러가 이해할 수 있도록 Java stub 파일을 생성하여 Hilt와 같은 Java 기반 라이브러리가 Kotlin 코드를 처리할 수 있도록 한다.

이 과정에서 Java 변환 작업이 필요해 빌드 시간이 느려질 수 있다.

Annotation Processing
컴파일 타임에 애노테이션을 분석하고, 이를 기반으로 코드를 생성하거나 검증하는 과정

Java stub 파일
Kotlin 코드에서 Java 기반의 Annotation Processor를 사용할 수 있도록 Kotlin 코드를 임시로 변환한 파일
Kotlin의 고유한 기능(Null Safety, Extension Functions 등)은 Stub 파일에 반영하지 못한다.


🫧 KSP (Kotlin Symbol Processing)

KSP는 Kotlin 코드에서 직접 Annotation Processing을 수행할 수 있도록 설계되었다.
Kotlin 코드를 Java로 변환하는 과정이 없으므로, KAPT 보다 빠르다.


특징KAPTKSP
처리 방식Java stub 생성 후 Java Annotation Processor 사용Kotlin 코드를 직접 처리
성능느림빠름
Kotlin 고유 기능 활용불가능가능

0개의 댓글