Leanpub 베스트셀러 1위 선정

Jetpack Compose 메커니즘

@Composable의 모든 작동 원리를 파헤치다. 컴파일러와 런타임, UI 레이어가 실제로 어떻게 동작하는지 살펴봅니다.

대부분의 자료가 Compose를 '어떻게 사용하는가'에 초점을 맞춘다면, 이 책은 Compose가 '왜 이렇게 동작하는가'를 설명합니다. @Composable 함수가 컴파일 과정에서 어떻게 변환되는지부터 Composition을 저장하는 갭 버퍼 기반의 Slot Table, 선언형 UI를 실제 픽셀로 바꾸는 단일 패스 렌더링 파이프라인까지 AOSP 소스를 한 줄 한 줄 따라가며 해부합니다. 그렇다고 내부 API를 단순히 나열하는 백과사전 같은 책은 아닙니다. 저자가 실제 Compose 플러그인과 라이브러리를 개발하고 운영하며 얻은 경험을 바탕으로, 모든 내부 원리를 실무에서 바로 활용할 수 있는 예제와 연결합니다. 최신 Kotlin 2.4.0과 Compose Compiler 2.4.0을 기준으로 집필되었습니다.

4
챕터
644
페이지
64
심화 주제
54
다이어그램

AOSP 소스 코드를 한 줄 한 줄 읽고, Compose 도구를 직접 만들며 얻은 경험을 바탕으로 집필했습니다.

ISBN-13: 9798185464649

저자 소개

엄재웅 (skydoves)

엄재웅 (skydoves)

Google Developer Expert (Android & Firebase) · Senior Developer Advocate & Engineer @ RevenueCat

안드로이드와 파이어베이스 분야의 Google Developer Expert(GDE), 이전에는 코틀린 분야 GDE로도 활동한 엄재웅(skydoves)입니다. 지금까지 100개가 넘는 오픈소스 라이브러리와 프로젝트를 만들어 왔고, 전 세계 개발자들이 매년 1,500만 회 이상 내려받고 있습니다. 그중 상당수는 Jetpack Compose를 기반으로 만들어졌습니다.

대부분의 개발자는 Compose를 쓰는 법은 알지만, @Composable 함수 아래에서 벌어지는 일까지 이해하는 경우는 훨씬 드뭅니다. 저는 그 간극을 메우기 위해 이 책을 썼습니다. 여러분의 UI 아래에서 실제로 무엇이 실행되는지 보고, 그 이해를 오늘 만들고 있는 제품에서 Compose를 올바르게 쓰고 성능을 튜닝하는 데 바로 활용하시길 바랍니다. 이 책은 앞서 쓴 Manifest Android InterviewPractical Kotlin Deep Dive의 연장선에 있습니다.

이 책은 소스 코드를 탐구한 경험으로만 쓰이지 않았습니다. Compose Stability Analyzer, Compose Stability Inference, Compose Navigation Graph, Compose HotSwan, Compose Performance Skills를 비롯해 제가 직접 Compose 도구와 라이브러리를 만들며 얻은 경험이 바탕이 되었습니다. 이 책에 담긴 모든 메커니즘은 제가 실제로 사용하고, 디버깅하고, 프로덕션에 배포하며 검증한 것들입니다.

이 책이 컴파일러 변환과 스냅샷 기반 상태부터 레이아웃과 드로잉, 그리고 거기서 이어지는 성능 특성까지, Compose에 대한 완전한 멘탈 모델을 세우는 데 도움이 되기를 바랍니다.

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. 1@Composable: 어노테이션에서 코드 변환까지p.10
  2. 2안정성 추론: 컴파일러가 매개변수를 분류하는 방법p.26
  3. 3람다 메모이제이션(lambda memoization): 불필요한 recomposition 방지p.39
  4. 4Compose 컴파일러 플러그인 아키텍처p.49
  5. 5IR 변환 파이프라인p.55
  6. 6Composer 매개변수 주입p.64
  7. 7$changed 비트마스크: 매개변수 변경 추적p.69
  8. 8컴포저블 함수 본문 변환p.79
  9. 9내구성 있는 함수 키p.96
  10. 10전체 그림: 컴포저블 하나가 모든 패스를 거치는 과정 추적하기p.102
  11. 11피처 플래그와 컴파일러 최적화p.105
  12. 12컴파일러 리포트 읽기p.110
  13. 13안정성 구성: 외부 타입의 추론 제어하기p.120
  14. 14컴포지션 트레이싱으로 recomposition 디버깅하기p.134
  15. 15Live Literals: 컴파일러가 리터럴 핫 스왑을 지원하는 방법p.145
  16. 16챕터 1 핵심 요약p.155
