웹 브라우저에서의 통신 방법 (Polling, LongPolling, Streaming)

Seong Hoon Jung·2025년 2월 20일

웹 공부를 하다보니 3가지 통신 방식이 있는 것을 알아서 한번 정리해 보았습니다. 각각 어떠한 장단점이 있는지 따져보겠습니다.


Polling (폴링)

Polling은 클라이언트가 일정한 간격으로 서버에게 "이벤트가 있나요?"라고 계속해서 묻는 방식입니다.

Polling 동작 방식

  1. 클라이언트가 서버에 요청을 보냅니다.
  2. 서버가 즉시 응답을 보냅니다. (이벤트가 있거나 없거나)
  3. 일정 시간이 지나면 다시 요청을 보냅니다.

Polling의 장점

  • 서버에서 이벤트가 일정하게 발생하는 경우 비교적 간단한 방법으로 구현 가능

Polling의 단점

  • 클라이언트가 많아질수록 서버에 부담이 증가
  • 빈번한 HTTP 요청으로 인해 네트워크 오버헤드 발생
  • 이러면 클라이언트가 이벤트를 적시에 받지 못할 가능성 있음

LongPolling (롱 폴링)

LongPolling은 일반 Polling과 유사하지만, 서버가 좀 더 길게 접속을 유지하면서 이벤트가 발생하면 보내주는 방식입니다.

LongPolling 동작 방식

  1. 클라이언트가 서버에 요청을 보냅니다.
  2. 서버는 새로운 이벤트가 발생할 때까지 응답을 보내지 않고 기다립니다.
  3. 이벤트가 발생하면 서버가 응답을 보냅니다.
  4. 클라이언트는 응답을 받자마자 다시 요청을 보냅니다.

LongPolling의 장점

✅ 불필요한 요청을 줄여서 서버 부하를 감소시킬 수 있습니다.
✅ Polling보다 실시간성을 확보할 수 있습니다.

LongPolling의 단점

  • 만약 서버 이벤트가 빈번한 상황이면 일반 Polling과 다를 바가 없게 됩니다.
  • 서버에서 오랜 시간 요청을 유지해야 하므로 리소스 사용이 증가합니다.

Streaming by WebSocket (스트리밍)

WebSocket을 사용한 스트리밍 방식은 최초 한 번의 연결(handshake) 이후, 양방향 통신이 가능한 방식입니다.

Streaming 동작 방식

  1. 클라이언트가 서버와 WebSocket 연결을 맺습니다.
  2. 이후 서버와 클라이언트는 자유롭게 데이터를 주고받을 수 있습니다.
  3. HTTP 요청/응답 방식이 아니라, TCP 소켓을 통한 실시간 통신이 이루어집니다.

Streaming의 장점

  • 가장 효율적인 실시간 통신 방식입니다.
  • 양방향 통신 가능 (서버도 클라이언트에게 바로 데이터 전송 가능)
  • 불필요한 HTTP 요청이 줄어들고 지속적으로 데이터를 주고 받을 수 있습니다.

Streaming의 단점

  • WebSocket을 지원하지 않는 환경에서는 사용이 어려움
  • 서버에서 연결을 지속적으로 유지해야 하므로 리소스 관리 필요

어떤 방식을 선택해야 할까요?

  • Polling: 간단한 구현이 필요하고 실시간성이 크게 중요하지 않을 때 유용합니다.
  • LongPolling: 실시간성이 중요하지만 WebSocket을 사용하기 어려울 때 좋습니다.
  • Streaming(WebSocket): 실시간성이 매우 중요하고 지속적인 데이터 전송(가령 채팅환경)이 필요할 때 사용합니다.

참고한 글들

profile
Seek first his kingdom and his righteousness

0개의 댓글