알버트의 개발하는 블로그
[Spring] 웹소켓이란?? 본문
1. 웹소켓이란?
- 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나이다.
- 전이중 통신을 가능하게 해준다.
- W3C와 IETF에 의해 자리잡은 표준 프로토콜 중 하나이다.
- 현재 HTML5 환경에서 많이 사용된다.
2. 웹 소켓의 특징
- 양방향 통신(Full-Duplex)
- 데이터 송수신을 동시에 처리할 수 있는 통신 방법
- 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받는다.
- 통상적인 HTTP 통신은 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신
3. 실시간 네트워킹(Real Time-Networking)
- 웹 환경에서 연속된 데이터를 빠르게 노출한다.
- 여러 단말기에 데이터를 빠르게 교환한다.
- 예를 들면 채팅, 주식, 비디오 데이터와 같이 실시간 처리가 필요한 프로세스들을 웹소켓으로 사용할 수 있다.
4. 웹 소켓 이전의 비슷한 기술
- Polling : 일정 주기로 요청을 송신하는 것.
실시간 네트워킹에서는 언제 통신이 발생할지 예측이 불가능하므로 불필요한 요청과 연결을 생성한다.
즉 바뀐게 없는데도 요청을 계속하고 응답도 계속 한다.
- Long Polling
Polling의 단점을 해소하기 위해서 서버에서 조금 더 대기를 하면서, 이벤트가 발생할 때 응답을 하는 방식
응답을 받으면 끊고 다시 재요청한다. 결국 많은 양의 메시지가 쏟아지면 Polling과 동일해진다.
'웹개발 > Spring' 카테고리의 다른 글
[Spring] IoC(제어의 역전)와 DI(의존성 주입)에 대해서 (0) | 2022.03.31 |
---|---|
[Spring] 스프링 부트를 이용한 웹소켓 채팅프로그램 (0) | 2022.03.16 |
자바 커스텀 어노테이션에 대해서 (custom annotation) (0) | 2022.03.04 |
자바 어노테이션에 대해서 (annotation) (0) | 2022.03.04 |
[Spring] 스프링(Spring) 이란? (0) | 2022.01.28 |