Polling, Interrupt 방식
배경
타운홀 리뉴얼 과정에서 현황판의 데이터를 가져오는 방식을 polling 방식, interrupt 방식로 할 것인지 결정해야 했습니다. 10초마다 자동으로 갱신하는 polling 방식을 선택했습니다. 웹서핑 도중 polling이 쓰이는 여러 상황, 두 방식을 부르는 명칭을 발견해 명확히 알고 가면 좋을 것 같아 정리합니다.
개념
CPU에서 vs 통신에서 vs 웹에서
polling
|
CPU 네트워크 - 폴링(polling)이란 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다. 이 방식은 버스, 멀티포인트 형태와 같이 여러 개의 장치가 동일 회선을 사용하는 상황에서 주로 사용된다. 서버의 제어 장치(또는 프로그램)는 순차적으로 각 단말 장치(또는 프로그램)에 회선을 사용하기 원하는지를 물어본다. - 위키백과 - 통신에서, "폴링"은 한 프로그램이나 장치에서 다른 프로그램이나 장치들이 어떤 상태에 있는지를 지속적으로 체크하는 전송제어 방식으로서, 대체로 그들이 아직도 접속되어 있는 지와 데이터 전송을 원하는지 등을 확인한다.
웹에서 - 브라우저가 일정한 주기로 HTTP 요청을 보내는 방식입니다.
|
interrupt
|
- Interrupt 방식은 하드웨어에서 지정한 시그널을 받도록 구현하는 방식입니다. |
응용
long polling
|
- HTTP 요청 시 서버는 해당 요청을 일정 시간 동안 대기 시킵니다. 만약, 대기 시간 안에 데이터가 업데이트되었다면, 그 즉시 클라이언트에게 응답을 보내고 전달받은 데이터를 처리 후 서버로 재요청을 시작합니다. |
스트리밍(Streaming) 방식
|
- 서버는 지속적인 업데이트를 위해 무한정(또는 일정 시간 동안) 요청을 대기시키며, "chunked" 기반 메시지를 이용하여 응답 시 연결을 유지 시킵니다. |
예시
polling
|
ex) 실시간으로 변하는 야구중계 같은 데이터가 있다면 브라우저에서 5초 단위로 서버에 요청을 보내 업데이트하는 방식(네이버 실시간 문자중계 같은거?) |
출처
https://skmagic.tistory.com/271
https://mohwaproject.tistory.com/entry/%E3%85%81%E3%85%81%E3%85%8
http://recipes.egloos.com/5092826
https://wondongho.tistory.com/69
spring websocket (polling, Handshake 과정, sockjs, webSocketHandler, 예제) 출처: https://sjh836.tistory.com/166 [빨간색코딩]