Choosing Transport

SSE와 WebSocket은 실시간 문제의 모양이 다를 때 고른다

실시간이라는 말 하나로 WebSocket을 고르면 과해질 수 있다. 메시지 방향, 재연결, 프록시, 바이너리 필요성을 함께 봐야 한다.

서버발 이벤트 중심이면 SSE가 단순하다
양방향 고빈도 메시지는 WebSocket이 맞다
레거시·프록시 환경은 long polling이 마지막 선택지가 된다

WebSocket

채팅, 게임, 협업 편집처럼 클라이언트와 서버가 모두 자주 말하는 화면에 적합하다.
바이너리 지원
프록시와 로드 밸런서 설정 확인

SSE

알림, 피드, 진행률처럼 서버에서 클라이언트로 흘러오는 이벤트에 적합하다.
브라우저 자동 재연결
Last-Event-ID로 이어받기

Long polling

HTTP
WebSocket이나 SSE를 쓰기 어려운 오래된 환경에서 호환성을 확보할 때 남는 선택지다.
반복 요청 비용
연결 지연이 누적될 수 있음

운영 관점: timeout, idle 연결 종료, 버퍼링, sticky session, 브로커 사용 여부가 실제 안정성을 좌우한다.