Leanpub Header

Skip to main content

Jetpack Compose 메커니즘

@Composable의 모든 작동 원리를 파헤치다.

This book is 75% completeLast updated on 2026-07-19

이 책은 컴포즈 컴파일러, 런타임, UI 레이어, 그리고 성능 튜닝에 이르기까지 컴포즈의 모든 것을 탐구합니다. Jetpack Compose의 내부 소스 코드를 한 줄 한 줄 읽어 내려가며 특정 설계가 왜 그렇게 결정되었는지 그 이면을 설명하고, 여러분이 매일 작성하는 코드를 내부 메커니즘과 연결해 줍니다. 이 책을 읽고 나면 컴파일러와 런타임, UI 계층의 동작 시스템이 머릿속에 완성될 것이고, 궁극적으로 여러분이 일상에서 작성하는 컴포즈 프로젝트의 성능을 크게 향상시킬 수 있습니다.

코스 (영문): Jetpack Compose Mechanisms | 하드커버 종이책 (영문) | ISBN-13: 9798185354780

This book is a translation into Korean of Jetpack Compose Mechanisms which was originally written in English

Minimum price

$42.99

$52.99

You pay

Author earns

$

Also available for 2 book credits with a Reader Membership

PDF
EPUB
WEB
APP
489
Pages
84,875Words
About

About

About the Book

우리는 매일 @Composable 함수를 작성합니다. 하지만 그 함수가 내부에서 실제로 어떻게 실행되는지는 얼마나 알고 계신가요?

대부분의 자료가 Compose를 ‘어떻게 사용하는가’에 초점을 맞춘다면, Jetpack Compose 메커니즘 Compose가 ‘왜 이렇게 동작하는가’를 설명합니다. @Composable 함수가 컴파일 과정에서 어떻게 변환되는지부터 Composition을 저장하는 갭 버퍼 기반의 Slot Table, 선언형 UI를 실제 픽셀로 바꾸는 단일 패스 렌더링 파이프라인까지 Jetpack Compose의 내부 소스를 따라가며 하나씩 해부합니다.

그렇다고 내부 API를 단순히 나열하기만 하는 백과사전과 같은 책은 아닙니다. 저자가 실제 Compose 플러그인과 라이브러리를 개발하고 운영하며 얻은 경험을 바탕으로, 모든 내부 원리를 실무에서 바로 활용할 수 있는 예제와 연결합니다. 단순히 규칙을 암기하는 것이 아니라, Compose가 어떻게 작동하는지를 온전히 이해하도록 돕는 책입니다. 이 책은 최신 Kotlin 2.4.0과 Compose Compiler 2.4.0을 기준으로 집필되었습니다.

많은 개발자가 알지 못하는 사실이 하나 있습니다. 우리가 작성한 @Composable 함수와 실제로 실행되는 함수는 같지 않습니다. 컴파일이 끝나면 원래의 함수는 완전히 새로운 형태로 다시 작성됩니다. 모든 호출에는 $composer가 전달되고, $changed 비트마스크가 함수 실행을 건너뛸지 판단합니다. Slot Table은 상태를 호출 위치에 따라 기억하고, LayoutNode 트리는 단 한 번의 측정 과정으로 레이아웃을 계산한 뒤 하드웨어 레이어에 그리기 명령을 기록합니다.

예상하지 못한 리컴포지션이 발생했을 때, 이유를 알 수 없는 스크롤 버벅임을 마주했을 때, 컴파일러 리포트에 "not skippable"이라는 문구만 남고 원인을 찾지 못했을 때, 우리는 이미 이 내부 시스템의 영향을 일상에서 경험하고 있었습니다.

이 책은 바로 그 모든 현상을 이해하기 위한 안내서입니다. @Composable이 단순한 어노테이션이 아니라 함수 타입 자체를 바꾸는 표식인 이유, 컴파일러가 작성한 코드를 상태 머신에 가까운 형태로 변환하는 과정, mutableStateOf는 리컴포지션을 일으키지만 일반 var는 아무런 동작도 하지 못하는 차이를 이해하고 학습합니다.

Snapshot 시스템이 어떻게 명시적인 락 없이 멀티스레드 상태를 관리하는지, 불안정한 List 필드 하나가 화면 전체의 성능을 조용히 떨어뜨리는 이유, Compose의 레이아웃 시스템이 과거 View 시스템의 기하급수적인 측정 문제를 피하면서 모든 요소를 한 번의 패스로 측정하는 방법도 살펴봅니다. 각 챕터는 개발자가 쉽게 이해할 수 있는 부분에서 시작하지만, 마지막 챕터에 도달할 때면 Compose의 내부가 생각보다 훨씬 깊은 곳까지 이어져 있다는 사실을 이해하게 될 것입니다.

