목록 보기
Web application에서 Server to Client통신
프론트엔드

Web application에서 Server to Client통신

뷰노
뷰노
2020년 9월 3일

두줄요약

서버에서 클라이언트로 이벤트를 전달하는 Polling, Comet, SSE, WebSocket 방식을 비교했습니다.\n통신 빈도와 연결 유지 비용을 기준으로 Polling 또는 WebSocket을 선택할 수 있습니다.

구조와 흐름

  • HTTP의 단방향 요청·응답 한계를 보완하는 서버→클라이언트 이벤트 전달 방식
  • Polling, Comet의 Streaming·Long Polling, SSE, WebSocket 순의 통신 모델 소개
  • Streaming의 hidden iframe과 XMLHttpRequest 기반 구현 방식 및 readyState 활용

장단점

  • Polling의 쉬운 구현과 반복 연결·해제 비용
  • Long Polling의 이벤트 발생 시점 응답과 서버 부하 가능성
  • SSE의 HTTP 기반 단순성 및 서버→클라이언트 단방향 제약
  • WebSocket의 TCP 기반 전이중 통신, 작은 데이터 프레임 헤더, 구형 IE 호환성 제약

선택 이유

  • 빈번한 양방향 메시지 교환에 적합한 WebSocket
  • 1시간 단위처럼 드문 업데이트에서 연결 유지 비용을 피하는 Polling
  • 별도 프로토콜·라이브러리 없이 단방향 푸시가 필요한 경우의 SSE

적용해볼 점

  • 기존 로그인 세션 종료, 비동기 작업 완료 알림 같은 서버 주도 이벤트에 적용
  • 통신 빈도와 연결 유지 비용을 기준으로 Polling과 지속 연결 방식 선택

다음 읽기

#SSE 주제를 다룬 다른 회사 글

Server-Sent Events로 실시간 알림 전달하기

MQTT 기반 알림의 제약을 해결하기 위해 AWS IoT와 SSE를 도입했습니다. 정형화된 메시지, 재전송, 수신 확인으로 실시간성과 안정성을 높였습니다.

우아한 형제들
우아한 형제들
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...