본문 바로가기
개발노트

[공부] WebSocket과 SSE

by 전지적진영시점 2026. 1. 16.

개념만 간단히 정리해보자

 

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

댓글