데브허브 | DEVHUB | HTTP vs WebSockets: Performance (Latency - CPU - Memory - Network)HTTP vs WebSockets: Performance (Latency - CPU - Memory - Network)
- HTTP는 요청-응답 모델로, 각 요청마다 연결 설정 및 TLS 핸드셰이크가 필요하며 반복적인 헤더 전송으로 오버헤드가 큽니다. 🔄
- WebSockets는 단 한 번의 연결 설정 후 지속적인 양방향(full-duplex) 통신을 지원하며, 실시간 데이터 스트리밍 및 효율적인 요청-응답 모델에 적합합니다. ⚡
- HTTP는 매 요청마다 헤더를 포함하여 데이터를 주고받으므로 네트워크 사용량이 WebSockets에 비해 훨씬 많습니다. 📈
- WebSockets는 초기 핸드셰이크 이후에는 JSON 페이로드만 전송하여 네트워크 트래픽을 크게 줄여 클라우드 비용 절감에 기여할 수 있습니다. 💸
- 지연 시간(Latency) 측면에서 WebSockets가 HTTP보다 약간 더 효율적이지만, 네트워크 환경에서는 그 차이가 예상만큼 크지 않을 수 있습니다. ⏱️
- 초당 요청 처리량(RPS), CPU 및 메모리 사용량에서는 두 프로토콜 간에 큰 차이가 발견되지 않았습니다. 💻
- 암호화폐 거래소와 같은 고효율이 요구되는 환경에서는 WebSockets를 사용하여 주문을 제출하는 경우가 많습니다. 💹
- 벤치마크는 AWS EKS 환경에서 동일한 uWebSockets C++ 프레임워크를 사용하여 공정한 성능 비교를 수행했습니다. 🧪