알버트의 개발하는 블로그

[Spring] 웹소켓이란?? 본문

웹개발/Spring

[Spring] 웹소켓이란??

알버트 2022. 3. 16. 17:01

1. 웹소켓이란?
 - 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나이다.

 - 전이중 통신을 가능하게 해준다.
 - W3C와 IETF에 의해 자리잡은 표준 프로토콜 중 하나이다.
 - 현재 HTML5 환경에서 많이 사용된다.

 


2. 웹 소켓의 특징
 - 양방향 통신(Full-Duplex)
 - 데이터 송수신을 동시에 처리할 수 있는 통신 방법
 - 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받는다.
 - 통상적인 HTTP 통신은 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신
 


3. 실시간 네트워킹(Real Time-Networking)
 - 웹 환경에서 연속된 데이터를 빠르게 노출한다.
 - 여러 단말기에 데이터를 빠르게 교환한다.
 - 예를 들면 채팅, 주식, 비디오 데이터와 같이 실시간 처리가 필요한 프로세스들을 웹소켓으로 사용할 수 있다.

 

4. 웹 소켓 이전의 비슷한 기술
 - Polling : 일정 주기로 요청을 송신하는 것.
   실시간 네트워킹에서는 언제 통신이 발생할지 예측이 불가능하므로 불필요한 요청과 연결을 생성한다.
   즉 바뀐게 없는데도 요청을 계속하고 응답도 계속 한다.
 - Long Polling
   Polling의 단점을 해소하기 위해서 서버에서 조금 더 대기를 하면서, 이벤트가 발생할 때 응답을 하는 방식
   응답을 받으면 끊고 다시 재요청한다. 결국 많은 양의 메시지가 쏟아지면 Polling과 동일해진다.