SSE란?

SSE(Server-Sent Events)

  • HTML5 표준안 권고사항!! (IE 미지원)

그래서 뭔데?

  • 서버가 필요할 때마다 클라이언트에게 데이터를 줄 수 있게 해주는 서버 푸쉬 기술
  • HTML5가 등장하기 전까지는 HTML에 서버 푸시를 위한 표준화된 기술이 없었기 때문에 웹에서 실시간 정보를 받아와야 할 때 외부플러그인을 이용하거나 서버푸시를 흉내 낸 Ajax Polling 기법등을 사용했다고 한다.

그럼 뭐가 더 좋을까?

먼저, 장점을 말하기 전에 기존 기술을 살펴보자.

  • Poling

    • 대다수의 AJAX 응용 프로그램에서 사용되는 전통적인 기술입니다.
    • 기본 개념은 응용 프로그램이 서버에서 데이터를 반복적으로 요청하는 것.
    • 장점
      • 일정하게 갱신이 되는 서버 데이터의 경우 매우 유용하며 기존 단순한 모델을 유지 할 수 있습니다.
    • 단점
      • 클라이언트는 요청을 하고 서버가 데이터로 응답 할 때까지 기다립니다. 갱신되지 않은 의미없는 응답이 리턴될 수 도 있습니다. 그렇기 때문에 HTTP 오버헤드가 커지게 된다.
  • Long Polling

    • 폴링의 변형, 폴링과 비슷하지만 서버에 사용 가능한 데이터가 없으면 서버는 새 데이터를 사용할 수 있을 때까지 요청을 보류한다. 그래서 Hang GET이라고 불리기도 한다.
    • 폴링의 단점을 해결한 것처럼 보이지만 사용 가능한 데이터가 지속적으로 응답해야하기 때문에 다른 추가적인 방법이 필요하다.

SSE

  • 처음부터 효율적으로 설계되어서 SSE를 사용하여 통신 할 때 서버는 초기 요청을 하지 않고도 필요할 때마다 데이터를 앱으로 푸시 할 수 있다. 즉, 서버와 클라이언트 사이에 단일 단방향 채널을 열게되는 것. Long Polling과 가장 큰 차이점은 브라우저에서 직접 처리된다는 점이다.
  • HTTP를 사용하기 때문에 작동하기위해 별도의 프로토콜이나 서버구현이 필요없다.
0%