블로그/Network
Network주니어2026-04-04

TCP와 UDP의 차이점은 무엇인가요?

한 줄 답변

TCP는 연결 지향형 프로토콜로 3-way handshake를 통해 연결을 수립하고, 데이터의 순서와 무결성을 보장합니다. UDP는 비연결형 프로토콜로 연결 없이 데이터를 전송하며, 신뢰성보다 속도를 우선합니다.

핵심 개념 정리

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 전송 계층(Transport Layer)의 대표적인 프로토콜입니다.

TCP는 연결을 먼저 수립(3-way handshake: SYN → SYN-ACK → ACK)한 뒤 데이터를 주고받습니다. 패킷 손실 시 재전송하고, 순서가 바뀌면 재조립합니다. 이 때문에 신뢰성은 높지만 오버헤드가 있습니다.

UDP는 연결 수립 없이 바로 데이터그램을 보냅니다. 패킷이 손실되어도 재전송하지 않고, 순서도 보장하지 않습니다. 대신 헤더가 작고(8바이트 vs TCP 20바이트) 지연이 적어, 실시간 스트리밍이나 게임처럼 속도가 중요한 곳에 사용합니다.

비교 정리

항목TCPUDP
연결 방식연결 지향 (3-way handshake)비연결 (Connectionless)
신뢰성보장 (재전송, 순서 보장)미보장
속도상대적 느림빠름
헤더 크기20바이트8바이트
흐름/혼잡 제어있음없음
사용 사례HTTP, 이메일, 파일 전송동영상 스트리밍, 게임, DNS

면접에서 이렇게 답하세요

단순 비교에서 그치지 말고 'QUIC 프로토콜'을 언급하면 차별화됩니다. HTTP/3는 UDP 위에 QUIC를 올려 TCP의 신뢰성과 UDP의 속도를 동시에 달성합니다. 또한 TCP의 Head-of-Line Blocking 문제와 UDP 기반 QUIC가 이를 어떻게 해결하는지 설명할 수 있으면 시니어급 답변입니다.

자주 묻는 추가 질문

Q. 3-way handshake는 왜 3번인가요? 2번이면 안 되나요?

2-way로는 양방향 통신 준비를 확인할 수 없습니다. SYN으로 클라이언트→서버 확인, SYN-ACK로 서버→클라이언트 확인, ACK로 클라이언트가 서버의 응답을 받았음을 최종 확인합니다.

Q. DNS는 왜 UDP를 사용하나요?

DNS 조회는 대부분 하나의 작은 패킷(512바이트 이하)으로 완료됩니다. 연결 수립 오버헤드가 없는 UDP가 훨씬 효율적입니다. 다만 Zone Transfer(영역 전송) 같은 대용량 전송에는 TCP를 사용합니다.

Q. TCP의 4-way handshake(연결 종료)는 왜 4번인가요?

한쪽이 FIN을 보내도 상대방은 아직 보낼 데이터가 남아 있을 수 있습니다. 그래서 FIN → ACK → (남은 데이터 전송) → FIN → ACK로 양쪽이 각자 종료를 알리고 확인해야 합니다.

커뮤니티 하이라이트

실무에서는 WebSocket(TCP 기반)과 WebRTC(UDP 기반)의 차이도 같이 물어봅니다. 채팅은 WebSocket, 화상통화는 WebRTC로 설명하면 명쾌합니다.

@network_senior27

게임 서버 면접에서는 UDP + 자체 신뢰성 계층 구현 경험을 물어보더라구요. 중요한 패킷만 ACK 확인하는 Reliable UDP 패턴이요.

@game_dev_j18

44명의 개발자가 이 질문에 참여했습니다

앱에서 직접 답변해보세요

매일 3개의 면접 질문에 답변하고,
다른 개발자들의 답변을 비교해보세요.

무료로 시작하기