파일, HTTP API, 결제, 로그인처럼 데이터 손실과 순서 뒤바뀜을 애플리케이션이 감당하기 어려울 때 적합합니다.
TCP와 UDP 선택: 신뢰성 요구와 지연 예산의 균형
TCP가 항상 안전하고 UDP가 항상 빠른 것은 아닙니다. 데이터 의미, 손실 허용도, 순서 요구, 재전송 비용, 애플리케이션 복구 방식을 함께 판단해야 합니다.
게임 위치, 음성, 영상, DNS처럼 오래된 데이터보다 최신 데이터와 낮은 지연이 중요할 때 적합합니다.
UDP 위에 sequence, ACK, 재전송, timeout을 일부 얹으면 필요한 메시지만 신뢰성을 줄 수 있습니다.
실시간 서비스는 상태 업데이트는 UDP성 처리, 로그인과 구매는 TCP성 처리처럼 의미별로 나누기도 합니다.
Ordering
순서가 틀어지면 의미가 깨지는 데이터인지 먼저 묻습니다.
Retry budget
재전송이 지연 예산 안에 들어오는지, 아니면 버리는 편이 나은지 결정합니다.
Idempotency
재시도 가능한 메시지는 중복 처리 방지 키와 함께 설계합니다.