#웹소켓 정의
- 컴퓨터 네트워크용 통신 규약
- (위키백과) 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜
* 프로토콜
→통신 프로토콜 또는 통신규약: 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계
* TCP(Transmission Control Protocol, 전송조종규약): 인터넷 프로토콜 스위트(IP)의 핵심 프로토콜
→TCP/IP라는 명칭으로 널리 불림
→[근거리 통신망, 인트라넷, 인터넷]에 연결된 프로그램 간에 일련의 옥탯을 안정적이며 순서대로 에러없이 교환 가능
-옥텟(octet)(=바이트): 컴퓨팅에서 8개의 비트가 한데 모인 것
→ 전송 계층에 위치
-전송 계층(Transport layer): 계층 구조의 네트워크 구성요소와 프로토콜 내 송신자&수신자를 연결하는 통신 서비스 제공
* 전이중 통신
→ 이중통신(duplex) 또는 상방향 통신: 두 지점 사이에서 정보를 주고 받는 전자 통신 시스템
# WebSocket 특징
- 접속 확립 → HTTP But 이후 통신 → WebSocket
- HEADER가 작아 OVERHEAD 적음
- 데이터 송신과 수신에 각각 커넥션을 맺을 필요 없다
# WebSocket 이전 실시간 통신 → (HTTP request) + 기술
- Polling
* 클라이언트가 HTTP request를 서버로 계속 보내서 이벤트 내용을 전달받는 방식
- Long Polling
* 1. 클라이언트에서 서버로 HTTP request 보내고 기다린다. → 2. 서버에서 전달할 이벤트가 있다면 response 메시지 전달 후 연결 종료 (1번 2번 계속 반복)
- Streaming
* 1. 클라이언트에서 서버로 HTTP request 보내고 기다린다. → 2. 서버에서 이벤트를 전달할 때 해당 요청을 끊지 않고 필요한 메시지만 보내기(flush) 반복
# 웹소켓을 사용하는 이유
- 실시간 양방향 데이터 통신
- 많은 수의 동시 접속자 수용 시
- 브라우저에서 TCP기반 통신으로 확장 시
* 브라우저의 경우 HTTP통신 한 번 데이터 주고 받으면 끝이지만 웹소켓은 해당 페이지의JS에서 반복적으로 실행, 통로가 커넥트 되어있다고 생각하면 된다
- SOA로 확장시
* Service Oriented Architecture: 대규모 컴퓨터 시스템 구축 시 소프트웨어 기능을 서비스로 판단, 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론
'Spring' 카테고리의 다른 글
정리 #1 (0) | 2018.09.30 |
---|---|
"쿠키를 이해하려면 세션부터 알아야 한다?" (0) | 2018.09.11 |
"DTO와 VO의 차이는?" (0) | 2018.09.11 |
"Spring @Around 이해할 수 있나요?" (0) | 2018.09.07 |
"Spring DAO와 Service 메소드 명은 왜 다를까?" (0) | 2018.09.06 |