← 질문 목록
#102깊이 0
오프라인 수정이 서버 값과 충돌하면 누가 이기는가?
누가 이기는지는 동기화 정책이 정한다. 중요 데이터라면 마지막 쓰기만 택하지 말고 버전으로 충돌을 감지해 병합하거나 사용자에게 선택을 맡긴다.
| 기준 | 마지막 쓰기 승리 | 버전 기반 병합 |
|---|---|---|
| 구현 | 단순하다 | 복잡하다 |
| 데이터 손실 | 숨기기 쉽다 | 충돌을 드러낸다 |
로컬 데이터베이스를 화면의 기준으로 두면 오프라인에서도 일관된 읽기가 가능하다. 변경은 outbox에 기록해 연결이 돌아왔을 때 순서대로 보낸다.
재전송에는 멱등 키와 서버 버전을 함께 쓴다. 성공 응답을 잃어도 중복 반영을 막고 오래된 버전의 덮어쓰기를 거절할 수 있다.
장바구니는 항목 병합이 가능하지만 결제 상태는 서버 권위가 필요하다. 충돌 정책은 데이터 의미와 되돌릴 수 있는지를 기준으로 정한다.
추천 꼬리질문
관련 질문
- Git 협업 시 충돌 해결을 위해 무엇을 우선하는가?네트워크같은 것을 동시에 고친 두 사본을 어떻게 합칠 것인가라는 같은 문제다.
- 낙관적 락 충돌은 어떻게 재시도하는가?데이터베이스동시 수정 충돌의 감지와 해소(버전 비교·재시도·병합)라는 같은 문제 기반을 다룬다
- 서버마다 시계가 다르면 무엇이 깨지는가?아키텍처 · 분산시스템충돌 해소가 타임스탬프에 기대는 순간 시계 어긋남이 승자를 바꾼다 — 둘 다 물리 시계의 한계를 다룬다.
- 오프라인 우선 앱에서 로컬과 서버의 데이터 일관성은 어떻게 유지하는가?모바일
- 데이터 동기화에서 마지막 쓰기 승리 방식의 문제점은 무엇인가?모바일