Day 8 · 4/5
🌱 기초 네트워크

WebSocket은 뭔가요?

쉽게 이해하기

일반적인 HTTP는 편지를 주고받는 것과 비슷해요. 질문할 때마다 편지를 보내고, 답장을 받으면 연결이 끊어지죠. 반면 WebSocket은 전화 통화처럼 한 번 연결하면 계속 대화를 이어갈 수 있어요. 서로 언제든지 말을 걸 수 있는 실시간 통신이에요.

핵심 정리

서버와 클라이언트가 계속 연결된 상태로 실시간으로 데이터를 주고받을 수 있는 통신 방식이에요.

자세히 알아보기

WebSocket은 클라이언트와 서버 사이에 지속적인 연결을 유지하면서 실시간으로 데이터를 주고받을 수 있는 프로토콜이에요. 일반적인 HTTP는 요청-응답 방식이라 클라이언트가 요청해야만 서버가 응답하고, 그 즉시 연결이 끊어져요. 하지만 WebSocket은 한 번 연결하면 계속 열려 있어서 양방향 통신이 가능해요. 어디에 사용할까요? 채팅 앱이 대표적이에요. 카카오톡이나 슬랙 같은 메신저는 메시지가 오면 즉시 화면에 표시되어야 하잖아요. HTTP로 구현하면 계속 '새 메시지 있어?'라고 물어봐야 하지만(폴링 방식), WebSocket을 쓰면 서버가 메시지가 올 때마다 바로 알려줄 수 있어요. 실시간 주식 차트, 온라인 게임, 협업 도구(구글 독스처럼 여러 명이 동시 편집), 라이브 스포츠 중계 점수판 등도 WebSocket을 많이 사용해요. 특히 여러 사용자가 동시에 작업하는 서비스에서는 거의 필수예요. 기술적으로는 처음에 HTTP로 연결을 시작한 다음, '핸드셰이크'를 통해 WebSocket 프로토콜로 업그레이드해요. 그 후로는 ws:// 또는 wss:// (보안 버전) 프로토콜로 통신하죠. Socket.io 같은 라이브러리를 쓰면 WebSocket을 쉽게 구현할 수 있어요. 다만 연결을 계속 유지하니까 서버 리소스를 더 많이 쓰는 단점도 있어요.