네트워크 기초를 보다 보니 전송 계층에 TCP랑 UDP 두 개가 있던데, 둘 다 데이터를 보내는 건 똑같아 보이는데 왜 나뉘어 있는지 궁금합니다.


TCP는 연결을 맺고(3-way handshake) 순서 보장에 유실되면 재전송까지 해서 신뢰성이 높다고 하고, UDP는 그런 거 없이 그냥 보내버려서 빠르지만 도착 보장이 안 된다고 이해했어요. 여기까지는 대충 알겠습니다.


그런데 실제로 헷갈리는 부분이 있어요. 이렇게 안 미덥고 유실될 수도 있는 UDP를 왜 굳이 쓰는 건가요? 찾아보니 DNS 조회, 온라인 게임, 실시간 영상 스트리밍 같은 데서 UDP를 많이 쓴다던데, 데이터가 중간에 빠지면 문제 아닌가 싶거든요.


반대로 웹이나 파일 전송은 TCP를 쓰는 것도 이유가 있을 텐데요. "이런 상황이면 TCP, 저런 상황이면 UDP" 하는 판단 기준을 실제 사례랑 엮어서 설명해주시면 정말 도움이 될 것 같습니다.