카테고리 없음

웹소켓

404NotFoundMe 2025. 6. 20. 10:43

 1. 웹소켓이란?

웹소켓(WebSocket)은 클라이언트와 서버가 지속적으로 연결을 유지하면서 양방향 통신(Full-Duplex)을 할 수 있도록 해주는 네트워크 프로토콜입니다.

기존 HTTP 통신과는 달리 "요청-응답"이 아니라 "지속 연결"을 기반으로 동작해요.


 2. 기존 HTTP와의 차이

항목                     HTTP                                                                 WebSocket
연결 방식 요청-응답 후 끊김 (비연결 지향) 연결을 맺고 계속 유지 (연결 지향)
통신 방향 단방향 (클라이언트 → 서버) 양방향 (서버 ↔ 클라이언트)
사용 목적 문서 전송, API 통신 실시간 데이터 통신 (채팅, 주식 시세 등)
오버헤드 매 요청마다 헤더 포함 연결 이후엔 오버헤드 없음
 

 3. 웹소켓의 동작 방식

  1. HTTP 연결 요청
    클라이언트가 일반적인 HTTP 요청을 보내되, Upgrade: websocket 헤더를 포함시킴 → 업그레이드 요청
  2. 프로토콜 업그레이드
    서버가 WebSocket 요청을 수락하면, 프로토콜이 HTTP → WebSocket으로 전환됨
  3. 지속적인 통신
    연결이 유지되며 서버와 클라이언트가 서로 실시간으로 메시지를 주고받을 수 있음
  4. 연결 종료
    명시적으로 연결을 닫기 전까지는 계속 연결이 유지됨

4. 웹소켓의 장점

  • 실시간 데이터 전송 (지연 최소화)
  • 서버 → 클라이언트 푸시 가능
  • REST 방식 대비 네트워크 트래픽 감소 (헤더 반복 없음)
  • 연결 유지로 성능 향상

 5. 웹소켓의 단점

  • 연결 상태 관리가 필요 (끊김 감지 등)
  • 일반적인 HTTP 서버와 다르게 별도 설정 필요
  • 브라우저/네트워크 환경에 따라 방화벽 등 제약 가능

 6. 언제 사용하나?

  • 실시간 채팅
  • 실시간 주식/코인 시세
  • 실시간 알림/푸시 시스템
  • 온라인 게임, 협업 앱 등

 요약

  • WebSocket은 실시간 양방향 통신을 위한 프로토콜
  • 연결을 유지하면서 지속적인 데이터 주고받기 가능
  • 실시간 서비스 구현에 적합 (채팅, 시세, 게임 등)