0. Long Polling이란
Long Polling 방식은 polling과 기본방식이 유사하지만 클라이언트가 서버에 HTTP Request를 요청하면, 서버는 대기하고 있다가 이벤트가 발생 시 응답을 하는 방식입니다.
1. 왜 Long Polling 방식을 쓸까
기존 Polling 방식은 Client의 요청에 왔으면 무조건 응답을 보내주는 방식이다.
이는 서버의 변경사항이 없을 때 무의미한 데이터를 보낸다는 단점이 있다.
Long Polling은 이를 해결하기 위해 Event에 따라 데이터를 전송하는 방식이다.
2. Long Polling 작동 원리

Case 1: 데이터가 update 되는 경우
- HTTP 요청 시 서버는 해당 요청을 일정 시간 동안 대기 시킨다.
- 만약, 대기 시간 안에 데이터가 업데이트되었다면, 그 즉시 클라이언트에게 응답을 보낸다.
- 클라이언트는 전달받은 데이터를 처리 후 서버로 재요청을 시작합니다.
Case 2: 데이터가 되지 않은 경우
- 만약 서버의 데이터가 업데이트 되지 않는다면 서버는 Client에게
Time Out
을 보낸다.
- 클라이언트
Time Out
을 받으면 서버에게 다시 요청을 보낸다.
- 이를 반복한다.
3. Long Polling의 특징
- 항상 연결이 유지 되어 있다.
- 변경에 매우 민감하게 반응한다. 사실상 실시간으로 통신이 가능하다.
Long Polling의 장점
- 구현이 쉽다.
- 데이터 변동성이 낮은 서버의 경우 효율적이다.
Long Polling의 단점
- Client가 많아지면 서버 부담이 급증한다.
- 데이터 변동성이 높을 경우 Polling방식보다 더 큰 서버부하를 일으킬 수 있다.
총평
- Long Polling은 데이터 변동성이 적은 상황일 경우에 유리하다.
- Polling 방식보다 좋은 방식이라기 보단, 갱신시점이 다른 방식이다.
- 데이터의 변동 주기에 따라 Polling과 Long Polling을 선택을 해야할 것 같다.
- 단, Polling과 Long Polling 모두 HTML5의 WebSocket이 나오기 전 고안된 방안으로 WebSocket에 대한 공부가 필요할 것 같다.
좋은 정보 감사합니다