9개의 Pro Tips 수록
  1. 1remember와 캐싱p.160
  2. 2상태 관리와 상태 레코드 시스템: mutableStateOfp.170
  3. 3파생 상태: 의존성 추적을 곁들인 지연 계산p.176
  4. 4Effects: 선언형 세계의 사이드 이펙트p.181
  5. 5CompositionLocal: 트리를 따라 흐르는 암시적 데이터 전달p.192
  6. 6Composer: 컴포지션 조율p.199
  7. 7SlotTable: UI 상태를 담는 갭 버퍼p.206
  8. 8그룹: 컴포지션을 이루는 구성 단위p.229
  9. 9스냅샷 시스템: MVCC 기반 격리p.237
  10. 10Recomposer: recomposition 스케줄링과 실행p.250
  11. 11Applier: 런타임과 트리 연결p.260
  12. 12MovableContent: 트리 이동 간 상태 보존p.270
  13. 13상태와 Flow 연결: snapshotFlow, collectAsState, produceStatep.275
  14. 14흔한 상태 함정: 런타임이 생각처럼 동작하지 않는 이유p.286
  15. 15recomposition 스코프: 실제로 다시 실행되는 부분은 어디까지인가p.295
  16. 16스냅샷 기반 테스트: 테스트에서 시간과 상태를 제어하기p.307
  17. 17챕터 2 핵심 요약p.315
10개의 Pro Tips 수록
  1. 1Modifier 순서가 중요한 이유p.320
  2. 2LayoutNode: UI 트리의 핵심 요소p.323
  3. 3Modifier 시스템: Modifier에서 Modifier.Node까지p.330
  4. 4coordinator 체인: 측정과 레이아웃 위임p.346
  5. 5측정과 레이아웃 파이프라인p.354
  6. 6렌더링 파이프라인: 그리기 호출에서 픽셀까지p.363
  7. 7입력과 제스처 처리: 터치에서 컴포저블까지p.373
  8. 8포커스 관리: 키보드 내비게이션과 포커스 순회p.385
  9. 9시맨틱스와 접근성: Compose를 접근 가능하게 만들기p.391
  10. 10lookahead 시스템: 애니메이션을 위한 예측 측정p.397
  11. 11SubcomposeLayout: 측정 중 동적 컴포지션p.402
  12. 12안드로이드 통합: AndroidComposeView와 플랫폼 브리지p.412
  13. 13Layout 컴포저블로 커스텀 레이아웃 만들기p.422
  14. 14커스텀 Modifier.Node 구현하기p.430
  15. 15공유 요소 전환: LookaheadScope에서 SharedTransitionScope까지p.437
  16. 16공유 요소 API: 작은 표면 아래의 거대한 메커니즘p.444
  17. 17중첩 스크롤(nested scrolling): 스크롤 이벤트가 modifier 체인을 따라 흐르는 방식p.448
  18. 18lazy 레이아웃: LazyColumn은 SubcomposeLayout 위에 어떻게 쌓여 있는가?p.458
  19. 19나만의 Compose UI 만들기: 런타임, 나만의 컴포즈 트리p.468
  20. 20챕터 3 핵심 요약p.481
10개의 Pro Tips 수록
  1. 1세 가지 렌더링 단계: 성능 비용이 발생하는 지점p.489
  2. 2안정성 추론: 12단계 알고리즘p.498
  3. 3건너뛰기 판단: 안정성에서 실행까지p.519
  4. 4안정성 패턴: 타입을 건너뛰기 친화적으로 만들기p.535
  5. 5상태 읽기: recomposition 대상을 결정하는 읽기 위치p.550
  6. 6람다 recomposition: 이벤트 핸들러가 리빌드를 유발할 때p.564
  7. 7성능 측정: 컴파일러 리포트부터 CI 검증까지p.570
  8. 8안티패턴: 본인도 모르게 Compose를 느리게 만드는 6가지p.594
  9. 9심화 기법: 안정성만으로 부족할 때p.606
  10. 10사례 연구: 채팅 메시지 목록 최적화p.622
  11. 11Chapter 4 핵심 요약p.635
9개의 Pro Tips 수록

인쇄판

하드커버로도 만나보세요

4개 챕터, 64개 심화 주제, 54개 다이어그램을 그대로 인쇄해 제본했습니다. Amazon에서 하드커버와 페이퍼백으로 판매하며, 인쇄판은 영문판으로만 제공됩니다.

인쇄판 실물 사진입니다. 클릭하면 확대해서 볼 수 있습니다.

ISBN-13 9798185464649 (하드커버) · 9798185354780 (페이퍼백)

여정

타임라인 & 마일스톤

2026.07.01
300부 판매 달성 🎉
2026.06.21
200부 판매 달성 🎉
2026.06.17
100부 판매 달성 🎉
2026.06.16
초판 출간