Kotlin Weekly

Kotlin Weekly # -372 "코틀린 컴파일러 - K2"

베블렌 2023. 9. 19. 00:58

9월 3주차에는 멀티플렛폼을 제외하고 눈에 먼저 들어왔습니다.(맨위이기도 했습니다.)

 

https://proandroiddev.com/lets-talk-about-kotlin-k2-3e1c6f10d74

 

Let's Talk about Kotlin K2

Kotlin is now 13 years old! Yeah, a teenager. And it's starting to show its rebellious nature now! You know with Kotlin Multiplatform and…

proandroiddev.com

 

소개

 

Kotlin이 13년차에 접어들면서, 다양한 플랫폼에서 작동하려는 Kotlin Multiplatform을 추구하고있습니다. 이를 위해 이러한 변화에 맞추어 JetBrains은 Kotlin 컴파일러, K2를 발표하였고, 이는 기존보다 더 효율적이고 다양한 플랫폼 지원을 목적으로 하고있습니다.



내용

 

변경 동기: Kotlin 언어와 구문은 지속적으로 발전하고 있기 때문에, 컴파일러 또한 이러한 변화에 대응하여 발전해야 합니다. 첫 번째 컴파일러는 빠르게 프로그램을 개발할 목적으로 만들어졌지만, 현재는 효율성을 향상시키기 위해 필요합니다. 또한 Kotlin이 다양한 플랫폼 코드를 컴파일하는 책임을 맡으면서, 컴파일러가 플랫폼의 다양한 기능을 효과적으로 지원하는 것이 중요해졌습니다.


K2 컴파일러의 구조: K2 컴파일러는 크게 두 부분, 프론트엔드와 백엔드로 나뉩니다.

K2 Frontend: Kotlin K2는 새롭게 작성된 프론트엔드를 도입했습니다. 이 프론트엔드는 프로그램 정보를 저장하기 위한 새로운 데이터 구조인 Frontend Intermediate Representation (FIR)을 사용합니다. FIR는 K1 컴파일러에서 사용되던 BindingContext와는 달리, 더 빠른 컴파일을 위해 프로그램의 의미론적 정보를 저장하는 구문 트리입니다.

K2 Backend: 백엔드도 몇 가지 변화가 있었지만, 성능 향상은 K2 Backend의 목표가 아닙니다. 대신 JetBrains 팀은 다양한 백엔드가 로직을 공유하고, 새로운 언어 기능을 지원하게 하며, 커뮤니티가 백엔드 컴파일러 플러그인을 개발하는 것을 쉽게 만들고 싶어합니다.

 

K2를 시도해보기: Kotlin 1.9부터 K2 컴파일러의 알파 빌드를 시도해 볼 수 있습니다. 새 컴파일러를 사용하여 컴파일을 실행하려면 gradle.properties에 특정 라인을 추가하거나 gradle 래퍼를 사용하여 플래그를 전달해야 합니다.

 

안드로이드 : Android Studio의 Giraffe 223 및 Hedgehog 231 빌드에서는 K2 컴파일러의 실험적 지원이 제공됩니다. KSP, Compose 및 Android Studio의 안정된 support는 현재 활발히 개발 중이며, 내년 부터 사용 가능할 것으로 예상됩니다. 

 

 

 

 

정리

 

K2의 지속적인 발전이 Kotlin이 미래의 주요 프로그래밍 언어로서 계속 확장하게 될 것을 보여주는것 같습니다.
내년이 되면 Kotlin 2.0의 stable version이 나올것이고 Compose에서도 안정된 support가 나오면, Android 개발의 표준이 될 것으로 보입니다.

 

올해 4월에 코틀린 컨퍼런스에서 K2에 대한 부분도 있었습니다. 참고하면 좋을것같습니다.

 

https://www.youtube.com/watch?v=c4f4SCEYA5Q&list=PLlFc5cFwUnmwcJ7ZXyMmS70A9QFyUu1HI 

 

 

 

 

 

http://kotlinweekly.net/

 

** Kotlin Weekly **

 

kotlinweekly.net