안드로이드 ANR은 왜 생길까: 메인 스레드를 막는 진짜 원인 정리
안드로이드 ANR 원인을 메인 스레드 관점에서 정리합니다. blocking I/O, 락 대기, Binder 호출, 무거운 프레임 작업이 왜 같은 문제로 이어지는지 실무 기준으로 설명합니다.
안드로이드 ANR 원인을 메인 스레드 관점에서 정리합니다. blocking I/O, 락 대기, Binder 호출, 무거운 프레임 작업이 왜 같은 문제로 이어지는지 실무 기준으로 설명합니다.
Jetpack Compose 성능 문제는 recomposition이 있다는 사실보다, 어디가 얼마나 자주 다시 계산되고 무엇이 skip되지 못하는지에서 시작되는 경우가 많습니다. 이 글에서는 recomposition을 먼저 이해해야 하는 이유와 stability, key, 리스트 렌더링, 측정 순서를 실무 기준으로 정리합니다.
Room Flow를 쓰면 자동 갱신 쿼리 흐름이 편해집니다. 이 글에서는 Room DAO가 Flow를 반환할 때 invalidation 기반 재조회가 어떻게 동작하는지, 장점과 과한 관찰 비용, lifecycle과 threading 주의점, LiveData나 one-shot query가 더 단순한 경우까지 실무 기준으로 정리합니다.
RecyclerView DiffUtil이 왜 필요한지 실무 기준으로 정리합니다. notifyDataSetChanged와 비교해 깜빡임, 애니메이션, 부분 갱신, areItemsTheSame와 areContentsTheSame 판단 기준을 쉽게 설명합니다.
rememberSaveable과 SavedStateHandle 차이는 API 기능 비교만으로는 잘 안 잡힙니다. Compose에서 작은 UI 상태는 어디에 두고, 화면 전체 상태와 process death 복원 키는 어디에 둘지 실무 기준으로 정리합니다.
안드로이드 커스텀 View에서 onMeasure, onDraw, invalidate, requestLayout 경계가 왜 중요한지와 자주 느려지는 실수, allocation 함정, profiling 감각까지 실무 기준으로 정리합니다.