Polling이 무엇인지 알아보기에 앞서 Web 통신의 특성에 대해 알아야 합니다.
Web
HTTP 통신은 클라이언트가 서버에 요청을 하고, 응답을 받으면 연결이 끊어지는 특징이 있습니다.
바로 비연결성(Connectionless)이라고 합니다.
그래서 웹은 실시간으로 서비스를 운영할 수 없는 한계가 있습니다......만
Polling 방식을 통해서 실시간처럼 보이도록 할 수 있습니다.
폴링(Polling)
폴링은 업데이트가 갱신되었을 때, 이를 확인하기 위해 사용합니다.
다시 말해 새로운 데이터를 계속 보여주기 위해 반복적으로 API 요청을 하는 방식입니다.
예시
만약 인스타그램과 같은 SNS에 폴링을 적용한다면
사용자는 계속 새로고침을 하지 않아도, 최신 피드를 확인할 수 있습니다.
작동 순서는 대략 이럴 것입니다.
1. 초기 렌더링이 될 때, 서버에서 최신 피드를 받아오기 위한 API 요청이 처음 발생합니다.
2. 30초 후 - 클라이언트 사이드에서 새 글이 있는 지 확인하기 위해 또 API 요청을 보냅니다.
3. 새 글이 있다면 그에 대한 데이터를 받고, 클라이언트 측에서는 리렌더링이 일어납니다.
4. 그리고 다시 30초 후 API 요청을 보내는 사이클이 이루어 집니다.
30초는 임시로 정한 타이머 값입니다. 요청에 대한 간격은 상황에 따라 달라집니다.
간격을 짧게 설정할 경우에는 요청이 많아져 서버에 부하가 발생할 수도 있습니다.
폴링을 구현하는 방법
JavaScript에서 바로 SetInterval
메소드가 떠오르셨을 것 같습니다.
이 메서드를 이용하여 간격에 맞추어 API 요청을 할 수 있습니다.
setInterval(function() {
getDataFromServer();
}, 30000);
function getDataFromServer() {
...
}
이 외에 재귀함수를 호출하는 방법도 있습니다.
폴링 구현에는 여러가지 방법이 있고,
상황에 따라 맞는 방법을 사용해야 하겠습니다.
요약
- 폴링은 API 호출 방식 중의 하나이다.
- 실시간으로 최신 데이터를 보여주기 위해 반복적으로 API 호출을 하는 것이다.
- HTTP의 비연결성 특징을 보완한다.
'Web' 카테고리의 다른 글
Repaint와 Reflow 최적화하기 (0) | 2023.05.24 |
---|---|
Repaint와 Reflow (0) | 2023.05.23 |
맥북 M1 scss 에러 해결방법 (0) | 2021.07.31 |
맥북 M1에 homebrew로 node랑 vscode, 카카오톡 설치하기 (0) | 2021.07.31 |
맥북 M1에 homebrew 개발환경 설정하기 (0) | 2021.07.31 |