Logo
내 게시판 만들기
파이썬

WebSocket — 실시간 양방향 통신

야옹이 | 2026.04.27 13:06:20
조회 15 | 추천 0

HTTP는 「요청 → 응답」 구조로, 서버가 먼저 클라이언트에 데이터를 보낼 수 없습니다.

실시간 채팅·알림·주식 시세 같은 「푸시」가 필요할 때 WebSocket을 씁니다.

한 번 연결해 두면 양방향으로 자유롭게 메시지를 주고받습니다.



프로토콜 흐름.

처음에 HTTP로 「Upgrade: websocket」 헤더로 요청 → 서버가 101 Switching Protocols 응답 → 그 후로는 TCP 연결 위에서 양방향 메시지.

ws://(평문)나 wss://(TLS)로 식별.



FastAPI 예시.

@app.websocket("/ws") async def ws(websocket: WebSocket): await websocket.accept(); while True: data = await websocket.receive_text(); await websocket.send_text(f"echo: {data}").

클라이언트와 메시지 핑퐁.



Django는 channels 패키지가 WebSocket 지원.

ASGI 기반으로 동작하며, 그룹·채널 추상화로 「채팅방의 모든 사용자에게 메시지 보내기」가 쉽습니다.



사용 사례 — 실시간 채팅(슬랙·디스코드), 라이브 시세(주식·코인), 협업 도구(구글 닥스 동시 편집), 멀티플레이어 게임, 실시간 알림.

폴링·롱폴링보다 효율적이지만 「상시 연결」이라 서버 자원 관리가 더 까다롭습니다.




한 줄 요약


WebSocket은 한 번 연결로 양방향 메시지를 주고받는 프로토콜입니다.

HTTP의 단방향 한계를 넘어 실시간 채팅·시세·알림에 사용합니다.




더 알아볼 것


- Server-Sent Events vs WebSocket

- Django Channels

- socket.io — 폴백 포함된 라이브러리

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
161 햇살이 26/04/27 12 0
160 다람쥐 26/04/27 18 0
159 구름이 26/04/27 17 0
158 햇살이 26/04/27 14 0
157 멍뭉이 26/04/27 14 0
156 토순이 26/04/27 14 0
155 야옹이 26/04/27 14 0
154 별님이 26/04/27 13 0
153 다람쥐 26/04/27 17 0
152 구름이 26/04/27 19 0
151 구름이 26/04/27 14 0
150 곰돌이 26/04/27 17 0
149 야옹이 26/04/27 20 0
148 다람쥐 26/04/27 15 0
147 구름이 26/04/27 16 0
146 다람쥐 26/04/27 40 0
145 구름이 26/04/27 15 0
144 별님이 26/04/27 13 0
143 곰돌이 26/04/27 14 0
142 너구리 26/04/27 16 0
141 야옹이 26/04/27 14 0
140 너구리 26/04/27 17 0
139 멍뭉이 26/04/27 14 0
138 야옹이 26/04/27 15 0
137 별님이 26/04/27 12 0
136 야옹이 26/04/27 15 0
135 멍뭉이 26/04/27 13 0
134 햇살이 26/04/27 14 0
133 햇살이 26/04/27 12 0
132 토순이 26/04/27 15 0
신고하기

신고 사유를 선택해 주세요.