TIL

TIL_20230614

번잔중 2023. 6. 15. 00:25

오늘 할 일

  • 프로그래머스 문제 풀기
  • 테이블 명세서 관련 회의 → 미뤄짐(6/15)
  • 기술 면접 질문 공부하기

오늘 배운 것

프로그래머스 문제 풀기

기술 면접 질문 공부하기

  • TCP와 UDP의 차이점?
    • TCP: 연결 지향형 프로토콜이다. *가상 회선을 만들고 패킷 전송을 제어(흐름 제어, 혼잡 제어, 오류 제어)하여 신뢰성을 보증하는 프로토콜이다. 그렇기 때문에 파일 전송, 이메일 전송과 같은 신뢰성이 중요한 서비스에 사용된다.
    • *여기서 '가상 회선을 만든다'는 의미는 발신자와 수신자를 연결해서 패킷을 전송할 수 있는 논리적인 경로를 배정한다는 의미이다. 
    • UDP: 데이터를 *데이터그램 단위로 전송하는 프로토콜이다. 패킷 간의 순서가 존재하지 않는 독립적인 패킷을 사용한다. 그래서 패킷의 목적지만 정해져 있다면 중간 경로는 신경쓰지 않는다. 신뢰성보다는 빠른 속도에 초점을 맞췄기 때문에 TCP보다 속도가 빠르다. 스트리밍, RTP 같은 연속성이 더 중요한 서비스에서 사용한다. 
    • *데이터그램은 각각 독립적으로 취급되는 패킷을 의미한다.
    • *하지만 UDP도 신뢰성을 UDP자체에서 보장하지 않는 것 뿐이지, 개발자가 직접 신뢰성을 보장하도록 할 수 있다. 그래서 HTTP/3은 QUIC이라는 프로토콜을 기반으로 하는데, QUIC은 UDP를 기반으로 한다. 즉, UDP 자체는 신뢰성을 보장하지 않지만, 추가적인 정의를 통해 신뢰성을 보장받을 수 있다.
    • 둘의 차이점을 표로 나타내보았다.
  TCP UDP
연결 방식 연결형 서비스 비연결형 서비스
패킷 교환 가상 회선 방식 데이터그램
전송 순서 보장 보장한다. 보장하지 않는다.
신뢰성 높다. 낮다.
전송 속도 느리다. 빠르다.

느낀점

  • 두 문제로 줄이니까 조금 숨통이 트이는 것 같습니다.
  • TCP와 UDP에 대해서 오~~~랜만에 학습해봤는데요. 왜 학교 다닐 때보다 더 재밌어진 것인지 의문입니다!

내일 할 일

  • 프로그래머스 문제 풀기
  • 테이블 명세서 관련 회의