| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- 컴포넌튼
- ZOOM
- 1px border
- ES5
- TypeScript
- entity
- 전역변수
- angular
- &연산
- TS
- font-size
- es6
- Strict
- npm
- literal
- 10px
- 당근마켓
- Websocket
- 0.75px border
- 클론코딩
- 데이터베이스 #try #이중
- github
- 타입스크립트
- 0.25px border
- Props
- 서버리스 #
- jwt
- 0.5px border
- 문서번호
- 으
- Today
- Total
복잡한뇌구조마냥
[CS] Polling, Long Polling, Streaming, WebSocket 차이 정리 본문
웹 애플리케이션에서 실시간 데이터 처리는 점점 더 중요한 요구사항이 되고 있다.
채팅, 알림, 실시간 게임, 주식·모니터링 대시보드 등은 모두 “서버 상태 변화를 즉시 사용자에게 전달”해야 한다.
이 글에서는 웹에서 사용되는 대표적인 실시간 통신 방식인
Polling → Long Polling → Streaming(SSE) → WebSocket을 흐름 중심으로 정리한다.
1️⃣ Polling (폴링)

개념
- 클라이언트가 주기적으로 서버에 요청
- 서버는 항상 즉시 응답
- 변경 사항이 없어도 요청은 계속 발생
Client ──(요청)──> Server
Client <──(응답)── Server
(이걸 N초마다 반복)
특징
- 구현이 매우 단순
- HTTP 기반 → 브라우저 호환성 좋음
- 불필요한 트래픽 발생
단점
- 실시간성이 떨어짐
- 서버 부하 큼
- 요청 주기를 짧게 하면 비용 폭증
사용 예
- 관리자 페이지 단순 상태 확인
- 실시간성이 중요하지 않은 경우
2️⃣ Long Polling (롱 폴링)
개념
- 클라이언트가 요청
- 서버는 데이터가 생길 때까지 응답을 지연
- 응답을 받으면 즉시 다시 요청
특징
- Polling보다 훨씬 실시간에 가까움
- 불필요한 요청 감소
단점
- 요청-응답 반복 구조는 여전
- 연결 관리가 복잡
- 대규모 트래픽 시 서버 부담 큼
사용 예
- 옛날 채팅 시스템
- WebSocket 도입 전 실시간 알림
3️⃣ Streaming / SSE (Server-Sent Events)


개념
- 클라이언트 → 서버 단방향 스트리밍
- 한 번 연결 후 서버가 계속 데이터 push
- HTTP 기반, 연결을 끊지 않음
특징
- HTTP 기반 → 방화벽/프록시 친화적
- 자동 재연결 지원
- 구현 난이도 낮음
단점
- 단방향 통신
- 클라이언트 → 서버 실시간 전송은 불가
사용 예
- 실시간 알림
- 로그 스트리밍
- 모니터링 대시보드
- 뉴스 피드, 상태 변경 알림
💡 Spring WebFlux + SSE 조합이 특히 잘 맞음
→ 서버 자원을 효율적으로 사용 가능
4️⃣ WebSocket


개념
- HTTP로 연결 후 WebSocket 프로토콜로 업그레이드
- 서버 ↔ 클라이언트 양방향 실시간 통신
특징
- 진짜 실시간
- 이벤트 기반
- 요청/응답 개념이 사라짐
단점
- 연결 관리 난이도 높음
- 인증, 세션, 스케일링 고려 필요
- 프록시/로드밸런서 설정 필요
사용 예
- 채팅
- 실시간 게임
- 협업 툴
- 실시간 투표 / 랭킹
5️⃣ 한 눈에 비교 정리
| 구분 | PollingLong | Polling | SSE | WebSocket |
| 통신 방향 | 단방향 | 단방향 | 서버 → 클라이언트 | 양방향 |
| 실시간성 | ❌ | ⭕ | ⭕⭕ | ⭕⭕⭕ |
| 연결 유지 | ❌ | ❌ | ⭕ | ⭕ |
| 서버 부담 | 큼 | 중 | 적음 | 관리 필요 |
| 구현 난이도 | 매우 쉬움 | 쉬움 | 보통 | 어려움 |
6️⃣ 언제 무엇을 써야 할까?
✅ SSE가 좋은 경우
- 알림, 상태 변화
- 서버 → 클라이언트 단방향
- HTTP 인프라 유지하고 싶을 때
✅ WebSocket이 필요한 경우
- 실시간 상호작용
- 빠른 반응 속도
- 사용자 입력이 즉시 서버에 반영돼야 할 때
❌ Polling / Long Polling
- 레거시 시스템 제외하면 신규 개발에는 비추천
7️⃣ 마무리
실시간 통신 방식은 **“얼마나 실시간인가”**보다
**“어떤 방향으로, 얼마나 자주, 얼마나 많은 사용자가 통신하는가”**가 더 중요하다.
- 단방향 알림 → SSE
- 쌍방향 인터랙션 → WebSocket
- 간단한 상태 확인 → Polling
참고자료:
https://lkhlkh23.tistory.com/121
웹 소켓이 등장하기 까지 - Polling Long Polling, Streaming, Web Socket
1. WebSocket 이전의 양방향 통신 방법 (1) Polling 방식 클라이언트가 서버에서 HTTP Request를 주기적으로 요청하고, 서버가 응답하는 방식이다. 클라이언트가 주기적으로 요청을 하기 때문에 클라이언
lkhlkh23.tistory.com
🌐 Polling / Long Polling / Server Sent Event / WebSocket 정리
서버의 event를 클라이언트로 보내는 4가지 방법 polling 클라이언트가 평범한 http request를 서버로 계속 날려서 이벤트 내용을 전달받는 방식이다. 가장 쉬운방법이지만 클라이언트가 계속적으로 re
inpa.tistory.com