[개념 콕] 웹 소켓

내일배움캠프 수료생이 개발에 꼭 필요한 핵심 개념만 콕 집어 드립니다.
May 31, 2024
[개념 콕] 웹 소켓
✍🏼
개발을 시작하시는 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 4개월 동안 배운 엄선된 핵심 개념을 직접 정리해서 알려 드립니다. 공부하다 막히거나 헷갈리는 개념이 있다면 개념 콕으로 정리해보세요.
 

웹 소켓(Web Socket)이란?

웹 소켓은 웹 어플리케이션에서 클라이언트와 서버 간 양방향 통신을 가능하게 하는 프로토콜입니다. 기존의 HTTP를 사용한 요청-응답 방식과 달리, 연결이 유지되는 동안에는 실시간으로 데이터를 주고 받을 수 있어 다양한 어플리케이션에 유용하게 사용됩니다.
 

웹 소켓 특징

양방향 통신

클라이언트와 서버가 서로 실시간으로 데이터를 주고받을 수 있습니다.

지속적 연결

초기 핸드셰이크 후 연결이 유지되며, 추가적인 핸드셰이크 없이 데이터를 주고받습니다.

낮은 오버헤드

HTTP의 반복 전송이 없기 때문에 네트워크 오버헤드가 적습니다.

메시지 기반 통신

데이터를 메시지 단위로 전송하며, 메시지 경계를 명확히 합니다.

HTTP와 호환

초기 연결 설정이 HTTP 핸드셰이크를 통해 이루어지며, 기존 HTTP 인프라를 활용할 수 있습니다.

실시간 데이터 전송

게임, 채팅, 주식 거래 등 실시간 데이터 전송이 필요한 어플리케이션에 적합합니다.
 

웹 소켓 장점

실시간 통신

실시간 데이터를 필요로 하는 어플리케이션에서 웹소켓은 뛰어난 성능을 발휘합니다.

효율성

지속적인 연결로 인해 HTTP 오버헤드가 감소하며, 네트워크 자원의 효율적인 사용이 가능합니다.

양방향 통신

클라이언와 서버 모두 데이터를 주고 받을 수 있어 인터랙티브 어플리케이션 구현이 가능합니다.
 

웹 소켓 단점

보안

지속적으로 연결 상태를 유지하므로 보안에 취약할 수 있습니다.

네트워크 환경 의존성

프록시나 방화벽이 웹소켓 트래픽을 차단할 수 있습니다.

서버 부하

지속적인 연결을 유지하기 때문에 많은 클라이언트가 동시에 연결되면 서버에 부하가 걸릴 수 있습니다. 특히 서버 리소스가 제한적인 환경에서 문제가 될 수 있습니다.
 

웹 소켓 핸드셰이크 과정

웹소켓 연결은 초기 HTTP 요청을 통해 설정되며, 이후 프로토콜이 업그레이드되어 웹소켓 통신으로 전환됩니다.
 

1단계. 클라이언트 요청

클라이언트는 HTTP GET 요청을 보내 웹소켓 연결을 요청합니다. 요청 헤더에는 웹소켓 프로토콜로 업그레이드하기 위한 정보가 포함됩니다.
GET /chat HTTP/1.1 Host: sparta Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: 7ZWc7J287Ijs Sec-WebSocket-Version: 13
 

2단계. 서버 응답

서버가 클라이언트의 요청을 수락하면 HTTP 101 Switching Protocols 응답을 보냅니다. 이 응답은 연결을 웹소켓 프로토콜로 업그레이드하겠다는 의미를 가집니다.
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: Qne0r+O3ojSAJCrKxQaSgXgHEDo=
 

3단계. 연결 완료

서버가 응답한 후, 클라이언트와 서버 간의 연결은 HTTP에서 웹 소켓 프로토콜로 업그레이드 되고, 지속적인 양방향 통신이 시작됩니다.
 
 

내일배움캠프는 개발에 필요한 핵심만 배웁니다

지금까지 꼭 필요한 개발 지식에 대해 알아보았습니다. 내일배움캠프에서는 전문가들이 선별한 핵심 개발 지식으로 개발 공부도, 취업도 보다 효율적으로 할 수 있는데요. 국내 유수의 IT기업 출신 튜터님들과 실습 위주의 독보적인 커리큘럼으로 개발자 취업을 체계적으로 준비해보세요. 내일배움캠프 4개월, 여러분 인생의 가장 큰 터닝 포인트입니다.
 
 
 
CREDIT
글 | 박상신 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
 
 

취업 준비, 어디서부터 시작해야 할지 모르겠다면?

 
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
 
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.
 
다음 링크에 이메일을 입력하시면 메일로 1:1 커리어 상담권과 취준 자료집을 보내드릴게요.
 
 
 
Share article
Subscribe to our newsletter

내일배움캠프 블로그