• 목록 (128)
    • Android (62)
    • Back-End (2)
    • Java (3)
    • Kotlin (16)
    • CS (7)
    • 개발 서적 (12)
    • 문제 풀이 (26)

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
MJ_94

한 우물만 파는 기술 블로그

Android

[Android] Compose 컴파일러 - (1)

2024. 11. 13. 17:19

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
    'Android' 카테고리의 다른 글
    • [Android] Compose 컴파일러 - (3)
    • [Android] Compose 컴파일러 - (2)
    • [Android] Compose Composable 함수들 - (3)
    • [Android] Compose Composable 함수들 - (2)
    MJ_94
    MJ_94
    안드로이드, 개발 관련 기술 블로그

    티스토리툴바