개념만 간단히 정리해보자
WebSocket
웹소켓은 클라이언트와 서버 간 양방향 통신이다. 한번 연결되면 계속 열린 상태로 유지된다
특징으로는 Full-Duplex, 낮은 지연시간으로 실시간 상호작용에 최적이다
통신의 흐름은 아래와 같다
Client -------- HTTP Handshake -------> Server
Client <-------- 101 Switching ------- Server
-> http 상태코드 101은 통신 프로토콜을 변경하겠다는 의미로 HTTP -> WebSocket 프로토콜로 전환을 알리는 응답
Client <==== Websocket Data ====> Server
Websocket의 장점으로는 실시간성이 높고 양방향 통신이 가능한 점이고
단점은 그 실시간 연결을 유지하는 데 리소스가 든다는 점이다.
SSE(Server-Sent Events)
SSE는 서버에서 클라이언트로 데이터를 일방적으로 보내는 단향향 통신이다
HTTP 프로토콜을 사용하는데, 일반 HTTP 통신과는 조금 다르다
SSE는 HTTP 연결을 한번 열고, 그 연결 위로 서버가 실시간으로 데이터를 계속 전송한다
주식 호가창을 예로들면, HTTP 연결은 최초 1회이고 서버가 가격 변동 발생 시마다 데이터를 push해준다 -> 실시간 수신 가능
SSE 통신의 흐름은 아래와 같다
Client -------- HTTP Request -------> Server
Client <==== Event Stream ==== Server
SSE의 장점은 웹소켓보다 구현이 간단하고, 기존 HTTP 인프라를 그대로 사용할 수 있다는 점이다
단점은 클라이언트에서 서버로 데이터를 보낼때엔 별도의 HTTP의 요청이 필요하다
'개발노트' 카테고리의 다른 글
| [공부]Java에서 Static은 왜 객체없이 실행될까 ? (0) | 2026.02.06 |
|---|---|
| [공부] FK(Foreign Key)란 (0) | 2026.01.15 |
| [공부] DDL & DML & DCL (0) | 2026.01.14 |
| [공부]데이터 정규화 (0) | 2026.01.08 |
| Yarn Berry (0) | 2025.05.30 |
댓글