[네트워크] 폴링 / 롱 폴링 (Polling / Long Polling)

2024. 11. 8. 18:49·CS/Network

Polling 

폴링(polling)은 가장 기본적인 데이터 처리방식으로, 클라이언트가 주기적으로 서버에 요청을 보내 데이터를 확인하는 방식이다.

서버는 클라이언트 요청에 대해 새로운 데이터가 있는지 확인하고, 새로운 데이터가 있으면 이를 클라이언트에게 응답으로 보낸다.

주로 실시간 데이터 처리가 중요한 경우 사용된다. 

 

장점 

  • 단순성: 폴링은 구현이 간단하고, 대부분의 표준 HTTP 요청을 사용하므로 복잡한 추가 설정이 필요 없음.
  • 상태 유지 불필요: 서버가 클라이언트의 상태를 유지할 필요가 없어 서버 자원을 절약할 수 있음.
  • 쉽게 확장 가능: 클라이언트와 서버 간의 통신이 독립적이므로 여러 클라이언트가 동시에 요청을 보내도 서버에서 쉽게 처리할 수 있음.

단점

  • 비효율성: 클라이언트가 일정 시간마다 서버에 요청을 보내므로 불필요한 요청이 발생할 수 있음. 예를 들어, 데이터가 없는 경우에도 요청이 발생하여 네트워크 트래픽이 증가하고 서버 부하가 커질 수 있음.
  • 실시간성 부족: 클라이언트는 일정 주기로 서버에 요청을 보내기 때문에 실시간으로 데이터가 도달하는 것이 아니라, 요청 주기마다 최신 데이터를 받게 됨.
  • 서버 부하: 많은 클라이언트가 주기적으로 요청을 보내면 서버에 많은 부하가 걸릴 수 있음.

Long Polling 

 

롱 폴링(long polling)은 클라이언트가 서버에 요청을 보낸 후, 서버가 응답할 데이터가 준비될 때까지 연결을 유지하는 방식이다. 클라이언트가 서버에 요청을 보내면, 서버는 즉시 응답하지 않고 데이터가 준비될 때까지 기다렸다가 데이터가 준비되면 응답을 보내고, 클라이언트는 새로운 요청을 보낸다. 이 방식은 폴링과는 다르게 주기적인 요청을 보내지 않고, 데이터가 준비될 때까지 연결을 지속적으로 유지하기 때문에 네트워크 효율성이 상대적으로 좋다.

 

장점

  • 효율성: 클라이언트가 주기적으로 요청을 보내지 않으므로 네트워크 트래픽을 줄일 수 있음.
  • 실시간성: 서버에서 데이터가 준비되었을 때 즉시 클라이언트에게 전달되므로 빠른 반응속도를 가짐.

단점

  • 서버 부하: 클라이언트와의 연결을 유지해야 하므로 서버 자원을 지속적으로 소비할 수 있음.
  • 응답 지연: 데이터가 준비되지 않은 상태에서 클라이언트는 응답을 받을 때까지 기다려야 하므로 실시간성에는 유리하지만, 클라이언트 측에서 응답 대기 시간이 길어질 수 있음.
  • 복잡한 구현: 상태를 관리하고 연결을 지속하는 데 더 복잡한 로직이 필요함.

'CS > Network' 카테고리의 다른 글

경로 제어 프로토콜이란?  (0) 2025.01.09
[네트워크] 0.0.0.0/0 IP란  (0) 2024.11.13
[네트워크] 전송 계층 프로토콜 (TCP/UDP)  (1) 2024.10.21
[네트워크] 네트워크 계층별 프로토콜  (0) 2024.09.10
'CS/Network' 카테고리의 다른 글
  • 경로 제어 프로토콜이란?
  • [네트워크] 0.0.0.0/0 IP란
  • [네트워크] 전송 계층 프로토콜 (TCP/UDP)
  • [네트워크] 네트워크 계층별 프로토콜
seulll
seulll
개인 공부 / 정리 블로그입니다
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (325) N
      • 코딩테스트 (224) N
        • programmers (python) (156)
        • 백준 (python) (66) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (19) N
        • Python (4)
        • Java | Spring (7)
        • Unity (3)
        • API (3)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (12)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    카카오맵 api
    야근 지수
    백엔드 개발자
    API
    Boxplot
    Python
    프렌즈4블록
    solving environment
    대입 표현식
    웹크롤링
    kakao map api
    데이터분석
    티스토리챌린지
    백엔드 개발자 역량
    모델 성능 평가
    Greedy
    confusion matrix
    박스플롯
    오블완
    2 x n 타일링
    파이썬
    그리디 알고리즘
    카카오맵
    오차행렬
    바다코끼리
    백엔드
    프로그래머스
    코딩테스트
    asterisk
    train_test_split
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
[네트워크] 폴링 / 롱 폴링 (Polling / Long Polling)
상단으로

티스토리툴바