Polling은 컴퓨터 과학 및 네트워킹 분야에서 다양한 문맥에서 사용되는 용어로, 특정 조건이나 이벤트가 발생했는지 확인하기 위해 주기적으로 확인하는 과정을 의미합니다. 여기에는 여러 가지 유형이 있습니다:
- 컴퓨터 네트워크에서의 폴링:
- 네트워크 폴링: 서버가 클라이언트들로부터 데이터를 수신하기 위해 주기적으로 확인하는 과정입니다. 예를 들어, 프린터 서버가 네트워크에 연결된 프린터들이 인쇄 요청이 있는지 주기적으로 확인하는 경우가 있습니다.
- HTTP 폴링: 클라이언트가 서버에 주기적으로 요청을 보내서 새로운 데이터를 확인하는 방식입니다. 웹 애플리케이션에서 새로운 메시지나 업데이트가 있는지 확인할 때 사용됩니다.
- 운영 체제에서의 폴링:
- 입출력 폴링: 운영 체제나 애플리케이션이 주기적으로 입출력 장치의 상태를 확인하는 과정입니다. 예를 들어, 키보드 입력이 있는지 확인하기 위해 주기적으로 키보드 상태를 확인하는 것입니다.
- 멀티태스킹 환경에서의 폴링:
- 작업 스케줄링에서의 폴링: 운영 체제가 각 프로세스나 스레드의 상태를 주기적으로 확인하여 현재 실행 중인 작업을 제어하거나 전환하는 방식입니다.
- 데이터베이스에서의 폴링:
- 쿼리 폴링: 애플리케이션이 데이터베이스에 주기적으로 쿼리를 보내서 특정 조건을 만족하는 새로운 데이터가 있는지 확인하는 방식입니다.
폴링은 간단하고 구현이 쉬운 방법이지만, 리소스를 많이 사용하고 응답 시간이 느릴 수 있다는 단점이 있습니다. 그래서 실시간성을 요구하는 경우 이벤트 기반의 알림 시스템이나 웹소켓 같은 대안이 사용되기도 합니다.