전체 목록
네트워크Easy#157

TCP와 UDP의 차이점을 설명해주세요.

#네트워크#TCP#UDP#프로토콜

답변 포인트

신뢰성, 순서 보장, 지연 시간를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

TCP는 연결 지향이며 신뢰성과 순서를 보장하고, UDP는 보장 기능이 적어 지연이 낮습니다. 웹과 파일 전송은 TCP, 실시간 스트리밍이나 게임은 UDP가 어울릴 수 있습니다.

TCP와 UDP는 전송 계층 프로토콜이라는 공통점이 있지만, 신뢰성 보장 방식이 크게 다릅니다. TCP는 연결을 만들고 순서, 재전송, 흐름 제어를 제공하며, UDP는 연결 설정 없이 작은 데이터그램을 빠르게 보냅니다.

핵심 개념

  • TCP는 3-way handshake 후 바이트 스트림을 안정적으로 전달합니다.
  • UDP는 패킷 손실, 중복, 순서 뒤바뀜을 애플리케이션이 직접 감수하거나 보완해야 합니다.
  • 신뢰성이 중요한 웹/API/파일 전송은 TCP, 지연이 더 중요한 실시간 미디어/게임/DNS는 UDP가 자주 쓰입니다.

동작 방식 또는 판단 기준

이 주제를 이해할 때는 다음 순서로 보면 실무 적용이 쉬워집니다.

  1. 무엇을 해결하려는가: 성능, 표현력, 안정성, 접근성 중 어떤 문제를 줄이려는지 확인합니다.
  2. 전제 조건은 무엇인가: 정렬 여부, 브라우저 지원, 네트워크 특성, 동시성 조건처럼 성립해야 하는 조건을 점검합니다.
  3. 비용은 어디서 발생하는가: 시간 복잡도, 메모리, 캐시, 재시도, 렌더링 비용처럼 병목 지점을 나눠 봅니다.
  4. 실패 시 어떤 문제가 생기는가: 잘못 적용했을 때의 버그나 운영 리스크를 함께 고려합니다.

실제 예시

Text
TCP : HTTP/1.1, HTTP/2, SSH, SMTP
-  
-   
-  

UDP : DNS, VoIP,   , QUIC  HTTP/3
-    
-   
-     

실무에서 주의할 점

  • UDP가 항상 빠른 것은 아닙니다. 손실이 많아 애플리케이션 재전송이 늘면 오히려 복잡하고 느려집니다.
  • TCP는 head-of-line blocking 때문에 하나의 손실이 뒤 데이터 전달까지 막을 수 있습니다.
  • 방화벽/NAT 환경에서는 UDP 통신이 제한될 수 있어 연결 유지 전략이 필요합니다.

실무 적용 가이드

  • 데이터 손실을 절대 허용할 수 없으면 기본적으로 TCP를 선택합니다.
  • 실시간성이 중요하고 일부 손실을 허용할 수 있으면 UDP 또는 QUIC을 검토합니다.
  • 프로토콜 선택은 지연, 손실 허용도, 네트워크 환경, 구현 복잡도를 함께 봅니다.

함께 연결해서 보면 좋은 키워드

Network, TCP, UDP, Reliability, Latency

정리

TCP와 UDP는 전송 계층 프로토콜이라는 공통점이 있지만, 신뢰성 보장 방식이 크게 다릅니다입니다. 다만 개념 자체보다 중요한 것은 적용 조건과 한계를 함께 이해하는 것입니다. 작은 예제에서는 단순해 보여도 실제 서비스에서는 성능, 보안, 유지보수성, 접근성 요구사항이 함께 얽히므로, 문제의 성격을 먼저 파악한 뒤 적절한 도구로 선택하는 것이 좋습니다.

관련 질문

같은 카테고리/태그 기준