Develop/기술 면접

[기술 면접] 2026-04-28 — TCP vs UDP

째용이 2026. 4. 28. 09:01

오늘의 면접 주제

 

웹 서비스, React 기반 프론트엔드, API 서버가 모두 네트워크 위에서 동작하므로 TCP와 UDP는 지금도 가장 자주 묻는 기초입니다.



핵심 한 줄 요약


TCP는 정확성과 순서를 보장하는 연결 지향 프로토콜이고, UDP는 빠르지만 보장이 적은 비연결 지향 프로토콜입니다.

면접 질문 & 모범 답변



Q1. TCP와 UDP의 가장 큰 차이는 무엇인가요?


기본 답변: TCP는 데이터를 안전하고 순서대로 보내는 데 초점을 둡니다. UDP는 속도와 단순함에 초점을 둡니다. 그래서 TCP는 연결을 맺고 통신하고, UDP는 연결 없이 바로 보냅니다.
심화 포인트: 많은 지원자가 "TCP는 느리고 UDP는 빠르다"로만 끝냅니다. 핵심은 속도 자체보다 보장 수준의 차이입니다.

Q2. TCP의 3-way handshake를 설명해 주세요.


기본 답변: TCP는 통신 전에 SYN, SYN-ACK, ACK를 주고받으며 연결을 확인합니다. 이 과정으로 서로 송수신이 가능한 상태인지 확인합니다. 즉, 전화를 걸기 전에 상대가 받았는지 확인하는 절차와 비슷합니다.
심화 포인트: 단순히 "연결을 만든다"가 아닙니다. 양쪽의 초기 sequence number를 동기화하는 의미도 있습니다.

Q3. 왜 TCP는 신뢰성이 높다고 하나요?


기본 답변: TCP는 ACK를 통해 데이터가 잘 도착했는지 확인합니다. 중간에 유실되면 재전송합니다. 또 순서가 뒤섞여 도착해도 원래 순서대로 정렬합니다.
심화 포인트: 신뢰성은 "절대 안 잃는다"는 뜻이 아닙니다. 유실 가능성을 감지하고 복구하는 메커니즘이 있다는 뜻입니다.

Q4. 실무에서 TCP와 UDP는 각각 어디에 쓰이나요?


기본 답변: TCP는 HTTP, HTTPS, DB 연결처럼 정확성이 중요한 곳에 많이 씁니다. UDP는 실시간 게임, 음성 통화, 스트리밍, DNS처럼 약간의 손실보다 지연이 더 치명적인 곳에 씁니다. 예를 들어 영상 통화에서 한 프레임이 늦게 오는 것보다 그냥 놓치는 편이 더 낫습니다.
심화 포인트: 최근에는 HTTP/3가 UDP 기반 QUIC 위에서 동작합니다. UDP 자체가 신뢰성을 주는 것은 아니고, 상위 프로토콜이 필요한 기능을 직접 구현한 사례입니다.

Q5. UDP가 무조건 더 좋은 선택은 아닌 이유는 무엇인가요?


기본 답변: UDP는 빠르지만 데이터 유실, 중복, 순서 뒤바뀜을 직접 처리해야 할 수 있습니다. 그래서 구현이 단순해 보이지만 실제 서비스는 오히려 복잡해질 수 있습니다. 중요 데이터 전송에는 부담이 큽니다.
심화 포인트: 면접에서는 "빠르니까 UDP"라고 답하면 위험합니다. 비즈니스 요구사항이 신뢰성인지 지연인지 먼저 봐야 합니다.

Q6. TCP에서 속도가 느려질 수 있는 이유는 무엇인가요?


기본 답변: 연결 설정 과정이 있고, ACK 확인과 재전송도 필요합니다. 흐름 제어와 혼잡 제어도 수행합니다. 그래서 네트워크가 불안정할수록 오버헤드가 커질 수 있습니다.
심화 포인트: 느림의 원인은 단순히 프로토콜 이름이 아니라, 안전하게 보내기 위한 절차 때문입니다.

Q7. TCP와 UDP를 소켓 관점에서 설명해 주세요.


기본 답변: 둘 다 socket API로 다루지만 동작 방식이 다릅니다. TCP socket은 연결 상태를 유지하고, UDP socket은 패킷 단위로 독립적으로 보냅니다. 개발자는 같은 네트워크 코드라도 연결 관리 책임이 어디에 있는지 알아야 합니다.
심화 포인트: UDP는 메시지 경계가 보이지만, TCP는 바이트 스트림이라 애플리케이션이 직접 메시지 구분을 설계해야 합니다.

꼬리 질문 대비

 

    • 4-way handshake는 왜 필요한가요?

 

    • TCP의 흐름 제어와 혼잡 제어는 어떻게 다른가요?

 

    • DNS는 왜 주로 UDP를 쓰나요?

 

    • TCP에서 메시지 경계가 없다는 말은 무슨 뜻인가요?

 

    • UDP 위에 신뢰성을 직접 구현한다면 무엇이 필요할까요?



헷갈리기 쉬운 포인트


TCP는 데이터를 "패킷 그대로" 보존하는 것이 아닙니다. 애플리케이션 입장에서는 순서 있는 바이트 스트림입니다.
UDP는 연결이 없다고 해서 상대 주소가 필요 없는 것은 아닙니다. 연결 상태만 없을 뿐, 보낼 대상 정보는 필요합니다.
TCP가 항상 더 느린 것은 아닙니다. 작은 요청-응답이 반복되는 일반 웹 서비스에서는 TCP의 신뢰성이 전체 효율을 더 높일 수 있습니다.

면접관 시각


이 주제에서는 암기보다 기준을 봅니다. 지원자가 단순히 차이만 외웠는지, 아니면 서비스 요구사항에 따라 왜 TCP나 UDP를 선택하는지 설명할 수 있는지를 봅니다. 3-way handshake, 신뢰성, 실제 사례를 하나의 흐름으로 연결해서 말하면 기초가 탄탄하다고 판단합니다.