Polling, SSE vs Websocket

박태정·2025년 3월 18일

웹소켓

목록 보기
4/8

polling

폴링 방식은 프로토콜이라기 보다는 코딩 방식이다.

HTTP 프로토콜을 사용하더라도 Websocket 처럼 화면에 실시간으로 보이게 할 수 있다.

  • js 코드로 몇초에 한번씩 서버에 새로운 메시지가 있으면 보내줘! 라고 HTTP 요청을 보낸다.
  • 그럼 주기적으로 메시지를 받을 수 잇다
  • 단점은 HTTP request, response를 계속 전달받기 때문에 서버에 부하가 올 수 있다. 그래서 비효율적이다
  • 경우에 따라서 사용할 수도 있지만 적어도 채팅에서 만큼은 비효율적이다.

SSE

이 기술도 실시간 통신 기술이다. SSE는 비교적 단순하게 구현할 수 있다.

  • HTTP 기반의 실시간 통신 기술
  • 웹소켓 처럼 클라이언트의 주소를 메모리에 저장하고 있다.
  • 서버에서 클라이언트로 보내주는 프로토콜이 HTTP 기반의 메시지를 보낸다. 그래서 다소 부하가 온다.

웹소켓에서는 클라이언트와 서버가 서로 websocket 프로토콜에 맞는 간결한 메시지를 주고 받는다.
반면 SSE는 서버에서 클라이언트로 메시지를 보낼 때만 SSE 실시간 통신을 할 수 있고 클라이언트에서 서버로 메시지를 보낼 때는 일반적인 HTTP 요청을 보낸다.

그래서 SSE 기술은 단방향 통신이라고 부른다.

  • 서버 -> 클라이언트

채팅이 아닌 실시간 서비스 (알림) 같은 기능에 넣을 수 있다. 이 것을 쓰는 이유는 웹소켓 보다 구현이 간단하기 때문이다.

0개의 댓글