프로젝트를 생성했을때 설정한 gradle은 신규 라이브러리를 추가할때 외엔 수정하는 일이 별로 없었는데
최근 kapt를 ksp로 이전하기를 권고하는 공식 문서를 발견하게 됐습니다.
문서상 권고 이지만 이전을 강력 추천드립니다.
kapt란 무엇이냐
Kotlin Annotation Processing Tool의 약자로 코틀린 코드에서 자바 기반의 Annotaion Processor를 사용할 수 있게 해주는 도구입니다.
대표적으로 예로 Room을 사용시 아래 의존성을 추가하는 이유로
컴파일시 @Dao, @Entity 와 같은 Annotation들을 찾아 Sqlite코드로 변경해줍니다.
dependencies {
kapt("androidx.room:room-compiler:2.6.0")
}
변경해야 하는 이유는 간단합니다. 빌드 속도가 2배 정도 빠릅니다.
사전 확인
이전을 진행하기전 사용중인 라이브러리들이 모두 지원하는지 링크에서 확인해야 합니다.
예로 데이터바인딩을 사용하는 프로젝트의 경우 미지원합니다.
ksp와 kapt 혼합 사용은 가능하나 혼용시 개선되는 부분이 없거나 미약하다고 하니 근무중인 팀 성격에 따라
선도입후 추후 제거를 목표로 하실지 고민해보시면 좋을 것 같습니다
코틀린 버전에 따른 버전 탐색
현재 사용중인 코틀린 버전과 유사한 버전을 ksp출시 노트에서 찾아야 합니다.
kotlin 2.0.21 사용시 ksp 버전은 2.0.21-x,y,z 중 하나여야 합니다.
project level gradle
plugins {
id("com.google.devtools.ksp") version "2.0.21-1.0.27" apply false
}
app level gradle
plugins {
id("com.google.devtools.ksp")
}
kapt -> ksp
ksp로 되어 있는 의존성은 kapt로 수정하고 그외 kapt는 제거하면 됩니다!
자세한 사항은 공식 문서를 참고해주세요 !
dependencies {
ksp("androidx.room:room-compiler:2.5.0")
}
kapt 제거
아래와 같이 남아 있는 경우 제거합니다.
kapt {
correctErrorTypes = true
}
결과 비교
스터디용 작은 프로젝트로 테스트 해봤을때 결과 입니다.
환경이나 규모에 따라 다르겠지만 42초 > 13초로 2배 이상의 효과를 확인할 수 있습니다.
kapt일 경우


ksp 마이그레이션 후


빌드 속도 개선은 실제 작업시간에 많은 영향을 주기 때문에 되도록 빨리 변경하고
변경시 문제가 되는 부분들이 있다면 순차적으로 개선하여 변경하는걸 추천드립니다.
감사합니다.
'안드로이드 > 팁' 카테고리의 다른 글
| [Android] DUNS 번호 인증 관련 문제 대응기 (2) | 2024.12.24 |
|---|---|
| [Android] Recyclerview 클릭한 아이템 화면 중앙으로 이동 (0) | 2024.11.13 |
| [Android] PhotoPicker 로 이미지 업로드 (1) | 2024.10.01 |
| [Android] Kotlin DSL 적용기 (0) | 2024.01.31 |
| [Android] ScrollView in Recyclerview ( 이중 스크롤 구현 ) (1) | 2023.12.26 |