서버 전송 이벤트(Server-Sent Events)란?
기존의 웹 애플리케이션은 웹 서버 쪽으로 이벤트를 전송하는 구조로 동작합니다. 예를 들어 사용자가 링크를 한 번 클릭하면, 그 클릭 이벤트가 서버로 전달되어 새로운 페이지를 요청하는 방식입니다.
이처럼 웹 브라우저에서 웹 서버로 흐르는 이벤트를 '클라이언트 전송 이벤트(Client-Sent Events)'라고 부릅니다.
SSE의 등장 배경
HTML5와 함께 발표된 WHATWG Web Applications 1.0은 반대 방향의 통신 개념을 새롭게 도입했습니다. 바로 웹 서버에서 웹 브라우저로 흐르는 이벤트, 즉 '서버 전송 이벤트(Server-Sent Events, SSE)'입니다.
SSE를 활용하면 웹 서버에서 방문자의 브라우저로 DOM 이벤트를 지속적으로 푸시(push)할 수 있습니다. 주식 시세, 뉴스 피드, 실시간 알림처럼 서버의 최신 상태를 화면에 계속 반영해야 하는 서비스에 특히 유용합니다.
이벤트 스트리밍 방식의 장점
서버 전송 이벤트의 핵심은 '이벤트 스트리밍' 방식에 있습니다. 클라이언트는 서버와 영구적인 연결(persistent connection)을 맺고, 서버에 새로운 정보가 생길 때마다 데이터를 자동으로 전달받습니다.
이 방식은 일정한 간격으로 서버에 계속 요청을 보내야 하는 기존의 폴링(polling) 방식과 달리, 불필요한 네트워크 요청을 줄여주므로 성능과 효율성 면에서 큰 이점을 제공합니다.
데이터 스트리밍의 표준화
요약하면, 서버 전송 이벤트는 서버에서 클라이언트로 데이터를 스트리밍하는 방식을 표준화한 기술입니다. 별도의 복잡한 설정 없이 HTTP 기반으로 단방향 실시간 통신을 구현할 수 있어, 현대 웹 애플리케이션 개발에서 널리 활용되고 있습니다.