iOS 시스템 디자인
오프라인 채팅 Outbox
네트워크가 자주 끊기는 iOS 채팅 앱에서 사용자가 보낸 메시지를 잃지 않아야 합니다. 로컬 outbox의 상태 전이를 어떻게 설계하겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
네트워크가 자주 끊기는 iOS 채팅 앱에서 사용자가 보낸 메시지를 잃지 않아야 합니다. 로컬 outbox의 상태 전이를 어떻게 설계하겠습니까?
전송 버튼을 누르는 순간 메시지를 SwiftData outbox에 pending으로 먼저 저장하고, 전송 시작 시 sending, 서버 ack가 오면 sent, 재시도 횟수를 넘기면 failed로 옮기되 앱이 죽었을 때 남은 sending은 재시작 시 pending으로 되돌려 다시 보낸다.
데이터 저장주관식심화
중고거래 앱의 채팅이 지하철에서도 읽고 쓸 수 있어야 합니다. 오프라인에서 보낸 메시지가 나중에 서버에 도달하고, 순서·중복·읽음 상태가 어긋나지 않도록 로컬…
#chat #outbox #idempotency
iOS 시스템 디자인주관식딥다이브
WhatsApp 같은 1:1 채팅의 iOS 클라이언트를 설계해 주세요. 메시지 순서와 중복, 오프라인 전송 큐를 중심으로 다뤄 주세요.
#chat #idempotency
iOS 시스템 디자인주관식심화
백엔드는 이미 있다고 가정하고 항공권 예약 iOS 앱을 설계해 주세요. 검색 결과 → 항공편 선택 → 좌석·탑승객 입력 → 결제 → 확정까지 이어지는 흐름에서…
#offline #idempotency
iOS 시스템 디자인주관식심화
메신저 앱에서 메시지가 유실되지 않도록 클라이언트는 무엇을 보장해야 하나요? 전송·수신 양방향의 확인(ack)과 재전송, 순서, 중복 제거 관점에서 설명해…
#chat #outbox