핵심 인사이트 (3줄 요약)

  1. 본질: SSE는 응용 계층과 웹/메일에서 핵심 동작과 제약을 이해하게 해 주는 개념이다.
  2. 가치: SSE를 이해하면 응답 시간과 호환성 사이의 균형을 더 정확히 볼 수 있다.
  3. 판단 포인트: 설계 시에는 개념 자체보다 적용 조건, 운영 복잡도, 인접 기술과의 경계를 함께 판단해야 한다.

Ⅰ. 개요 및 필요성

  • 개념: SSE(Server-Sent Events)는 웹 브라우저의 자바스크립트 API인 EventSource 객체를 이용하여 서버로부터 발생한 이벤트를 스트리밍 형태로 받아오는 기술이다. 통신이 양방향(Full-Duplex)인 웹소켓과 달리, 방향이 철저하게 서버에서 클라이언트로 향하는 **단방향(Half-Duplex, Push)**으로 제한된다.

  • 필요성: 웹에서 "실시간"이 필요하다고 무조건 고가도로(웹소켓)를 뚫을 필요는 없다. 트위터 새 글 알림, 페이스북 좋아요 푸시, 넷플릭스 영화 인코딩 진행률 막대 같은 기능들은 클라이언트가 서버로 딱히 쏠 데이터가 없고, 오직 "서버가 언제 나한테 변경사항을 내려줄지"만 얌전히 기다리는 구조다. 이를 위해 복잡한 웹소켓 핸드셰이크를 거치거나 무식하게 1초마다 찌르는 폴링(Polling)을 쓰는 것은 소 잡는 칼로 닭을 잡는 낭비였다. HTTP라는 친숙한 길 위에서 일방통행으로 데이터를 쏟아내는 가벼운 수도관이 필요했다.

  • 💡 비유: 웹소켓이 서로 말을 주고받을 수 있는 양방향 무전기라면, SSE는 라디오 방송국(서버)이 주파수만 맞춰둔 수많은 청취자(클라이언트) 라디오를 향해 계속해서 음악과 뉴스를 일방적으로 송출하는 **'단방향 라디오 생방송'**과 같습니다. 청취자는 방송국에 말을 걸 순 없지만, 새로운 뉴스는 0.1초 만에 즉각 들을 수 있습니다.

  • 등장 배경:

    1. Comet 꼼수의 한계: 과거 개발자들은 숨겨진