Polling이란
Polling은 세가지 분야에서 사용된다.
CPU
- Polling은 특정 주기를 가지고 그 주기 마다 처리를 위한 시그널이 들어 왔는지를 체크한다.
- ex) 키보드의 변화를 CPU가 지속적으로 계속 확인하고 그에 따라 프로그램을 처리한다.
네트워크
- 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다.
웹
- 브라우저가 일정한 주기로 HTTP 요청을 보내는 방식이다.
- 불필요한 서버 및 네트워크 부하가 늘어난다는 단점이 있다.
세가지 모두 주기적으로 확인한다는 것이 핵심이다.
나는 클라이언트와 서버에게 데이터를 주기적으로 체크하는 Polling방식을 알아보고자 한다.
위 분야 중에선 웹에 해당되는 내용일 것이다.
왜 Polling 방식을 쓸까
HTTP 방식은 기본적으로 단방향 통신을 위해 만들어진 규약이다.
단, 야구 실시간 중계 혹은 GPS 위치 탐색등 실시간으로 감지해야 할 일이 있을 것이다.
따라서 HTTP 프로토콜을 통해 실시간 통신처럼 보이게끔 하기 위해 탄생한 방식이다.
Polling 작동 원리

Client가 주기적으로 평범한 Request를 보내 response를 전달받는 방식이다.
Polling의 장점
- 구현이 쉽다.
- 일정하게 갱신되는 서버일때 유용하다.
Polling의 단점
- Client가 많아지면 서버 부담이 급증한다.
- Client측에서 실시간 속도의 빠른 응답을 받긴 어렵다.
- 불필요한 요청이 많아 서버 부하를 일으킬 수 있다.
- HTTP 오버헤드가 발생할 수 있다.
총평
Polling은 구현은 간단하지만 성능면에선 좋은 효율을 내긴 어렵다.
이를 조금 더 발전 시킨 것이 Long Polling 방식이 있다.
다음 포스트에서 Long Polling에 대해 작성하겠다.
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.