iOS 캠프 TIL - 2021.04.19 월

Updated:

소켓 프로그래밍

  • 학습활동 팀: 오동나무, 꼬말, 찌로, 제이콥
  • HTTP 통신과 소켓 통신의 차이점은 무엇이고 어떤 장단점이 있나요?
    • HTTP 통신
      • 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신
      • 서버로부터 응답을 받은 후에는 연결이 바로 종료됨
      • 실시간 연결이 아닌, 필요한 경우에만 요청을 보내는 상황에 유용
      • 요청을 보내고 서버의 응답을 기다리는 방식의 애플리케이션 개발에 주로 사용
    • 소켓 통신
      • 서버와 클라이언트가 특정 포트를 통해 계속 연결을 유지하는 양방향 통신
      • 서버, 클라이언트가 실시간으로 데이터를 주고받는 상황이 필요한 경우 사용
      • 실시간 동영상 스트리밍, 온라인 게임에 주로 사용
      • 만약 동영상 스트리밍을 HTTP통신 방식으로 구현한다면 계속 request를 보내야하며 과부하 걸릴 것
  • 소켓통신 방법에는 크게 두 가지 방법이 있습니다.
    • 두 가지 하위 분류의 이름은 무엇인가요?
      • 스트림 소켓, 데이터그램 소켓
    • 두 가지 방법이 사용하는 프로토콜은 어떤 차이점을 갖고 있나요?
      • 스트림 소켓
        • TCP (Transfer Control Protocol) 사용
        • 연결지향형 소켓, 데이터가 손실되지 않지만 UDP에 비해 느림
        • 상대가 잘 받았는지 확인하므로 느림
      • 데이터그램 소켓
        • UDP (User Datagram Protocol) 사용
        • 비연결지향형 소켓, 데이터가 손실되도 오류 발생하지 않음
        • 잘 받았는지 확인없이 데이터를 던지므로 빠름

Leave a comment