Server

실시간 통신 Polling, Long Polling, SSE, WebSocket

helperwoo 2025. 4. 15. 13:37
반응형

 

Polling ?

클라이언트가 서버에 일정 간격을 두고 주기적으로 HTTP 요청을 보내 응답받는 형태의 단방향 실시간 통신이다. 쉽고 간단하게 구현할 수 있지만, 반복적인 요청이 발생하여 불필요한 트래픽이 발생한다.

 

Long Polling ?

Polling과 동일하게 동작하지만, 클라이언트가 주기적으로 요청하는 것이 아니라 요청 후 응답을 받을 때 까지 기다린다. 마찬가지로 구현은 쉽지만 연결이 많아질 경우 Polling 보다 서버 리소스(메모리) 사용량이 많아질 수 있다.

 

WebSocket ?

초기 HTTP로 핸드셰이크를 통해 연결 후 WebSocket 프로토콜로 업그레이드하여 연결되는 TCP 기반 양방향 통신이다. 클라이언트와 서버는 지속적인 양방향 통신이 가능하여 Polling(+Long Polling)과 달리 불필요한 트래픽 낭비 없이 실시간성이 매우 뛰어나지만, 웹소켓 서버가 별도로 필요하며 비교적 복잡한 설정 및 관리가 필요하다.

 

Server-Sent Events (SSE) ?

서버가 HTTP 기반의 단방향 스트리밍을 통해 클라이언트에 이벤트 푸시를 전송함. 클라이언트는 브라우저의 EventSource API를 사용하여 연결하고 메시지를 처리한다. 서버에서 클라이언트로 보내는 형태의 단방향 통신이지만, 구현이 쉽고 실시간성이 뛰어나다.

 

반응형