Leanpub Header

Skip to main content

컴포즈 & 코틀린 딥다이브 (Jetpack Compose 메커니즘 + Practical Kotlin Deep Dive)

Bought separately

$105.98

Minimum price

$64.99

$74.98

You pay

Author earns

$

Also available for 3 book credits with a Reader Membership

The following 2 books are included in this bundle...

These books have a total suggested price of $105.98. Get them now for only $64.99!
About

About

About the Bundle

Practical Kotlin Deep Dive 한국어

Practical Kotlin Deep Dive는 코틀린의 핵심 문법과 내부 동작 원리부터 API 설계에 이르기까지, 그 이면에 있는 “어떻게(how)”와 “왜(why)”를 깊이 있게 풀어냅니다. 코틀린 기초, 표준 라이브러리, 코루틴, kotlinx 라이브러리, 컴파일러 내부 구조, 그리고 코틀린 멀티플랫폼까지 폭넓게 다룹니다.

이 책은 단순한 API 사용법을 넘어 코틀린의 내부를 직접 들여다봅니다. 실제 코틀린 함수 구현을 분석하고, 생성되는 바이트코드를 이해하기 쉽게 설명하며, 코틀린 컴파일러가 언어를 어떻게 해석하는지 구체적으로 보여줍니다. 또한 KEEP 제안서, JetBrains YouTrack 논의, 컴파일러 소스 코드를 직접 참고하여 개념이 어떤 배경과 설계 의도에서 출발했는지를 연결해 설명합니다.

단순히 API를 암기하는 것이 아니라, 코틀린을 “이해하며 사고”할 수 있는 관점을 제공하는 것이 이 책의 목표입니다. 또한, 코틀린을 효과적으로 사용하는 방법을 배우는 것을 넘어, 왜 언어가 지금과 같은 형태로 설계되었는지를 탐구할 수 있습니다. 이를 통해 코틀린의 언어적 철학에 대해 한층 더 깊이 고민해 보고, 결과적으로는 더 나은 코드를 작성할 수 있기를 희망합니다.

이 책은 독자들의 지속적인 성장을 위해 선별된 참고 자료와 추가 학습 리소스를 함께 제공합니다. 복잡하거나 생소한 용어는 이해하기 쉬운 각주로 설명하였고, 어려운 내용이나 원본에서 다소 모호하게 느껴질 수 있는 개념이나 영문 표현들을 훨씬 이해하기 쉽도록 풀어쓰었습니다. 처음 접하는 독자들도 부담 없이 따라올 수 있도록 했으며, 동시에 시니어 개발자들도 흥미롭게 읽어볼 수 있는 다양한 관점들을 제공합니다.

“Pro Tips for Mastery” 섹션에서는 코틀린 함수의 내부 구조, 알고리즘, 컴파일러 동작 방식, 그리고 실무에서 중요한 구현 세부 사항까지 깊이 다룹니다. 시니어 엔지니어에게는 전문성을 더욱 날카롭게 다듬을 수 있는 디테일을, 중급 개발자에게는 코틀린 이해도를 한 단계 끌어올릴 수 있는 전반적인 시야를 제공합니다.

성능이 중요한 코드를 최적화하든, 복잡한 코루틴 작업을 다루든, 멀티플랫폼 개발을 탐구하든, 이 책은 단순한 튜토리얼이나 API 소개 그 이상을 다룹니다. 언어적 설계나 기원을 이해하고, 내부 메커니즘을 파악하면서, 이 책을 완전히 읽은 독자들은 코틀린이라는 언어에 대해 더 나은 자신감을 갖고 단순한 개발자가 아니라 엔지니어라는 커리어 패스로 나아가는 의미있는 탐구서가 되었으면 좋겠습니다.

(국제 ISBN-13 식별 번호: 979-8243872744) Practical Kotlin Deep Dive (한국어 번역판) 페이지에서 구매 전 책에 대한 자세한 설명을 읽어보실 수 있습니다.

Jetpack Compose 메커니즘

우리는 매일 @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

Books

About the Books

Practical Kotlin Deep Dive 한국어

코틀린의 기초 원리와 언어 철학을 넘어 내부 동작까지 ‘How’와 ‘Why’를 탐구하는 기술 가이드

Practical Kotlin Deep Dive는 코틀린의 핵심 문법과 내부 동작 원리부터 API 설계에 이르기까지, 그 이면에 있는 “어떻게(how)”와 “왜(why)”를 깊이 있게 풀어냅니다. 코틀린 기초, 표준 라이브러리, 코루틴, kotlinx 라이브러리, 컴파일러 내부 구조, 그리고 코틀린 멀티플랫폼까지 폭넓게 다룹니다.

이 책은 단순한 API 사용법을 넘어 코틀린의 내부를 직접 들여다봅니다. 실제 코틀린 함수 구현을 분석하고, 생성되는 바이트코드를 이해하기 쉽게 설명하며, 코틀린 컴파일러가 언어를 어떻게 해석하는지 구체적으로 보여줍니다. 또한 KEEP 제안서, JetBrains YouTrack 논의, 컴파일러 소스 코드를 직접 참고하여 개념이 어떤 배경과 설계 의도에서 출발했는지를 연결해 설명합니다.

단순히 API를 암기하는 것이 아니라, 코틀린을 “이해하며 사고”할 수 있는 관점을 제공하는 것이 이 책의 목표입니다. 또한, 코틀린을 효과적으로 사용하는 방법을 배우는 것을 넘어, 왜 언어가 지금과 같은 형태로 설계되었는지를 탐구할 수 있습니다. 이를 통해 코틀린의 언어적 철학에 대해 한층 더 깊이 고민해 보고, 결과적으로는 더 나은 코드를 작성할 수 있기를 희망합니다.

이 책은 독자들의 지속적인 성장을 위해 선별된 참고 자료와 추가 학습 리소스를 함께 제공합니다. 복잡하거나 생소한 용어는 이해하기 쉬운 각주로 설명하였고, 어려운 내용이나 원본에서 다소 모호하게 느껴질 수 있는 개념이나 영문 표현들을 훨씬 이해하기 쉽도록 풀어쓰었습니다. 처음 접하는 독자들도 부담 없이 따라올 수 있도록 했으며, 동시에 시니어 개발자들도 흥미롭게 읽어볼 수 있는 다양한 관점들을 제공합니다.

“Pro Tips for Mastery” 섹션에서는 코틀린 함수의 내부 구조, 알고리즘, 컴파일러 동작 방식, 그리고 실무에서 중요한 구현 세부 사항까지 깊이 다룹니다. 시니어 엔지니어에게는 전문성을 더욱 날카롭게 다듬을 수 있는 디테일을, 중급 개발자에게는 코틀린 이해도를 한 단계 끌어올릴 수 있는 전반적인 시야를 제공합니다.

성능이 중요한 코드를 최적화하든, 복잡한 코루틴 작업을 다루든, 멀티플랫폼 개발을 탐구하든, 이 책은 단순한 튜토리얼이나 API 소개 그 이상을 다룹니다. 언어적 설계나 기원을 이해하고, 내부 메커니즘을 파악하면서, 이 책을 완전히 읽은 독자들은 코틀린이라는 언어에 대해 더 나은 자신감을 갖고 단순한 개발자가 아니라 엔지니어라는 커리어 패스로 나아가는 의미있는 탐구서가 되었으면 좋겠습니다.

Practical Kotlin Deep Dive (한국어 번역판) 페이지에서 구매 전 책에 대한 자세한 설명을 읽어보실 수 있습니다.

엄재웅 (skydoves)

Jetpack Compose 메커니즘

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

우리는 매일 @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

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