질문 140 · 실전 면접 답변
TCP와 UDP는 어떤 차이가 있으며 서비스 요구사항에 따라 어떻게 선택하나요?
이렇게 답해 보세요 (핵심 답변)
TCP는 연결 기반으로 순서가 보장되는 신뢰성 있는 바이트 스트림을 제공하고, UDP는 연결 수립 없이 메시지 경계가 유지되는 데이터그램을 가볍게 전달합니다. UDP 자체는 순서 보장이나 재전송을 제공하지 않지만, 앞선 패킷 손실 때문에 뒤 패킷 전달까지 막히는 TCP의 Head-of-Line Blocking이 없습니다. 따라서 실시간 미디어처럼 오래된 데이터 재전송보다 지연 최소화가 중요할 때 손실·혼잡 대응과 함께 UDP를 쓰거나, UDP 위에 신뢰성과 보안을 구현한 QUIC(HTTP/3)을 선택합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- UDP 위에 애플리케이션이 직접 재전송, 순서 정렬, 암호화를 모두 얹으면 그만큼 구현 복잡도와 오버헤드도 함께 늘어납니다.
- TCP는 패킷 하나만 유실되어도 재전송이 완료될 때까지 뒤이어 도착한 정상 바이트들을 애플리케이션에 넘기지 못하고 대기시킬 수 있습니다.
면접에서 자주 하는 실수
UDP는 무조건 속도가 빠르고 보안이나 신뢰성 기능을 전혀 구현할 수 없는 프로토콜이라고 단정하면 안 됩니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 140번을 바탕으로 질문과 답변을 새로 정리했습니다.