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

SSE 동작 순서?
- Client → Server : SSE 연결 요청
- Server → Client : 이벤트 발생(데이터 전송)
- Server → Client : 이벤트 발생(변경 데이터 전송)
- Server → Client : 이벤트 발생(변경 데이터 전송)
- SSE 연결 종료?
- Server → Client : SSE 연결 종료 ✅
- Client → Server : SSE 연결 종료 ✅
😁 가벼운 배경
<aside>
💡
HTTP는 이게 좀..
클라이언트와 서버가 통신할 때 주로 비연결성이 특징인 HTTP를 사용하여 연결을 한다.
⇒ 클라이언트에서 서버로 요청을 보낼 때 연결이 이루어진 적이 있어도 연결을 끊어 버림
그러면 계속해서 클라이언트와 서버가 연결 되어 통신할 수는 없을까?
⇒ 누군가 이런 생각을 하여 해결하기 위한 웹 기술들이 있음(Polling, WebSocket, SSE 등)
</aside>
<aside>
✅
SSE의 장점과 단점
장점
- HTTP를 통해 통신하고 연결함. → 기존의 방식인 HTTP로 통신이 가능!
- 구현이 어렵지 않고, 연결이 끊겼을 때 브라우저에서 자동으로 재연결을 시도함
- 이런 장점들을 가지고 실시간으로 서버에서 클라이언트로 데이터를 전송할 수 있음
단점
- HTTP프로토콜의 GET 메서드만 지원하고, 파라미터를 보내는데 한계가 있음
- 단방향 통신이고, 서버 부담이 커지고, 어쩌고 저쩌고…
</aside>
- 내가 적용하려는 프로젝트의 용도에는 너무 적합하고 단점이 거의 작용하지 않아서 최고의 선택지라고 생각함
- Mozu 프로젝트
- 클라이언트가 서버에게 실시간으로 데이터를 보내야 하는가? ㄴㄴ 양방향 실시간 통신 필요없음
- 클라이언트는 일반 HTTP요청으로 서버와 통신해도 충분함
- 많은 클라이언트가 사용하는가? ㄴㄴ 매우 소수의 사용자만 사용함
🤔 어떻게 서버와 연결할까?
- 클라이언트에서 서버로 SSE 연결 요청을 보내는 과정은 생각보다 단순함