<aside>
🎥
영상 자료
</aside>
Video Conferencing, Web Conferencing, Webinars, Screen Sharing
<aside>
👉
목차
</aside>
웹소켓이란 무엇인가?
웹소켓(WebSocket)은 클라이언트와 서버 간의 양방향 통신을 위한 프로토콜입니다. 기존의 HTTP 통신 방식과는 달리, 웹소켓은 연결이 한 번 성립되면 실시간으로 양쪽에서 자유롭게 데이터를 주고받을 수 있습니다.
- HTTP: 기존의 웹은 클라이언트가 서버에 요청(Request)을 보내고, 서버가 그 요청에 대한 응답(Response)을 보내는 구조입니다. 즉, 클라이언트가 요청하지 않으면 서버에서 데이터를 전송할 방법이 없습니다. 이를 단방향 통신이라고 부릅니다.
- WebSocket: 웹소켓은 클라이언트와 서버 간의 지속적인 연결을 유지하며 양방향으로 데이터를 자유롭게 교환할 수 있습니다. 한 번 연결이 성립되면, 클라이언트가 요청하지 않더라도 서버에서 데이터를 푸시(Push)할 수 있어 매우 빠른 실시간 통신이 가능합니다.
A. 웹소켓의 장점
- 양방향 통신: 클라이언트와 서버 간에 언제든 데이터를 주고받을 수 있습니다.
- 낮은 오버헤드: HTTP와 달리 요청-응답을 반복하지 않기 때문에 네트워크 자원을 덜 소모합니다.
- 실시간 데이터 교환: 주식 차트, 온라인 게임, 실시간 채팅 등에서 매우 유용합니다.
- 유지되는 연결: 연결이 지속되므로, 데이터 전송 속도가 빠르고 연결에 대한 부담이 적습니다.
B. 웹소켓 동작 방식
- 핸드셰이크: 웹소켓은 HTTP 요청을 통해 서버에 연결을 요청합니다. 서버가 이를 승인하면, HTTP 연결은 웹소켓 연결로 전환됩니다.
- 연결 유지: 연결이 성립되면 클라이언트와 서버는 지속적인 연결을 통해 데이터를 교환할 수 있습니다.
- 양방향 데이터 전송: 클라이언트나 서버는 언제든지 데이터를 보낼 수 있습니다. 이는 이벤트 기반으로 이루어집니다.
- 연결 종료: 더 이상 통신할 필요가 없을 때 연결을 종료할 수 있습니다. 이때는 양쪽에서 연결을 끊을 수 있습니다.