Daily iOS
데이터 저장

오프라인 채팅 DB 설계

중고거래 앱의 채팅이 지하철에서도 읽고 쓸 수 있어야 합니다. 오프라인에서 보낸 메시지가 나중에 서버에 도달하고, 순서·중복·읽음 상태가 어긋나지 않도록 로컬 DB 스키마와 동기화 흐름을 설계해 주세요.

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

로컬 DB 를 진실의 원천으로 두고 메시지에 localId·serverId·상태(pending/sent/failed)·서버 seq 를 둔다. 보내기는 로컬 insert 후 아웃박스 큐가 전송하고 서버는 localId 를 멱등키로 받으며, 정렬은 서버 seq, 재접속 시 lastSeq 이후만 델타로 받는다.

받은 질문 공유