소켓이란
데이터를 주고받는 창구 역할이며, 떨어져 있는 두 호스트를 연결해주는 도구입니다.
socket.io란
Websocket을 기반으로 클라이언트와 서버를 실시간 양방향 통신을 가능하게 해주는 Node.js의 모듈입니다.
Websocket를 사용해 실시간 채팅을 구현할 수 있지만, socket.io를 사용하면 room이나 namespace 같은 편의 기능들을 사용할 수 있어 다양한 기능들을 보다 쉽게 구현할 수 있습니다.
이벤트 기반으로 동작하기 때문에 이벤트명을 맞추어 입장, 퇴장, 채팅 등을 정의하여 클라이언트와 서버가 통신이 가능합니다.
emit으로 메시지를 보내고, on으로 메시지를 받습니다.
Websocket이란
TCP 기반의 양방향 통신을 제공하는 프로토콜
HTTP통신은 단방향 방식으로 연결이 유지되지 않아 주기적으로 서버에 요청을 보내서 업데이트 유무를 확인해야 하기 때문에 불필요한 부하가 생깁니다.
웹소켓은 양방향 통신을 지원하여 연결이 유지된 상태에서 데이터를 주고받을 수 있습니다.
TCP란
handshake라는 과정으로 서로 통신할 수 있는 상태를 인증하고 통신을 하는 연결 지향적인 양방향 통신입니다.
각자 소켓을 생성하여 데이터를 주고받을 수 있습니다.
실시간 처리에서 많이 사용되며, 신뢰할 수 있는 프로토콜입니다.
UDP란
1:N 통신으로 데이터를 잘게 쪼개 패킷으로 전송하여 속도는 빠르지만, 신뢰할 수 없는 데이터 전송이 될 수 있습니다.
주로 라디오나 방송에서 사용됩니다.
'면접 요약 정리' 카테고리의 다른 글
기술 면접 준비 - 데이터베이스 (1) | 2022.11.16 |
---|---|
기술 면접 준비 - JavaScript (0) | 2022.11.13 |
쿠키, 세션, JWT 정리 (0) | 2022.10.27 |
HTTP와 HTTPS 정리 (1) | 2022.10.23 |
REST API 정리 (0) | 2022.10.20 |