데이터 저장
오프라인 채팅 DB 설계
중고거래 앱의 채팅이 지하철에서도 읽고 쓸 수 있어야 합니다. 오프라인에서 보낸 메시지가 나중에 서버에 도달하고, 순서·중복·읽음 상태가 어긋나지 않도록 로컬 DB 스키마와 동기화 흐름을 설계해 주세요.
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
중고거래 앱의 채팅이 지하철에서도 읽고 쓸 수 있어야 합니다. 오프라인에서 보낸 메시지가 나중에 서버에 도달하고, 순서·중복·읽음 상태가 어긋나지 않도록 로컬 DB 스키마와 동기화 흐름을 설계해 주세요.
로컬 DB 를 진실의 원천으로 두고 메시지에 localId·serverId·상태(pending/sent/failed)·서버 seq 를 둔다. 보내기는 로컬 insert 후 아웃박스 큐가 전송하고 서버는 localId 를 멱등키로 받으며, 정렬은 서버 seq, 재접속 시 lastSeq 이후만 델타로 받는다.
iOS 시스템 디자인주관식기초
간단한 노트 앱을 설계해 주세요. 아키텍처, 저장 방식, 데이터 흐름을 중심으로 설명해 주세요.
#offline-first #sync #swiftdata
iOS 시스템 디자인주관식기초
"오프라인 우선(offline-first)" 앱 아키텍처는 일반적인 '네트워크 먼저, 실패하면 캐시' 방식과 무엇이 다른가요?
#offline-first #outbox #sync
iOS 시스템 디자인주관식심화
네트워크가 자주 끊기는 iOS 채팅 앱에서 사용자가 보낸 메시지를 잃지 않아야 합니다. 로컬 outbox의 상태 전이를 어떻게 설계하겠습니까?
#chat #outbox #idempotency
데이터 저장주관식딥다이브
로컬 전용이던 SwiftData/Core Data 앱에 iCloud 기기 간 동기화를 붙이려 합니다. NSPersistentCloudKitContainer(또는…
#sync #swiftdata