웹 소켓이란?
- 클라이언트와 서버 간 양방향 실시간 통신을 가능하게 하는 기술
기존 HTTP 프로토콜과 웹 소켓의 차이점
- 기존 HTTP 프로토콜
- 클라이언트가 서버로부터 데이터를 받을 때만 요청한다.
- 웹 소켓
- 서버와 클라이언트 모두 데이터 변경 시 실시간으로 서로에게 알릴 수 있다.
웹 소켓의 특징
- 양방향 통신
- 클라이언트와 서버 모두 데이터를 주고받을 수 있다.
- 실시간 통신
- 데이터 변경 시 실시간으로 서로에게 알릴 수 있다.
- 낮은 오버헤드
- HTTP 프로토콜에 비해 오버헤드가 낮다.
- 다양한 프로그래밍 언어 지원
- JavaScript, Python, Java 등 다양한 프로그래밍 언어에서 사용할 수 있다.
웹 소켓 종류
WebSocket
- 웹 표준으로 정의된 웹 소켓 프로토콜
- 대부분의 웹 브라우저와 서버에서 지원한다.
- 기본적인 양방향 통신만 제공한다.
- 비교적 구현이 간단하다.
socket.io
- WebSocket을 기반으로 개발된 라이브러리
- WebSocket보다 더 많은 기능을 제공한다.
- 모든 웹 브라우저와 서버에서 지원하지는 않는다.
- 다양한 추가 기능을 제공한다.
- 네임스페이스, 채팅, 파일 전송 등
- 비교적 구현이 복잡하다.
웹 소켓 활용 예시
- 채팅
- 실시간 채팅 기능을 구현할 수 있다.
- 게임
- 온라인 게임에서 실시간으로 데이터를 동기화할 수 있다.
- 주식 시세
- 주식 시세 변동을 실시간으로 알릴 수 있다.
- 협업 도구
- 문서 공동 편집, 화상 회의 등 협업 도구에서 실시간 통신을 구현할 수 있다.