화면 회전 데이터 유지 문제 → ViewModel 도입 + LiveData 생명주기 연동 + Room 타입 안전 쿼리 경험
Android 앱 팀 프로젝트에서 Jetpack 아키텍처 컴포넌트를 처음 적용하면서 그 이전과 어떻게 달라지는지를 직접 경험했습니다. ViewModel을 쓰기 전에는 화면 회전 때마다 데이터가 날아가는 문제가 있었는데, ViewModel이 액티비티 생명주기와 독립적으로 데이터를 유지해주는 구조를 이해하고 나서야 해결됐습니다.
LiveData는 화면이 보이는 동안만 업데이트를 받는 구조라, 관찰을 직접 해제하지 않아도 되는 방식이 메모리 관련 오류를 줄여줬습니다. Room은 SQLite를 직접 쓸 때보다 타입 안전성과 쿼리 검증이 컴파일 타임에 이루어지는 게 장점이라는 걸 배웠습니다. 세 컴포넌트가 MVVM 패턴과 자연스럽게 연결되는 걸 경험했는데, 아키텍처 컴포넌트를 쓰는 이유를 먼저 이해하고 쓰는 것이 패턴 암기보다 중요하다는 걸 배웠습니다.
Jetpack 컴포넌트는 각각 독립적으로 배울 수 있지만, 함께 쓸 때 시너지가 나는 자리라는 걸 그때 느꼈습니다.