iOS 시스템 디자인
IM 메시지 신뢰성과 로컬 스키마
메신저 앱에서 메시지가 유실되지 않도록 클라이언트는 무엇을 보장해야 하나요? 전송·수신 양방향의 확인(ack)과 재전송, 순서, 중복 제거 관점에서 설명해 주세요.
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
메신저 앱에서 메시지가 유실되지 않도록 클라이언트는 무엇을 보장해야 하나요? 전송·수신 양방향의 확인(ack)과 재전송, 순서, 중복 제거 관점에서 설명해 주세요.
보내는 쪽은 클라이언트 생성 id로 로컬에 먼저 저장(sending)하고 서버 ack(서버 seq 부여)를 받을 때까지 outbox에서 재전송하며, 서버는 client id로 중복을 제거한다. 받는 쪽은 대화별 서버 seq의 연속성을 검사해 빈틈이 있으면 pull로 채우고, 수신 ack를 보낸다.
iOS 시스템 디자인주관식심화
네트워크가 자주 끊기는 iOS 채팅 앱에서 사용자가 보낸 메시지를 잃지 않아야 합니다. 로컬 outbox의 상태 전이를 어떻게 설계하겠습니까?
#chat #outbox
데이터 저장주관식심화
중고거래 앱의 채팅이 지하철에서도 읽고 쓸 수 있어야 합니다. 오프라인에서 보낸 메시지가 나중에 서버에 도달하고, 순서·중복·읽음 상태가 어긋나지 않도록 로컬…
#chat #outbox
iOS 시스템 디자인주관식딥다이브
WhatsApp 같은 1:1 채팅의 iOS 클라이언트를 설계해 주세요. 메시지 순서와 중복, 오프라인 전송 큐를 중심으로 다뤄 주세요.
#chat
iOS 시스템 디자인주관식기초
"오프라인 우선(offline-first)" 앱 아키텍처는 일반적인 '네트워크 먼저, 실패하면 캐시' 방식과 무엇이 다른가요?
#outbox