저희는 이번 뉴스레터를 통하여 5장 번역 완료 소식과 몇 가지 Jetpack Compose 및 Kotlin에 대한 최신 소식을 전하고자 합니다.
제 5장 상태 스냅샷 시스템 (State Snapshot System) 번역 완료 🚀
여러분의 지속적인 관심과 소중한 피드백으로 5장 <상태 스냅샷 시스템>의 번역 작업이 마무리되었다는 소식을 전해드립니다.🎉🎉
5장은 Jetpack Compose에서 recomposition의 근본이 되는 개념인 상태 스냅샷 시스템 (State Snapshot System)에 대한 전반적인 동작 원리를 살펴봅니다.
상태 스냅샷 시스템의 일부인 스냅샷 상태 (mutableStateOf, mutableStateListOf, derivedStateOf, collectAsState) 등이 recomposition을 수행하고 변경 사항을 알리기 위해 어떤 메커니즘으로 동작하는지 살펴봅니다.
Recomposition은 기본적으로 동시에 실행될 수 있습니다. Jetpack Compose가 상태 스냅샷 시스템을 구현하기 위해 다중 버전 동시성 제어 (MCC or MVCC)를 왜 활용하는지, 어떻게 작동하는지 살펴봅니다.
스냅샷은 언제든지 해당 시점의 프로그램 상태로부터 격리된 자체적인 복사본을 찍어내는 역할을 합니다. Compose Runtime에서 스냅샷을 어떻게 활용하는지, 수명 주기를 어떻게 관리하는지 등에 대하여 살펴봅니다.
상태를 쓰고 recomposition을 트리거하기 위한 가변적인 스냅샷 (MutableSnapshots)의 전반적인 작동원리를 코드 예시를 통해 살펴봅니다. 특히, 오래된 상태 기록을 어떻게 제거하고 재사용하는지, 변경 사항은 어떻게 전파하는지, 스냅샷 쓰기 작업 중에 발생하는 충돌은 어떻게 병합하는지 등의 동작들에 대해 자세히 살펴봅니다.
⚠️ 5장 상태 스냅샷 시스템 또한 실제 구현 코드의 축약본을 많이 담고 있습니다. 따라서, 이번 챕터를 읽으실 때도 관련 코드를 찾아가며(cs.android.com) 읽으시는 것이 이해에 큰 도움이 됩니다.
Kotlin 2.0.0-RC1 출시
드디어 Kotlin 2.0.0-RC1 버전이 출시되었습니다. 이번 2.0.0-RC1은 Android Studio에서의 호환성을 제공하며, 여전히 Jetbrains 팀에서 작업 중이지만 K2 컴파일러 또한 맛보기로 활성화해 보실 수 있습니다. Kotlin 2.0.0 stable에서 가장 주목받고 있는 기능 중 하나인 Explicit Backing Fields 또한 활성화하여 미리 체험해 보실 수 있습니다. 아직 Compose Compiler의 마지막 버전인 1.5.11에서는 Kotlin 2.0.0-RC1를 지원하지 않는 관계로 Compose에서는 사용에 다소 제약이 있습니다. 자세한 사항은 릴리스 노트를 확인하시길 바랍니다.
어느 덧, 책의 약 85%가 번역 완료되었습니다. 향그러운 봄날에 시원한 커피 한 잔의 여유로움으로 책을 읽어보시길 바라며, Jetpack Compose Internals 한국어 번역 프로젝트를 응원해 주신 모든 분들께 항상 감사의 말씀을 전해드립니다. 남은 부분도 좋은 번역을 제공해 드리도록 최선을 다하겠습니다.