저자가 직접 개발한 Compose Stability AnalyzerCompose Stability InferenceCompose Navigation GraphCompose HotSwanCompose Performance Skills를 비롯한 다양한 Compose 플러그인 및 라이브러리의 경험을 기반으로 집필 되었습니다. 책에서 다루는 모든 메커니즘은 Composer와 Kotlin 컴파일러, Compose Runtime 등을 포함하여 저자가 실제로 사용하고, 디버깅하고, 프로덕션에 배포하며 검증한 것들입니다.

책은 Compose를 구성하는 세 개의 레이어를 따라 깊이 학습한 뒤, 단순히 이론적인 내용 학습에서 끝나는 것이 아니라 실용적인 내용에 바로 적용해 봅니다.

1장에서는 컴포즈 컴파일러가 우리가 작성한 @Composable 함수를 실제 어떻게 변환하는지 그 과정을 추적합니다. $composer와 $changed 파라미터, 스킵 가능 여부를 결정하는 안정성 추론, 람다 메모이제이션, 그리고 최종 코드를 만들어 내는 수많은 IR 패스를 살펴봅니다.

2장에서는 런타임으로 들어갑니다. Composition을 위치 기반으로 기억하는 갭 버퍼 구조의 Slot Table, 락 없이 멀티스레드 상태를 관리하는 Snapshot 시스템, 프레임 경계에 맞춰 작업을 예약하는 Recomposer, 그리고 동일한 런타임 엔진으로 어떤 형태의 트리도 다룰 수 있게 해주는 Applier의 구조를 파헤쳐봅니다.

3장에서는 그 트리가 실제 픽셀로 변환되는 과정을 다룹니다. LayoutNode, 현대적인 Modifier.Node 시스템과 Coordinator 체인, 단일 패스 측정, 그래픽 레이어, 입력 처리, 접근성 Semantics, Lookahead와 Shared Element Transition, SubcomposeLayout까지 이어집니다. 마지막에는 나만의 미니 Compose UI 라이브러리를 처음부터 직접 구현해 봅니다.

4장에서는 앞선 세 장의 모든 내용을 모두 하나의 점으로 연결하여 실용적으로 컴포즈 성능을 최적화하는 방법에 대하여 살펴봅니다. 저자가 Compose 라이브러리와 플러그인을 프로덕션에 배포하며 축적한 경험을 바탕으로 만든 실전 중심의 성능 플레이북입니다. 안정성 추론 알고리즘을 단계별로 살펴보고, 실제 Composable을 대상으로 런타임이 스킵 여부를 판단하는 과정을 직접 확인합니다. 상태 읽기를 올바른 렌더링 단계로 옮기는 방법, 불필요한 재구성을 일으키는 람다와 ViewModel 패턴을 수정하는 방법도 살펴봅니다. Compiler Report, Recomposition Tracing, Layout Inspector, Macrobenchmark를 활용해 성능 개선 결과를 객관적으로 측정하는 과정까지 함께 다룹니다. 프레임을 조용히 갉아먹는 대표적인 안티패턴을 짚어보고, 마지막에는 초당 47회의 리컴포지션이 발생하던 버벅이는 채팅 화면을 리컴포지션 0회까지 줄이는 실용적인 사례를 분석합니다. 이 챕터를 마치고 나면 단순히 성능 최적화에 관한 설명을 읽은 수준을 넘어, 소스 코드에서 직접 원인을 찾아내고 해결할 수 있게 됩니다.

마지막 페이지를 넘길때 즈음, Compose는 더 이상 암기해야 할 API나 이유를 모른 채 규칙을 따라야 하는 툴이 아니라 수많은 정교한 시스템의 구조체라는 것이 머릿속에 그려질 것입니다. 그 후 컴포저블 함수를 다시 보면 논리적으로 분석할 수 있고, 빌드하기 전에 동작을 예측할 수 있으며, 문제가 발생했을 때 소스 코드에서 직접 원인을 추적할 수 있는 통찰력을 얻을 수 있습니다. 더 이상 추측에 의존하지 않고, UI 내부에서 실제로 무엇이 실행되고 있는지 직접 이해하고 싶으셨다면 이 책이 그 해답이 되길 바랍니다.

엄재웅 (skydoves)

ISBN-13: 9798185354780

This book is a translation into Korean of Jetpack Compose Mechanisms which was originally written in English

