모바일 앱은 종종 오프라인(연결 없음/불량)에서 동작하고 연결이 돌아오면 데이터를 동기화해야 합니다. 이는 로컬 데이터 저장, 연결 감지, 변경 큐잉, 동기화를 포함합니다 — 도전적이지만 견고한 모바일 앱의 중요한 측면입니다.
오프라인 지원이 중요한 이유
모바일 기기는 신뢰할 수 없는 연결을 가짐 (신호 없음, 불량 네트워크, 비행기 모드):
→ 오프라인에서 깨지거나 쓸모없는 앱은 사용자를 좌절시킴
→ 오프라인 우선 앱은 연결과 무관하게 동작 → 더 좋고 견고한 UX
→ 처리: 오프라인에서 캐시된 데이터 읽기, 오프라인에서 변경, 온라인 복귀 시 동기화.
오프라인 지원의 핵심 요소
✓ 로컬 저장소 — 데이터를 로컬에 캐시 (SQLite, WatermelonDB, AsyncStorage/MMKV)하여
앱이 오프라인에서 로컬 데이터로 동작
✓ 연결 감지 — @react-native-community/netinfo (온라인/오프라인 상태)
✓ 오프라인 쓰기 — 사용자가 오프라인에서 변경하게 함; 로컬에 큐잉
✓ 동기화 — 온라인 복귀 시, 큐잉된 변경을 서버로 전송; 서버 업데이트 가져오기
✓ 적절한 UI 표시 (오프라인 표시기, 대기 중/동기화 중 상태)
