[iOS] Socket 통신

Erick·2023년 2월 14일
0

iOS

목록 보기
3/4
post-thumbnail

[iOS] Socket 통신


Socket이란?

소켓 통신에 대해 설명하기 이전에 소켓(Socket)이란 무엇인지 먼저 간단하기 설명하고 넘어가겠습니다.

Socket 이란 사용자가 네트워크에서 데이터를 보내거나 받아올 수 있도록 연결해 주는 출입구라고 할 수 있습니다.

Socket통신이란?

위에서 설명한 Socket을 이용한 통신을 소켓 통신이라고 합니다.
소켓 통신에 대해 간단하게 설명하면

  • 네트워크에서 서버, 클라이언트 소켓을 생성하여 데이터를 주고받는 통신
  • 실시간, 연결지향적 통신
  • 서버에서 설정한 포트 번호로 클라이언트가 접속하여 연결

HTTP 통신과 차이

우리가 Socket 통신을 배우기 이전에 자주 사용하던 HTTP 통신과는 어떤 차이가 있는지 알아보겠습니다.

  • HTTP 통신은 서버가 클라이언트의 요청을 받고 데이터를 제공하는 단방향 통신이지만 Socket 통신은 실시간 양방향 통신입니다.
  • HTTP 통신은 데이터를 받은 이후 연결이 종료되지만 Socket 통신은 연결을 유지하는 방식입니다.

무엇이 더 좋다의 차이는 아니지만 HTTP 통신은 필요에 따라 특정 데이터를 서버에 요청하는 경우에 주로 사용하고, Socket 통신은 데이터를 계속해서 주고받아야 하는 상황에 사용합니다.

Socket의 종류

Socket통신에는 두 가지 종류가 있습니다.

TCP (스트림)

  • 연결형 프로토콜로 연결 후 통신이 가능
  • 오류 수정, 흐름 제어 보장
  • UDP와 비교하여 신뢰도 및 안정성이 높음
  • 데이터 처리 속도가 느림

UDP (데이터그램)

  • 비연결형 프로토콜로 연결 없이 통신이 가능
  • 데이터 크기에 제한이 있음
  • TCP와 비교하여 신뢰도 및 안정성이 낮음
  • 데이터 처리 속도가 빠름

마치며

새로운 개인 프로젝트로 채팅 앱을 만들어보고 싶어 사전에 Socket 통신에 대한 이해가 있으면 좋을 것 같다는 생각으로 간단히 Socket 통신에 대해 알아보았습니다.
이번 프로젝트는 새로운 디자인패턴과 Socket 통신을 사용해 보는 것을 주목적으로 진행될 것 같네요.
다음 포스팅을 금방 찾아오겠습니다.

profile
iOS Developer

0개의 댓글