1. WebSocket이란?
: 웹에서 실시간 양방향 통신을 가능하게 하는 프로토콜
- 기존 HTTP는 요청-응답 모델
- 클라이언트가 요청해야 서버가 응답을 보낼 수 있음
- WebSocket은 한 번 연결이 이루어지면 클라이언트와 서버가 양방향으로 데이터를 주고받을 수 있는 실시간 통신을 가능하게 한다.
주요 특징
- Full-Duplex(전이중 통신)
- → 클라이언트와 서버가 동시에 데이터를 주고받을 수 있다.
- Persistent Connection(연결 유지)
- → HTTP 요청처럼 매번 연결을 맺었다 끊지 않고, 한 번 연결되면 지속적으로 유지
- Low Latency(낮은 지연시간)
- → HTTP 요청 대비 네트워크 오버헤드가 적고, 실시간 데이터 교환이 빠름
동작 방식
- 클라이언트가 서버로 WebSocket 연결 요청을 보냄 (ws:// or wss:// 사용)
- 서버가 연결을 수락하면, HTTP 기반 핸드셰이크 과정이 끝나고 WebSocket 연결이 확립
- 이후 클라이언트와 서버는 연결이 끊길 때까지 자유롭게 메시지를 주고받음
- 필요할 경우 둘 중 하나가 연결을 종료할 수 있음
어디에 사용?
- 채팅 서비스 (실시간 메시지 전송)
- 멀티플레이 게임
- 알림 시스템 (서버에서 클라이언트로 즉각적인 알림 전송)