이벤트 스트림(Event Stream), 쇼트 폴링(Short Polling), 롱 폴링(Long Polling)

대량의 데이터를 가져오는 것은 사용자에게 문제를 일으킬 수 있습니다. 사용자가 응답을 너무 오래 기다리게 되면 서비스가 느리다고 느끼게 됩니다. 이러한 데이터 요청을 처리하기 위해 다양한 방법을 사용합니다.

쇼트 폴링 (Short Polling) 클라이언트가 정해진 간격으로 서버에 요청을 보냅니다. 서버는 각 요청에 즉시 응답하며, 새로운 데이터가 있는지 여부를 클라이언트에 알려줍니다. 이 방식은 지속적인 요청으로 인해 많은 리소스를 사용합니다.

롱 폴링 (Long Polling) 클라이언트가 서버에 요청을 보냅니다. 서버는 새로운 데이터가 도착하거나 타임아웃이 발생할 때까지 요청을 열어둔 상태로 유지합니다. 이를 통해 빈 응답의 횟수를 줄일 수 있습니다.

이벤트 스트림 (Event Stream, SSE) 대규모 데이터 세트는 긴 대기 시간을 유발합니다. 만약 100,000개의 데이터 행이 있다면, 이를 한꺼번에 보내는 것은 느립니다. 데이터를 청크(chunk) 단위로 나누어 보냄으로써 사용자 경험을 개선할 수 있습니다.

이벤트 스트림은 다음과 같이 작동합니다:

  • 클라이언트가 서버와 연결을 맺습니다.
  • 연결이 계속 유지됩니다.
  • 서버는 데이터가 준비되는 대로 작은 부분들을 보냅니다.
  • 사용자는 전체 데이터 세트를 기다리는 대신 결과를 즉시 확인할 수 있습니다.

이 방식은 서버가 모든 이벤트를 전송할 때까지 연결을 활성 상태로 유지합니다. 이를 통해 애플리케이션이 빠르고 반응성이 좋게 느껴지도록 합니다.

출처: https://dev.to/anubama_i/event-stream-short-polling-long-polling-54n