Etc. Skills

SSE(Server Sent Events)

루딘 2023. 8. 26. 01:16

SSE(Server Sent Events)

정의

  • 서버의 데이터를 실시간으로 지속적으로 Streaming하는 기술

사용하는 이유

  • 서버의 변경된 데이터를 실시간으로 가져오기 위해 웹소켓을 사용할 수도 있지만 구현 비용이 많이 듬
  • SSE는 기존 HTTP API만으로도 구현이 간단하기 떄문에 백/프론트 양측 모두 쉽게 개발이 가능

특징

  • 브라우저는 서버가 생성한 Stream을 계속 받음
  • 연결 유지를 위해 HTTP를 사용 HTTP/2 를 통한 multiplexing 사용 가능
  • 연결이 끊어지면 EventSource가 Error Event를 발생시키고 자동으로 다시 연결을 시도함
  • 표준 기술로 IE를 제외한 브라우저 대부분을 지원 (IE도 Pollyfill로 사용 가능)
    • 폴리-필(Polyfill) 이란?
      • 브라우저에서 지원하지 않는 코드를 사용 가능한 코드 조각이나 플러그인으로 변환한 코드를 의미 즉, 최신 자바스크립트의 기능을 구식 자바스크립트 코드로 똑같이 구현한 코드를 의미함.

사용 예시

  • 실시간 단방향 통신이 필요한 경우
  • 실시간 데이터를 HTTP로 사용하려는 경우
  • ex)
    • 주가 피드 구독
    • 라이브 스포츠 점수받기
    • 다양한 뉴스 알림 기능