개발 일지/개발 공부

Polling보다 WebSocket이 무조건 좋은가?

osul_world 2022. 2. 12. 14:22
728x90

 

알림 리스트에 새로운 데이터가 추가되었을때 알림을 표시하는 기능을 만들어야한다.

 

폴링 기법과 웹 소켓중에 선택해서 만들어야하는데, 내 프로젝트엔 폴링기법이 적합한 선택일것이다.

 

먼저, 내 프로젝트 목적상 실시간 통신은 계륵과도 같다.

 

알림이 많은 환경도 아니고 실시간이 요구될 정도로 비지한 서비스가 아니다.

 

 

두가지 구현으로 가닥을 잡았다.

  1. 웹 소켓과 트리거를 병행해서 DB갱신시 알림을 양방향 통신으로 서버에서 클라이언트로 내려주면 된다.
  2. 폴링 기법으로 1~5분 사이마다 데이터 갱신 여부를 확인받고 갱신해준다.

 

왜 웹소켓이 아니라 폴링을 선택했나 (페이스북도 폴링을 사용?!)

실시간 서비스가 필요없는 지금 프로젝트 한정해서 폴링이 더 효율적일것 이라고 생각된다.

실제로, 페이스북도 친구 목록 온라인 상태 확인 기능1분단위 폴링 기법을 사용한다고 한다.

 

걱정되는것은 폴링기법의 주기가 짧아질수록 웹 소켓을 사용하는게 비용상 유리하다는 것이었는데

 

페이스북에서 1분단위로 폴링을 사용하는것을 봐선 1~5분정도 주기를 생각하고있던 내 프로젝트에는 폴링을 사용하는게 훨씬 낫다는 결론이다.

 

웹 소켓이 폴링보다 이후에 나왔다고 해서 맹목적인 사용을 해도되는 것은 아니다

 

어제나 그렇듯 개발은 주어진 환경에 맞는 최적의 방법을 찾아내는 것이다

 

Reference

폴링 vs 롱 폴링 vs 웹 소켓

https://ws-pace.tistory.com/104

 

 

HTTP vs. WebSocket 정리

HTTP 기본적으로 HTTP Protocol은 비연결성의 특징을 갖고 있으므로 실시간 통신을 하기에 적합하지 않은데, 이를 구현하는 방식 3가지를 알아보자 HTTP의 실시간 통신 방식 Polling Long Polling Streaming poil

ws-pace.tistory.com

 

 

728x90