피드로 돌아가기
Server-Sent Events (SSE)
Dev.toDev.to
Backend

HTTP 기반 단방향 푸시 SSE 도입을 통한 네트워크 오버헤드 최적화

Server-Sent Events (SSE)

Alpha2026년 4월 10일4intermediate

Context

실시간 상태 업데이트 구현을 위해 Polling과 WebSocket을 검토하였으나, 빈번한 요청으로 인한 인프라 부하와 불필요한 양방향 통신 자원 낭비라는 한계점 식별.

Technical Solution

  • text/event-stream Content-Type 설정을 통한 서버-클라이언트 간 Persistent Connection 유지
  • HTTP 표준 프로토콜 기반의 단방향 데이터 스트리밍 구조 채택으로 WebSocket 대비 낮은 구현 복잡도 달성
  • CancellationToken을 활용한 클라이언트 연결 종료 감지 및 서버 측 Zombie Connection 방지 로직 구현
  • data: 접두사와 Double Newline(`

`) 규격을 준수하는 SSE Spec 기반의 텍스트 프로토콜 적용

  • 클라이언트의 반복적 API 요청을 서버 측 단일 연결 내 업데이트 전송 방식으로 전환하여 Network Traffic 감소

- 실시간 업데이트가 단방향(Server to Client)으로만 필요한지 확인 - WebSocket 도입 전 HTTP 표준으로 해결 가능한 SSE 적용 가능성 검토 - 서버 리소스 누수 방지를 위한 Connection Lifecycle 관리 및 Timeout 설정 확인 - DB Polling 기반의 SSE 구현 시 성능 저하 방지를 위해 Pub/Sub 기반 Event-Driven 구조로의 전환 고려

원문 읽기