[네트워크] Long Polling - 롱 폴링기법

Meltsplit·2023년 7월 26일
0

인디언포커

목록 보기
2/2

0. Long Polling이란

Long Polling 방식은 polling과 기본방식이 유사하지만 클라이언트가 서버에 HTTP Request를 요청하면, 서버는 대기하고 있다가 이벤트가 발생 시 응답을 하는 방식입니다.

1. 왜 Long Polling 방식을 쓸까

기존 Polling 방식은 Client의 요청에 왔으면 무조건 응답을 보내주는 방식이다.
이는 서버의 변경사항이 없을 때 무의미한 데이터를 보낸다는 단점이 있다.
Long Polling은 이를 해결하기 위해 Event에 따라 데이터를 전송하는 방식이다.

2. Long Polling 작동 원리

Case 1: 데이터가 update 되는 경우

  1. HTTP 요청 시 서버는 해당 요청을 일정 시간 동안 대기 시킨다.
  2. 만약, 대기 시간 안에 데이터가 업데이트되었다면, 그 즉시 클라이언트에게 응답을 보낸다.
  3. 클라이언트는 전달받은 데이터를 처리 후 서버로 재요청을 시작합니다.

Case 2: 데이터가 되지 않은 경우

  1. 만약 서버의 데이터가 업데이트 되지 않는다면 서버는 Client에게 Time Out 을 보낸다.
  2. 클라이언트 Time Out을 받으면 서버에게 다시 요청을 보낸다.
  3. 이를 반복한다.

3. Long Polling의 특징

  • 항상 연결이 유지 되어 있다.
  • 변경에 매우 민감하게 반응한다. 사실상 실시간으로 통신이 가능하다.

Long Polling의 장점

  • 구현이 쉽다.
  • 데이터 변동성이 낮은 서버의 경우 효율적이다.

Long Polling의 단점

  • Client가 많아지면 서버 부담이 급증한다.
  • 데이터 변동성이 높을 경우 Polling방식보다 더 큰 서버부하를 일으킬 수 있다.

총평

  • Long Polling은 데이터 변동성이 적은 상황일 경우에 유리하다.
  • Polling 방식보다 좋은 방식이라기 보단, 갱신시점이 다른 방식이다.
  • 데이터의 변동 주기에 따라 Polling과 Long Polling을 선택을 해야할 것 같다.
  • 단, Polling과 Long Polling 모두 HTML5의 WebSocket이 나오기 전 고안된 방안으로 WebSocket에 대한 공부가 필요할 것 같다.
profile
iOS Developer

1개의 댓글

comment-user-thumbnail
2023년 7월 26일

좋은 정보 감사합니다

답글 달기