귀찮게하기/Senior

시니어 귀찮게 안 하기 - 실시간급 통신

게임이 더 좋아 2024. 11. 7. 07:56
반응형
728x170

Polling, Websocket

 

실시간 통신 또는 정기적으로 빠른 애플리케이션 업데이트를 위한 방법

 

polling and websocket

 

 

폴링

클라이언트가 정기적으로 서버에 데이터를 반복적으로 요청하는 기술

 

- 숏 폴링

주기적인 interval을 가지고 Server에 request 함

하지만 업데이트가 없을 경우 서버에 부하, 네트워크 대역폭 낭비가 됨

-> 실시간급의 응답이 필요하다면 숏폴링을 해야함

-> 하지만 user가 많아질수록 부담되는 구조임

 

 

- 롱 폴링

Server에 Request를 함

서버는 해당 request에 대해 업데이트가 없을지라도 새로운 업데이트가 생길때까지 또는 timeout 제한까지 holding함

숏폴링보단 서버, 대역폭 낭비가 적음

 

 

 

 

웹소켓

클라이언트와 서버 간의 단일 장기 연결을 통해 쌍방향 통신 채널을 제공하는 통신 프로토콜

- 실시간 데이터 송수신 채널

채팅, 온라인 게임, 라이브 스트리밍 등에 쓰일 수 있음

- 효율적 통신

Connection 을 유지함으로써 Connection에 드는 오버헤드를 줄일 수 있음

 

 

 

 

 

 

폴링과 웹소켓의 차이

폴링은 클라이언트가 정기적으로 서버에 데이터를 반복적으로 요청하는 것을 포함하며, 이는 비효율성과 지연으로 이어질 수 있음

반면, 웹소켓은 단일 장기 연결을 통해 클라이언트와 서버 간에 실시간 데이터 교환을 허용하는 풀 듀플렉스 통신 채널을 제공

 

 

웹소켓보다 폴링 사용할 때?

폴링은 실시간 업데이트가 중요하지 않고 단순성이 우선순위인 애플리케이션에 적합

데이터가 자주 변경되지 않고 WebSocket 연결을 유지하는 오버헤드가 상관이 없는 소규모 애플리케이션에 적합

 

 

 

 

웹소켓 사용할 때?

웹소켓은 단일 오픈 연결을 유지함으로써 실시간 데이터 전송, 지연 시간 감소, 리소스의 효율적인 사용

채팅 애플리케이션, 라이브 알림 또는 협업 도구와 같이 즉각적인 업데이트가 필요한 애플리케이션에 이상적

 

 

 

 

 

 

참고링크

- https://blog.awsfundamentals.com/polling-vs-websockets-with-amazon-api-gateway

 

728x90
반응형
그리드형