Web

Polling이란 (Polling과 API 호출은 같지 않다)

2023. 4. 24. 00:03
목차
  1. Web
  2. 폴링(Polling)
  3. 요약

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
  1. Web
  2. 폴링(Polling)
  3. 요약
'Web' 카테고리의 다른 글
  • Repaint와 Reflow 최적화하기
  • Repaint와 Reflow
  • 맥북 M1 scss 에러 해결방법
  • 맥북 M1에 homebrew로 node랑 vscode, 카카오톡 설치하기
개굴이 dev
개굴이 dev
정보를 지식으로 만드는 글쓰기
개굴이 dev
개발공부
개굴이 dev
전체
오늘
어제
  • 분류 전체보기
    • 끄적끄적
    • Javascript
    • React
    • Vue
    • Web
    • HTML
    • CSS(SCSS)
    • 알고리즘
    • Server
      • Node.js
    • Database
      • Mongo
    • Tools
      • Gulp
      • Webpack
    • Design System
    • English
    • Blog

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Algorithm
  • API
  • backend
  • Counter
  • CSS
  • dartSass
  • design system
  • designsystem
  • EDM
  • Email
  • express
  • frontend
  • github
  • gulp
  • home-brew
  • HTML5
  • java
  • Javascript
  • js
  • js-tutorial
  • macbookM1
  • MongoDB
  • node
  • nodejs
  • outlook
  • react
  • SEO
  • Server
  • task runner
  • task-runner

최근 댓글

최근 글

hELLO · Designed By 정상우.
개굴이 dev
Polling이란 (Polling과 API 호출은 같지 않다)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.