2021.02.19

구글, 더 빠른 코틀린 빌드 지원하는 API 발표··· “최대 2배 속도 향상”

Paul Krill | InfoWorld
구글이 ‘코틀린 심볼 프로세싱(Kotlin Symbol Processing; KSP)’의 알파 버전을 공개했다. KSP는 코틀린에서 경량 컴파일러 플러그인을 빌드하기 위한 API다. 
 
ⓒGetty Images

개발팀에 따르면 ‘KSP(Kotlin Symbol Processing)’는 ‘KAPT(Kotlin Annotation Processing)’ 컴파일러 플러그인과 유사하지만 최대 2배 더 빠르며 코틀린 컴파일러 기능에 직접 액세스할 수 있다. 또한 컴파일러 플러그인 자체로 구축된 KSP는 컴파일러 변경 사항을 숨기고 유지 관리를 최소화하도록 설계됐다. 

지난 2월 10일 구글은 KSP 알파 버전을 공개하면서 “코틀린 코드를 컴파일할 때 가장 큰 문제는 네이티브 어노테이션 프로세싱 시스템이 없다는 것이다. 룸(Room)과 같은 어노테이션 프로세서가 있긴 하지만 KAPT를 통한 자바 어노테이션 프로세싱 호환성에 의존한다. 그런데 KAPT는 중간에 자바 스텁(Stub)을 생성해야 하므로 실행 속도가 느릴 수 있다”라고 공식 블로그를 통해 밝혔다. 반면에 KSP는 코틀린 코드를 직접 파싱하는 API를 제공해 속도를 줄인다고 개발팀은 설명했다. 

KSP를 지원하는 라이브러리는 최대 2배 더 빠르지만 일반 어노테이션 프로세서와 유사하다. 동일한 모듈에서 KAPT와 KSP를 사용하면 처음에는 빌드 속도가 느려질 수 있다. 따라서 알파 버전 단계에서는 KSP와 KAPT를 별도의 모듈에서 유지 관리하는 것이 좋다고 개발팀은 전했다. 

코틀린은 안드로이드 애플리케이션 개발 공식 언어다. 한편 KSP는 멀티플랫폼을 목표로 개발되고 있으므로 JVM(Java Virtual Machine)과 연결되지 않는다. KSP는 코틀린 버전 1.34.0 이상부터 호환된다. 

KSP 소스코드 및 문서는 깃허브에서 다운로드 받을 수 있으며, ‘KSP 플레이그라운드 프로젝트(KSP Playground Project)’를 통해 KSP가 실제로 어떻게 작동하는지 확인할 수 있다. 단, API는 현재 개발 중이며 변경될 가능성이 있음으로 KSP를 프로덕션에 사용하는 것은 아직 바람직하지 않다. ciokr@idg.co.kr


 



2021.02.19

구글, 더 빠른 코틀린 빌드 지원하는 API 발표··· “최대 2배 속도 향상”

Paul Krill | InfoWorld
구글이 ‘코틀린 심볼 프로세싱(Kotlin Symbol Processing; KSP)’의 알파 버전을 공개했다. KSP는 코틀린에서 경량 컴파일러 플러그인을 빌드하기 위한 API다. 
 
ⓒGetty Images

개발팀에 따르면 ‘KSP(Kotlin Symbol Processing)’는 ‘KAPT(Kotlin Annotation Processing)’ 컴파일러 플러그인과 유사하지만 최대 2배 더 빠르며 코틀린 컴파일러 기능에 직접 액세스할 수 있다. 또한 컴파일러 플러그인 자체로 구축된 KSP는 컴파일러 변경 사항을 숨기고 유지 관리를 최소화하도록 설계됐다. 

지난 2월 10일 구글은 KSP 알파 버전을 공개하면서 “코틀린 코드를 컴파일할 때 가장 큰 문제는 네이티브 어노테이션 프로세싱 시스템이 없다는 것이다. 룸(Room)과 같은 어노테이션 프로세서가 있긴 하지만 KAPT를 통한 자바 어노테이션 프로세싱 호환성에 의존한다. 그런데 KAPT는 중간에 자바 스텁(Stub)을 생성해야 하므로 실행 속도가 느릴 수 있다”라고 공식 블로그를 통해 밝혔다. 반면에 KSP는 코틀린 코드를 직접 파싱하는 API를 제공해 속도를 줄인다고 개발팀은 설명했다. 

KSP를 지원하는 라이브러리는 최대 2배 더 빠르지만 일반 어노테이션 프로세서와 유사하다. 동일한 모듈에서 KAPT와 KSP를 사용하면 처음에는 빌드 속도가 느려질 수 있다. 따라서 알파 버전 단계에서는 KSP와 KAPT를 별도의 모듈에서 유지 관리하는 것이 좋다고 개발팀은 전했다. 

코틀린은 안드로이드 애플리케이션 개발 공식 언어다. 한편 KSP는 멀티플랫폼을 목표로 개발되고 있으므로 JVM(Java Virtual Machine)과 연결되지 않는다. KSP는 코틀린 버전 1.34.0 이상부터 호환된다. 

KSP 소스코드 및 문서는 깃허브에서 다운로드 받을 수 있으며, ‘KSP 플레이그라운드 프로젝트(KSP Playground Project)’를 통해 KSP가 실제로 어떻게 작동하는지 확인할 수 있다. 단, API는 현재 개발 중이며 변경될 가능성이 있음으로 KSP를 프로덕션에 사용하는 것은 아직 바람직하지 않다. ciokr@idg.co.kr


 

X