클라이언트 기기의 로컬 데이터를 진실의 원천(Source of Truth)으로 삼고, 서버는 동기화와 백업을 맡는 설계 방식. 전통적인 "서버가 원천, 클라이언트는 요청해서 그린다" 구조를 뒤집어 로컬 DB → UI 렌더링 → 백그라운드 동기화 순서로 흐른다.
핵심
- 읽기·쓰기가 로컬 저장소에서 먼저 일어나 네트워크를 기다리지 않는다. UI가 즉시 반응한다
- 네트워크가 끊겨도 앱이 동작하고, 다시 연결되면 변경을 동기화한다
- 여러 기기·사용자가 같은 데이터를 고치므로 충돌 해결이 필수다. 주로 CRDT를 쓴다. 서버가 순서를 중재해야 하는 OT는 오프라인 시나리오에 약하다
기술 요소 (2026 기준)
- 로컬 저장소: IndexedDB, OPFS(Origin Private File System), WASM(WebAssembly)으로 돌리는 SQLite
- CRDT 라이브러리: Yjs, Automerge
- 동기화 엔진: Replicache, ElectricSQL, PowerSync 등
주의할 점
- 재고 차감처럼 자동 병합이 어려운 업무 규칙이 있다. 실시간 정합성이 절대적인 금융 거래 같은 곳에는 서버 권위 모델이 맞다
- 브라우저 저장 용량 한계, 첫 접속 때 대량 동기화 비용
- 민감한 데이터가 기기에 남는 보안 위험
노트 앱, 협업 편집기, 할 일 관리처럼 반응성과 오프라인이 중요한 앱에 잘 맞는다. 결국 각 사본이 언젠가 같은 상태로 수렴한다는 최종 일관성(Eventual Consistency) 모델이다. 서버 상태를 캐시하는 기존 방식(TanStack Query)과 비교해 보면 차이가 분명하다.