SSE란?

SSE란? 서버에서 클라이언트로 실시간 데이터를 전송하는 기술(서버 → 클라이언트)

스크린샷 2025-02-17 오후 4.02.52.png

SSE 동작 순서?


  1. Client → Server : SSE 연결 요청
  2. Server → Client : 이벤트 발생(데이터 전송)
  3. Server → Client : 이벤트 발생(변경 데이터 전송)
  4. Server → Client : 이벤트 발생(변경 데이터 전송)
  5. SSE 연결 종료?
    1. Server → Client : SSE 연결 종료 ✅
    2. Client → Server : SSE 연결 종료 ✅

😁 가벼운 배경


<aside> 💡

HTTP는 이게 좀..


클라이언트와 서버가 통신할 때 주로 비연결성이 특징인 HTTP를 사용하여 연결을 한다.

⇒ 클라이언트에서 서버로 요청을 보낼 때 연결이 이루어진 적이 있어도 연결을 끊어 버림

그러면 계속해서 클라이언트와 서버가 연결 되어 통신할 수는 없을까?

⇒ 누군가 이런 생각을 하여 해결하기 위한 웹 기술들이 있음(Polling, WebSocket, SSE 등)

</aside>

<aside> ✅

SSE의 장점과 단점


장점

  1. HTTP를 통해 통신하고 연결함. → 기존의 방식인 HTTP로 통신이 가능!
  2. 구현이 어렵지 않고, 연결이 끊겼을 때 브라우저에서 자동으로 재연결을 시도함
  3. 이런 장점들을 가지고 실시간으로 서버에서 클라이언트로 데이터를 전송할 수 있음

단점

  1. HTTP프로토콜의 GET 메서드만 지원하고, 파라미터를 보내는데 한계가 있음
  2. 단방향 통신이고, 서버 부담이 커지고, 어쩌고 저쩌고… </aside>

🤔 어떻게 서버와 연결할까?