네트워크 끊김? 걱정 NO! Android Offline-First 앱 구축법
by DD
5개월 전
조회수 30
네트워크 불안정성 문제를 해결하기 위해 Offline-First 아키텍처를 제안함
Room DB를 UI의 Single Source of Truth로 활용하고, SWR과 Outbox 패턴을 적용함
WorkManager를 사용하여 백그라운드에서 데이터 동기화를 수행하며, 사용자 경험을 향상시킴
Room DB를 활용한 데이터 관리
Room DB는 UI에 최신 데이터를 제공하는 핵심 컴포넌트이다. 구체적으로 SWR(Stale-While-Revalidate) 전략을 통해 UI는 Room에서 즉시 데이터를 읽어온다. 따라서 네트워크 연결 상태와 무관하게 사용자에게 일관된 경험을 제공한다.
Outbox 패턴을 이용한 데이터 동기화
Outbox 패턴은 로컬에서 변경된 데이터를 WorkManager를 통해 서버와 동기화한다. 따라서 네트워크 연결이 불안정해도 데이터 손실을 방지한다. PENDING 상태의 데이터는 WorkManager가 백그라운드에서 처리하며, 충돌 해결을 위한 전략도 제시한다.
WorkManager를 활용한 백그라운드 작업
WorkManager는 데이터 동기화, 캐시 갱신 등 백그라운드 작업을 효율적으로 관리한다. 구체적으로 네트워크 연결이 있을 때 작업을 실행하고, 실패 시 재시도 로직을 적용한다. 따라서 배터리 소모를 최소화하면서 안정적인 데이터 동기화를 보장한다.