Bundles

Bundles that include this book

Author

About the Author

Jaewoong

The author of this book, Jaewoong Eum (known as skydoves), is a Google Developer Expert (GDE) for Android, Kotlin, and Firebase; an open-source developer who has created 100+ open-source libraries and projects, collectively amassing 40+ million downloads annually. The author of the Manifest Android Interview / Practical Kotlin Deep Dive books and also the founder of Dove Letter, a subscription-based repository dedicated to sharing, learning, and discussing Android and Kotlin development.

Translations

Translations

Languages

Contents

Table of Contents

서문

  1. 이 책의 대상 독자
  2. 이 책이 다루는 내용
  3. 이슈 리포트

Chapter 1. Compose 컴파일러

  1. @Composable: 어노테이션에서 코드 변환까지
  2. 안정성 추론: 컴파일러가 매개변수를 분류하는 방법
  3. 람다 메모이제이션(lambda memoization): 불필요한 recomposition 방지
  4. Compose 컴파일러 플러그인 아키텍처
  5. IR 변환 파이프라인
  6. Composer 매개변수 주입
  7. $changed 비트마스크: 매개변수 변경 추적
  8. 컴포저블 함수 본문 변환
  9. 내구성 있는 함수 키
  10. 전체 그림: 컴포저블 하나가 모든 패스를 거치는 과정 추적하기
  11. 피처 플래그와 컴파일러 최적화
  12. 컴파일러 리포트 읽기
  13. 안정성 구성: 외부 타입의 추론 제어하기
  14. 컴포지션 트레이싱으로 recomposition 디버깅하기
  15. Live Literals: 컴파일러가 리터럴 핫 스왑을 지원하는 방법
  16. 챕터 1 핵심 요약

Chapter 2. Compose 런타임

  1. remember와 캐싱
  2. 상태 관리와 상태 레코드 시스템: mutableStateOf
  3. 파생 상태: 의존성 추적을 곁들인 지연 계산
  4. Effects: 선언형 세계의 사이드 이펙트
  5. CompositionLocal: 트리를 따라 흐르는 암시적 데이터 전달
  6. Composer: 컴포지션 조율
  7. SlotTable: UI 상태를 담는 갭 버퍼
  8. 그룹: 컴포지션을 이루는 구성 단위
  9. 스냅샷 시스템: MVCC 기반 격리
  10. Recomposer: recomposition 스케줄링과 실행
  11. Applier: 런타임과 트리 연결
  12. MovableContent: 트리 이동 간 상태 보존
  13. 상태와 Flow 연결: snapshotFlow, collectAsState, produceState
  14. 흔한 상태 함정: 런타임이 생각처럼 동작하지 않는 이유
  15. recomposition 스코프: 실제로 다시 실행되는 부분은 어디까지인가
  16. 스냅샷 기반 테스트: 테스트에서 시간과 상태를 제어하기
  17. 챕터 2 핵심 요약

Chapter 3. Compose UI

  1. Modifier 순서가 중요한 이유
  2. LayoutNode: UI 트리의 핵심 요소
  3. Modifier 시스템: Modifier에서 Modifier.Node까지
  4. coordinator 체인: 측정과 레이아웃 위임
  5. 측정과 레이아웃 파이프라인
  6. 렌더링 파이프라인: 그리기 호출에서 픽셀까지
  7. 입력과 제스처 처리: 터치에서 컴포저블까지
  8. 포커스 관리: 키보드 내비게이션과 포커스 순회
  9. 시맨틱스와 접근성: Compose를 접근 가능하게 만들기
  10. lookahead 시스템: 애니메이션을 위한 예측 측정
  11. SubcomposeLayout: 측정 중 동적 컴포지션
  12. 안드로이드 통합: AndroidComposeView와 플랫폼 브리지
  13. Layout 컴포저블로 커스텀 레이아웃 만들기
  14. 커스텀 Modifier.Node 구현하기
  15. 공유 요소 전환: LookaheadScope에서 SharedTransitionScope까지
  16. 공유 요소 API: 작은 표면 아래의 거대한 메커니즘
  17. 중첩 스크롤(nested scrolling): 스크롤 이벤트가 modifier 체인을 따라 흐르는 방식
  18. lazy 레이아웃: LazyColumn은 SubcomposeLayout 위에 어떻게 쌓여 있는가?
  19. 나만의 Compose UI 만들기: 런타임, 나만의 컴포즈 트리
  20. 챕터 3 핵심 요약

Chapter 4. 성능

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $15 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub