웹 소켓 프로토콜
하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜.
TCP 접속이란, 클라이언트 소켓 주소와 서버 소켓 주소를 연결시켜 클라이언트에 TCP 소켓을 생성시키는 과정으로 처음에 설정으로 클라이언트와 서버가 연결되고 TCP 방식으로 데이터를 주고받을 수 있게 된 상태로 이해했다.
여기서 중요한 점은 전이중 통신(Full Duplex) 채널을 제공한다는 점.
양방향 통신으로 연결된 두 장치에서 같은 채널을 동시에 사용할 수 있어 실시간으로 데이터를 보내고 받을 수 있다.
위 말은 어렵지만 결국은 웹 소켓은 클라이언트와 서버를 연결하고 실시간으로 통신이 가능하게 해주는 통신 방식.
HTTP 프로토콜의 차이
클라이언트와 서버의 통신은 일반적으로 HTTP 프로토콜을 이용한다. 하지만 HTTP는 단방향 통신으로 클라이언트에서 서버에 요청을 보내면 해당 요청을 처리하고 서버에서 클라이언트로 응답을 하는 방식으로 매번 요청을 보내야 한다.
웹 소켓을 사용하는 이유
클라이언트와 서버가 연결이 되어 있기 때문에 HTTP처럼 요청을 보내지 않아도 데이터를 주고받을 수 있다.
또한, 웹 소켓은 상태 프로토콜로 최초 접속 시에는 HTTP 프로토콜로 들어와 연결된 이후에는 채널이 맺어지고 HTTP 프로토콜이 웹 소켓 프로토콜로 변경되어 커넥션 비용을 절감할 수 있다.
대표적으로 채팅 애플리케이션, SNS, 노션, 구글 Docs, 화상회의 등에서 많이 사용되고 있다.
웹 소켓의 단점
- 디버깅이 어렵다.
- 비정상적으로 연결이 끊겼을 경우 대응이 명확하게 나오지 않아 에러를 잡는데 어려움이 발생한다.
- 비용
- 소켓 연결을 유지하는데 추가적인 비용이 발생한다.
- CPU 과부하
- 서버 측에서 보낼 내용이 없어도 클라이언트는 지속적으로 연결을 확인을 해야 한다.
- 지속적인 연결과 해제는 handshake가 필요하기 때문에 서버에 부담을 준다.
- 트래픽이 많아지면 많아질수록 부담이 커진다.
- 웹 소켓 지원 여부
- 브라우저 중 버전에 따라 지원을 안 하는 경우도 있다.
'생각정리 > 기타' 카테고리의 다른 글
공채에 대한 좋은 경험 (1) | 2024.02.24 |
---|---|
[수학] 좌표를 가지고 구할 수 있는 공식 (0) | 2024.02.06 |
소프트웨어 아키텍처의 변화 (0) | 2024.01.31 |
[Excel] 중복된 항목 제거 (0) | 2022.05.06 |
[Excel] 그룹 별 번호 매기기 (종류별 따로 번호 매기기) (0) | 2022.05.06 |