Jetpack Compose는 다양한 라이브러리의 집합으로 구성되어 있다.
그 중 눈여겨 봐야할 라이브러리는 Compose Compiler, Compose Runtime, Compose UI 세 가지가 있다.
(나머지는 중요하지 않다는게 아니다.)
Compose Compiler와 Compose Runtime은 Compose의 핵심 요소로 요구 사항을 충족하는 어떤 클라이언트 라이브러리에서든 사용될 수 있도록 포괄적으로 되자인 되었다.
반면 Compose UI는 Runtime과 Compiler를 활용하는 클라이언트 정도로 애초에 Compose의 아키텍처에 속해 있지 않다.
즉 Compose Compiler와 Compose Runtime과 상호작용할 수 있는 다른 클라이언트도 존재한다.
Compose Compiler
Jetpack Compose는 앞 장 들에서 알아 본 대로 Compiler가 Composable 함수의 정보를 읽고 변환하여 Composer라는 매개변수를 강제 주입하는 등의 변환 작업에 의존적이며 Compose Compiler는 kotlin Compiler Plugin이다.
따라서 Kotlin 컴파일 단계 내에서 진행되는 컴파일 타임 작업을 수행할 수 있고, 프로세스를 가속화할 수 있다.
kapt와 같은 어노테이션 프로세는 컴파일 이전에 수행되어야 하지만 Kotlin Compiler Plugin은 바로 컴파일 과정에 직접 내장 되어 있으므로 비용적, 속도적 측면에서 우위에 있다.
또한 Kotlin Compiler Plugin의 또 다른 장점은 개발자가 작성한 기존 소스를 정적 분석하고 필요에따라 수정할 수 있다. 이에 따라 Kotlin Compiler는 개발자가 작성한 코드를 해석하며 소스 코드를 수정할 수 있으며 플랫폼에서 지원하는 원시 요소로 변환할 수 있다.
이러한 특징의 장점을 살려 Kotlin Compiler Plugin인 Compose Compiler는 Compose Runtime이 요구하는 대로 Composable 함수 혹은 표현식들을 필요한대로 변형(IR)시킬 수 있다.
'Android' 카테고리의 다른 글
[Android] Compose 컴파일러 - (3) (0) | 2024.11.15 |
---|---|
[Android] Compose 컴파일러 - (2) (0) | 2024.11.14 |
[Android] Compose Composable 함수들 - (3) (0) | 2024.11.12 |
[Android] Compose Composable 함수들 - (2) (0) | 2024.11.12 |
[Android] Compose Composable 함수들 - (1) (0) | 2024.11.11 |