CS | Network
폴링 / 롱 폴링 (Polling / Long Polling)
seulll
2024. 11. 8. 18:49
Polling
폴링(polling)은 가장 기본적인 데이터 처리방식으로, 클라이언트가 주기적으로 서버에 요청을 보내 데이터를 확인하는 방식이다.
서버는 클라이언트 요청에 대해 새로운 데이터가 있는지 확인하고, 새로운 데이터가 있으면 이를 클라이언트에게 응답으로 보낸다.
주로 실시간 데이터 처리가 중요한 경우 사용된다.
장점
- 단순성: 폴링은 구현이 간단하고, 대부분의 표준 HTTP 요청을 사용하므로 복잡한 추가 설정이 필요 없음.
- 상태 유지 불필요: 서버가 클라이언트의 상태를 유지할 필요가 없어 서버 자원을 절약할 수 있음.
- 쉽게 확장 가능: 클라이언트와 서버 간의 통신이 독립적이므로 여러 클라이언트가 동시에 요청을 보내도 서버에서 쉽게 처리할 수 있음.
단점
- 비효율성: 클라이언트가 일정 시간마다 서버에 요청을 보내므로 불필요한 요청이 발생할 수 있음. 예를 들어, 데이터가 없는 경우에도 요청이 발생하여 네트워크 트래픽이 증가하고 서버 부하가 커질 수 있음.
- 실시간성 부족: 클라이언트는 일정 주기로 서버에 요청을 보내기 때문에 실시간으로 데이터가 도달하는 것이 아니라, 요청 주기마다 최신 데이터를 받게 됨.
- 서버 부하: 많은 클라이언트가 주기적으로 요청을 보내면 서버에 많은 부하가 걸릴 수 있음.
Long Polling
롱 폴링(long polling)은 클라이언트가 서버에 요청을 보낸 후, 서버가 응답할 데이터가 준비될 때까지 연결을 유지하는 방식이다. 클라이언트가 서버에 요청을 보내면, 서버는 즉시 응답하지 않고 데이터가 준비될 때까지 기다렸다가 데이터가 준비되면 응답을 보내고, 클라이언트는 새로운 요청을 보낸다. 이 방식은 폴링과는 다르게 주기적인 요청을 보내지 않고, 데이터가 준비될 때까지 연결을 지속적으로 유지하기 때문에 네트워크 효율성이 상대적으로 좋다.
장점
- 효율성: 클라이언트가 주기적으로 요청을 보내지 않으므로 네트워크 트래픽을 줄일 수 있음.
- 실시간성: 서버에서 데이터가 준비되었을 때 즉시 클라이언트에게 전달되므로 빠른 반응속도를 가짐.
단점
- 서버 부하: 클라이언트와의 연결을 유지해야 하므로 서버 자원을 지속적으로 소비할 수 있음.
- 응답 지연: 데이터가 준비되지 않은 상태에서 클라이언트는 응답을 받을 때까지 기다려야 하므로 실시간성에는 유리하지만, 클라이언트 측에서 응답 대기 시간이 길어질 수 있음.
- 복잡한 구현: 상태를 관리하고 연결을 지속하는 데 더 복잡한 로직이 필요함.