웹소켓(WebSockets) 작동 원리: 실시간 연결 아키텍처와 라이프사이클의 완벽 이해
초기 웹 환경에서 브라우저는 단순한 문서 뷰어에 불과했습니다. 페이지를 요청하면 서버가 이를 렌더링하고 연결을 종료했습니다. 이 요청-응답 주기는 HTTP (Hypertext Transfer Protocol) 의 핵심입니다.
하지만 웹 애플리케이션이 실시간 채팅, 금융 데이터 실시간 표시, 공동 문서 편집, 멀티플레이어 게임 등 다채롭고 상호작용적인 경험으로 발전하면서 기존의 HTTP 모델은 한계를 보이기 시작했습니다.
실시간 업데이트를 받기 위해 초기 개발자들은 임시방편에 의존했습니다.
단기 폴링 (Short Polling): 브라우저가 몇 초마다 서버에 HTTP 요청을 보내 새 데이터가 있는지 묻습니다. 이는 엄청난 헤더 오버헤드를 발생시키고 서버 리소스를 낭비합니다. 장기 폴링 (Long Polling / Comet): 브라우저가 요청을 보내면 서버는 새 데이터가 준비될 때까지 연결을 열어둡니다. 데이터가 전송되면 연결이 끊어지고 브라우저는 즉시 새 요청을 보냅니다. 관리하기 복잡하고 연결 연결 설정 시의 오버헤드가 여전히 큽니다. **웹소켓(WebSockets)**은 단일 TCP 연결에서 지속적이고 양방향인 전이중(Full-Duplex) 통신을 위한 표준화된 프로토콜을 도입하여 이러한 한계를 완벽하게 해결했습니다.
WebSockets
웹개발
네트워크
실시간
보안