Jetpack Compose 메커니즘
@Composable의 모든 작동 원리를 파헤치다. 컴파일러와 런타임, UI 레이어가 실제로 어떻게 동작하는지 살펴봅니다.
대부분의 자료가 Compose를 '어떻게 사용하는가'에 초점을 맞춘다면, 이 책은 Compose가 '왜 이렇게 동작하는가'를 설명합니다. @Composable 함수가 컴파일 과정에서 어떻게 변환되는지부터 Composition을 저장하는 갭 버퍼 기반의 Slot Table, 선언형 UI를 실제 픽셀로 바꾸는 단일 패스 렌더링 파이프라인까지 AOSP 소스를 한 줄 한 줄 따라가며 해부합니다. 그렇다고 내부 API를 단순히 나열하는 백과사전 같은 책은 아닙니다. 저자가 실제 Compose 플러그인과 라이브러리를 개발하고 운영하며 얻은 경험을 바탕으로, 모든 내부 원리를 실무에서 바로 활용할 수 있는 예제와 연결합니다. 최신 Kotlin 2.4.0과 Compose Compiler 2.4.0을 기준으로 집필되었습니다.
AOSP 소스 코드를 한 줄 한 줄 읽고, Compose 도구를 직접 만들며 얻은 경험을 바탕으로 집필했습니다.
ISBN-13: 9798185464649
Compose를 안에서부터 이해하기
이 책이 특별한 이유
컴파일 타임의 변환부터 화면에 찍히는 픽셀까지, 실제 소스 코드에 근거해 설명합니다
🔬내부 소스 코드 탐구
문서를 옮겨 적은 것이 아니라, AOSP의 Compose 컴파일러·런타임·UI 소스를 한 줄 한 줄 읽어 내려가며 썼습니다. 저자가 직접 만들고 배포한 Compose 도구로 검증한 내용이며, 이 모든 것은 결국 하나의 실용적인 목표로 이어집니다. 실무의 Compose 성능을 개선하는 데 필요한 이해입니다.
🧠How가 아니라 Why
API 사용법을 넘어 Compose가 왜 그렇게 동작하는지를 설명합니다. 안정성 추론, 리컴포지션, 스냅샷 시스템, 그리고 UI의 실행 방식을 결정하는 단일 패스 측정 모델까지 다룹니다.
🎨이해를 돕기 위한 54개의 다이어그램
IR 변환, SlotTable 갭 버퍼, Coordinator 체인처럼 복잡한 메커니즘을 눈으로 따라가며 이해할 수 있도록 54개의 다이어그램으로 시각화했습니다.
📈점진적 난이도
각 챕터는 어떤 안드로이드 개발자든 따라올 수 있는 개념에서 시작해 점차 깊은 내부로 내려갑니다. 어느 지점에서 멈추더라도 실무에 바로 쓸 수 있는 지식을 얻어 갈 수 있습니다.
책 속으로
이해를 돕기 위한 54개의 다이어그램
IR 변환, SlotTable 갭 버퍼, Effect 생명주기, 안정성 추론처럼 가장 까다로운 내부 구조를 시각화했습니다. 읽는 데서 그치지 않고 Compose가 어떻게 동작하는지 직접 볼 수 있습니다.
책에 수록된 다이어그램 중 일부입니다. 클릭하면 확대해서 볼 수 있습니다.
구성
이 책에 담긴 내용
4개 챕터에 걸친 64개의 심화 주제
이 책은 Compose의 내부 동작을 알려주는 데서 그치지 않습니다. 실제 프로젝트에 곧바로 적용하고 높은 수준의 성능 튜닝에 활용할 수 있는, 실질적인 인사이트를 제공합니다.
무엇보다 실전성을 바탕으로 집필되었습니다. 모든 챕터가 Compose Stability Analyzer, Compose Stability Inference, Compose Navigation Graph, Compose HotSwan, Compose Performance Skills를 비롯한 Compose 도구를 실제로 만들며 얻은 경험에 뿌리를 두고 있어, 프로덕션 코드에 바로 쓸 수 있는 검증된 인사이트를 담고 있습니다.
- 1@Composable: 어노테이션에서 코드 변환까지p.10
- 2안정성 추론: 컴파일러가 매개변수를 분류하는 방법p.26
- 3람다 메모이제이션(lambda memoization): 불필요한 recomposition 방지p.39
- 4Compose 컴파일러 플러그인 아키텍처p.49
- 5IR 변환 파이프라인p.55
- 6Composer 매개변수 주입p.64
- 7$changed 비트마스크: 매개변수 변경 추적p.69
- 8컴포저블 함수 본문 변환p.79
- 9내구성 있는 함수 키p.96
- 10전체 그림: 컴포저블 하나가 모든 패스를 거치는 과정 추적하기p.102
- 11피처 플래그와 컴파일러 최적화p.105
- 12컴파일러 리포트 읽기p.110
- 13안정성 구성: 외부 타입의 추론 제어하기p.120
- 14컴포지션 트레이싱으로 recomposition 디버깅하기p.134
- 15Live Literals: 컴파일러가 리터럴 핫 스왑을 지원하는 방법p.145
- 16챕터 1 핵심 요약p.155
- 1remember와 캐싱p.160
- 2상태 관리와 상태 레코드 시스템: mutableStateOfp.170
- 3파생 상태: 의존성 추적을 곁들인 지연 계산p.176
- 4Effects: 선언형 세계의 사이드 이펙트p.181
- 5CompositionLocal: 트리를 따라 흐르는 암시적 데이터 전달p.192
- 6Composer: 컴포지션 조율p.199
- 7SlotTable: UI 상태를 담는 갭 버퍼p.206
- 8그룹: 컴포지션을 이루는 구성 단위p.229
- 9스냅샷 시스템: MVCC 기반 격리p.237
- 10Recomposer: recomposition 스케줄링과 실행p.250
- 11Applier: 런타임과 트리 연결p.260
- 12MovableContent: 트리 이동 간 상태 보존p.270
- 13상태와 Flow 연결: snapshotFlow, collectAsState, produceStatep.275
- 14흔한 상태 함정: 런타임이 생각처럼 동작하지 않는 이유p.286
- 15recomposition 스코프: 실제로 다시 실행되는 부분은 어디까지인가p.295
- 16스냅샷 기반 테스트: 테스트에서 시간과 상태를 제어하기p.307
- 17챕터 2 핵심 요약p.315
- 1Modifier 순서가 중요한 이유p.320
- 2LayoutNode: UI 트리의 핵심 요소p.323
- 3Modifier 시스템: Modifier에서 Modifier.Node까지p.330
- 4coordinator 체인: 측정과 레이아웃 위임p.346
- 5측정과 레이아웃 파이프라인p.354
- 6렌더링 파이프라인: 그리기 호출에서 픽셀까지p.363
- 7입력과 제스처 처리: 터치에서 컴포저블까지p.373
- 8포커스 관리: 키보드 내비게이션과 포커스 순회p.385
- 9시맨틱스와 접근성: Compose를 접근 가능하게 만들기p.391
- 10lookahead 시스템: 애니메이션을 위한 예측 측정p.397
- 11SubcomposeLayout: 측정 중 동적 컴포지션p.402
- 12안드로이드 통합: AndroidComposeView와 플랫폼 브리지p.412
- 13Layout 컴포저블로 커스텀 레이아웃 만들기p.422
- 14커스텀 Modifier.Node 구현하기p.430
- 15공유 요소 전환: LookaheadScope에서 SharedTransitionScope까지p.437
- 16공유 요소 API: 작은 표면 아래의 거대한 메커니즘p.444
- 17중첩 스크롤(nested scrolling): 스크롤 이벤트가 modifier 체인을 따라 흐르는 방식p.448
- 18lazy 레이아웃: LazyColumn은 SubcomposeLayout 위에 어떻게 쌓여 있는가?p.458
- 19나만의 Compose UI 만들기: 런타임, 나만의 컴포즈 트리p.468
- 20챕터 3 핵심 요약p.481
- 1세 가지 렌더링 단계: 성능 비용이 발생하는 지점p.489
- 2안정성 추론: 12단계 알고리즘p.498
- 3건너뛰기 판단: 안정성에서 실행까지p.519
- 4안정성 패턴: 타입을 건너뛰기 친화적으로 만들기p.535
- 5상태 읽기: recomposition 대상을 결정하는 읽기 위치p.550
- 6람다 recomposition: 이벤트 핸들러가 리빌드를 유발할 때p.564
- 7성능 측정: 컴파일러 리포트부터 CI 검증까지p.570
- 8안티패턴: 본인도 모르게 Compose를 느리게 만드는 6가지p.594
- 9심화 기법: 안정성만으로 부족할 때p.606
- 10사례 연구: 채팅 메시지 목록 최적화p.622
- 11Chapter 4 핵심 요약p.635
skydoves의 다른 책
저자의 다른 책
저자가 집필한 다른 책도 살펴보시면 학습 또는 기술면접 준비에 많은 도움이 됩니다.
인쇄판
하드커버로도 만나보세요
4개 챕터, 64개 심화 주제, 54개 다이어그램을 그대로 인쇄해 제본했습니다. Amazon에서 하드커버와 페이퍼백으로 판매하며, 인쇄판은 영문판으로만 제공됩니다.
인쇄판 실물 사진입니다. 클릭하면 확대해서 볼 수 있습니다.
ISBN-13 9798185464649 (하드커버) · 9798185354780 (페이퍼백)
여정

