웹 통신(HTTP)과 온라인 통신(실시간)의 기본 원리와 연결 모델 비교,
연결·세션·채널의 의미 정리
WebSocket·SSE·Long Polling 등 방식별 특징과 데이터 포맷(JSON·Binary·Protobuf) 사용 가이드
연결 유지에 따른 비용·스케일·보안 이슈 및 설계 시 고려사항 요약
목차
- 웹 통신과 온라인 통신의 비교
- 웹 콩신과 온라인 통신의 차이
- 온라인 통신
- 정의
- 특징
- 기본원리
- 온라인 통신에서의 "연결"
- 주고 받는 데이터 형태
- 온라인 통신에서의 메시지
- 온라인 통신의 단점과 비용
웹 통신(HTTP 기반)과 온라인 통신(실시간 통신)의 비교
| 구분 |
웹 통신 (HTTP 기반) |
온라인 통신 (실시간 통신) |
| 통신 방식 |
요청(Request) → 응답(Response) |
양방향(Bidirectional) 지속 연결 |
| 연결 상태 |
요청마다 연결 생성/종료 |
한 번 연결 후 지속 유지 |
| 데이터 흐름 |
클라이언트 주도 |
서버·클라이언트 모두 가능 |
| 실시간성 |
낮음 |
높음 |
| 지연 시간 |
상대적으로 큼 |
매우 낮음 |
| 주요 프로토콜 |
HTTP, HTTPS |
WebSocket, TCP, UDP |
| 서버 부담 |
요청 빈도 증가 시 큼 |
연결 수 관리 부담 |
| 사용 예시 |
게시판, 로그인, 조회 API |
채팅, 게임, 주식 시세, 알림 |
웹 통신(오프라인 통신) 과 온라인 통신의 차이
| 항목 |
설명 |
| 웹 통신 |
"필요할 때 요청하고 응답을 받는 구조" |
| 온라인 통신 |
"항상 연결된 상태에서 즉시 주고받는 구조" |
| 항목 |
오프라인 통신(HTTP) |
온라인 통신 |
| 연결 |
요청마다 생성/종료 |
연결 유지 |
| 주도권 |
클라이언트 |
서버·클라이언트 |
| 데이터 흐름 |
단방향 요청 |
양방향 또는 서버 주도 |
| 실시간성 |
낮음 |
높음 |
| 대표 기술 |
REST API |
WebSocket, SSE, TCP |
- 웹 통신 - 정적인 정보 요청에 적합
- 온라인 통신 - 즉각적인 상태 변화 공유에 적합
온라인 통신
- “연결을 유지하면서 상태와 이벤트를 실시간으로 공유하는 통신”
정의
- 연결을 유지한 상태에서 데이터를 지속적으로 주고 받는 통신
- “항상 연결됨(Connected)”
- 오프라인/요청형 통신(HTTP 요청-응답)과 대조적
특징
- 연결 유지 - 한 번 연결되면 끊기 전까지 유지
- 실시간성 - 데이터 지연이 매우 낮음
- 상태 기반 - 연결 자체가 상태(state)를 가짐
- 이벤트 중심 - 데이터 변경이 즉시 전달됨
| 요소 |
의미 |
| 연결 |
끊기지 않고 유지되는 통로 |
| 상태 |
연결에 귀속된 정보 |
| 이벤트 |
상태 변화 알림 |
| 스트림 |
이벤트의 연속 |
기본 원리
- 계속 유지되는 일련의 과정
- 연결 요청 (Handshake)
- 연결 수립 (Session 생성)
- 데이터 송 · 수신 반복
- 연결 종료 (Close)
온라인 통신에서의 “연결”
- 연결 자체가 리소스
- 연결 (Connection) : 서로가 살아있음을 인지하는 논리적 통로
- 세션 (Session) : 연결에 부여된 상태 정보
- 채널 (Channel) : 실제 데이터가 흐르는 경로
온라인 통신 방식 (웹 기준)
| 방식 |
설명 |
방향 |
| WebSocket |
전용 프로토콜 |
양방향 |
| SSE |
HTTP 스트림 |
서버 → 클라이언트 |
| Long Polling |
요청 유지 |
서버 → 클라이언트 |
| TCP Socket |
저수준 |
양방향 |
주고 받는 데이터 형태
논리적 데이터 형태
| 형태 |
설명 |
예시 |
| 이벤트 |
상태 변화 알림 |
체결 발생 |
| 스트림 |
연속 데이터 |
가격 흐름 |
| 명령 |
요청/제어 |
구독/해제 |
| 상태 |
현재 값 |
잔고, 포지션 |
물리적 데이터 포맷
| 포맷 |
특징 |
사용 사례 |
| JSON |
가독성 좋음 |
채팅, 알림 |
| Binary |
빠름/압축 |
금융, 게임 |
| Protobuf |
구조화/고속 |
대규모 실시간 |
| Text Stream |
단순 |
SSE |
- 실시간, 대량 일수록 Binary 비중이 높아짐
온라인 통신에서의 메시지
- 구성
- Header : 타입, 길이, 메타정보
- Body : 실제 데이터
- Qpcode : 메시지 종류 (text/binary/ping)
- 예시 (개념)
- { type: "trade", symbol: "AAPL", price: 182.3, volume: 100 }
온라인 통신의 단점과 비용
- 서버 부하 : 연결 수만큼 리소스 사용
- 복잡성 : 상태/에러 처리 필요
- 보안 : 장시간 연결 관리
- 스케일링 : 수평 확장 어려움