TCP vs UDP 언제 사용하고, TCP가 HTTP와 어떻게 연관되는가

발행: (2026년 1월 31일 오후 04:35 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

TCP와 UDP는 무엇인가요? (높은 수준)

TCP (Transmission Control Protocol)

  • 신뢰성 있는, 연결 지향 네트워크 프로토콜.
  • 3단계 핸드셰이크를 사용해 연결을 설정한다.
  • 데이터가 손실이나 손상 없이 목적지에 도달함을 보장한다.
  • 패킷의 순서를 유지하고 필요 시 손실된 패킷을 재전송한다.
  • 이러한 검사 때문에 TCP는 UDP보다 느리지만 매우 신뢰성이 높다.

UDP (User Datagram Protocol)

  • 빠른, 비연결성 네트워크 프로토콜.
  • 연결을 설정하거나 도착 여부를 확인하지 않고 패킷을 전송한다.
  • 전달, 순서 보장 또는 손실된 데이터의 재전송을 보장하지 않는다.
  • 이 때문에 UDP는 훨씬 빠르지만 신뢰성은 낮다.

일반적인 사용 사례

  • TCP: 채팅 애플리케이션, 메신저, 이메일, 파일 다운로드, 웹 브라우징(HTTP/HTTPS).
  • UDP: 영상 통화, 실시간 스트리밍, 온라인 게임, 음성 통화.

TCP와 UDP의 주요 차이점

FeatureTCPUDP
Connection type연결 지향비연결성
Handshake3단계 핸드셰이크 필요핸드셰이크 없음
Reliability전달 보장(재전송)보장 없음, 재전송 없음
Packet ordering순서 유지순서가 뒤섞일 수 있음
Speed오버헤드 때문에 느림빠름
Error checking있음(체크섬, 재전송)최소(체크섬만)
Typical applications채팅, 이메일, 다운로드, 웹 브라우징스트리밍, 게임, VoIP

언제 TCP를 사용해야 할까

데이터 정확성이 속도보다 중요하고 데이터 손실이 허용되지 않을 때 TCP를 사용한다.

  • 데이터가 정확하고 순서대로 전달되어야 함.
  • 예시:
    • 중요한 이메일 전송.
    • 파일 다운로드.
    • 메시지 무결성이 중요한 채팅 또는 메신저.

데이터가 손상되지 않도록 하는 것이 보장된다면 약간의 지연은 감수할 수 있다.

언제 UDP를 사용해야 할까

속도가 중요하고 가끔 데이터 손실이 허용되는 경우, 특히 실시간 통신에 UDP를 사용한다.

  • 낮은 지연 시간이 완벽한 신뢰성보다 중요함.
  • 예시:
    • 영상 통화.
    • 실시간 스트리밍.
    • 온라인 게임.

몇 개의 패킷이 손실되더라도 재전송을 기다리기보다 계속 진행하는 것이 더 낫다.

HTTP란 무엇이며 어디에 위치하는가

HTTP (HyperText Transfer Protocol) 은 다음을 정의한다:

  • 어떤 데이터를 요청하는지.
  • 어떤 데이터를 반환하는지.

데이터를 안전하게 전달하는 방법은 정의하지 않는다; 그 책임은 전송 계층(TCP 또는 UDP)에 있다.

HTTP 요청/응답 예시

GET / HTTP/1.1
Host: www.facebook.com
HTTP/1.1 200 OK
Content-Type: text/html

...HTML content...

브라우저가 HTTP 요청을 보내고, 서버가 이를 처리한 뒤 요청된 리소스를 포함한 HTTP 응답을 반환한다.

HTTP와 TCP의 관계

  • HTTP는 TCP 위에 존재하며, 웹 데이터를 신뢰성 있게 전달하기 위해 TCP를 사용한다.
  • HTTP는 통신 규칙(요청/응답 형식)만 정의한다.
  • 신뢰성, 순서 보장, 재전송은 TCP가 담당한다.

따라서 전통적인 HTTP는 웹 페이지가 정확하고 완전한 데이터를 필요로 하기 때문에 TCP를 선택한다. UDP는 빠르지만 신뢰성이 부족해 대부분의 HTTP 트래픽에는 적합하지 않다.

요약

  • TCP: 신뢰성 있고 순서가 보장되며 느림 – 정확성이 중요한 데이터에 이상적.
  • UDP: 빠르고 순서가 보장되지 않으며 신뢰성이 낮음 – 속도가 중요한 실시간 미디어에 이상적.
  • HTTP: 신뢰성이 필요하므로 전송 프로토콜로 TCP를 사용한다.
Back to Blog

관련 글

더 보기 »

cURL 시작하기: 인터넷에 메시지 보내기

cURL이란 무엇인가? 아주 간단히 말하면 cURL은 Client URL의 약자입니다. 버튼이나 이미지, 색상이 없는 웹 브라우저라고 생각하면 됩니다. 이것은 명령줄 도구 tha...

cURL 시작하기

소개 이 기사에서는 다음을 다룹니다: - 서버가 무엇이며 왜 서버와 통신해야 하는지 - cURL이 무엇인지 아주 간단히 설명 - 프로그래머가 cURL을 사용하는 이유 - ...