브라우저 / 애플리케이션

HTML5 웹소켓, “웹 애플리케이션 통신 속도 높인다”

Joab Jackson | IDG News Service 2011.11.04
웹을 통해 데이터를 전송하는데 사용되는 전통적인 통신 프로토콜 HTTP는 자주 신호를 주고 받는 특성 때문에 그다지 효율적이지 않다. 이제 웹 애플리케이션 전문가들은 웹소켓(WebSocket)이라 불리는 HTML5 관련 표준을 통해 네트워킹 과부하를 줄이고, 웹 애플리케이션의 반응성을 높일 수 있을 것이라고 주장한다.
 
"HTTP의 한계 때문에 제약을 받지 않는다고 가정할 때, 어떤 종류의 진정한 대화형 웹 애플리케이션을 개발할 것인가?" 지난 주 개최된 HTML5 라이브 컨퍼런스에 참석한 개발자들과 관리자들로 가득 찬 강당의 무대에서 존 팔로우즈가 다소 과장된 질문을 던졌다. 팔로우즈는 메시징 소프트웨어 전문업체인 카징(Kaazing)의 공동 창업자이자 CTO이다.
 
W3C의 웹소켓을 활용하여 현재 HTTP에 요구되는 모든 요건을 충족시키고도 남을만한 차세대의 "지연시간이 없는 " 새로운 웹 애플리케이션을 개발할 수 있을 것이라고 팔로우즈는 주장했다.
 
웹 소켓의 속도를 보여주기 위해서 팔로우즈는 1990년에 큰 인기를 끌었던 컴퓨터 게임, 퀘이크2(Quake II)로 시연을 진행했다. 이 게임은 구글 엔지니어들이 서버와 클라이언트를 연결하는 웹 소켓을 이용해 게임이 완전히 브라우저 상에서 구동되도록 포팅한 것이다. 팔로우즈는 이 게임을 HTTP를 통해 온라인에서 구동하는 것을 불가능하다고 주장했다.
 
또한 팔로우즈는 매 초마다 10개 주식의 주가가 업데이트되는 주식 시세 표시기를 이용해 실시간 업데이트 성능을 시연하기도 했다.
 
1991년에 만들어진 HTTP(Hypertext Transfer Protocol)은 현재 대부분의 웹 트래픽을 처리하는 데 사용되고 있다. 기본적을 문서 전송을 위해 개발된 탓에 현대의 웹 애플리케이션에는 적합하지 않다고 팔로우즈는 주장했다.
 
HTTP의 가장 큰 단점은 반이중(Half Duplex) 방식이기 때문에 한 번에 서버에서 클라이언트로 통신하거나 클라이언트에서 서버로 통신하는 단방향 통신만이 가능하다는 것이다. 클라이언트와 서버 간의 통신은 수백ms만에 이루어지기 때문에 이를 인지하지 못할 것이다. 하지만 웹 애플리케이션이 보내고 받는 데이터의 양이 점차 증가하면서 단방향 통신 때문에 애플리케이션에 눈에 띄는 지연시간이 발생하게 된다.
 
HTTP가 웹 애플리케이션 시대에 어울리지 않는 또 다른 이유는 HTTP 패킷에 대역폭을 소비하고 더 많은 작업 처리량을 요구하는 많은 양의 헤더(Header) 데이터가 로드된다는 점이다. HTTP는 소속이 없기 때문에 클라이언트와 서버를 연결하는 전용 브리지(Bridge)가 없다. 따라서 이 둘 사이의 각 패킷 메시지는 쿠키같은 교환을 위한 모든 세션 정보를 포함해야 한다.
 
HTTP 대신에 사용되는 웹소켓은 이런 교환을 간소화한다고 팔로우즈는 말했다. HTTP는 800바이트에서 수천 KB에 이르는 헤더 정보를 갖고 있는 반면, 웹소켓 패킷은 유용한 헤더 정보를 수 바이트 수준으로 압축할 수 있다.
 
HTTP처럼 웹소켓도 TCP(Transmission Control Protocol)을 근본적인 전송 프로토콜로 사용한다. 클라이언트와 서버는 기본적인 통신을 마친 후 HTTP에서 웹소켓 프로토콜로 전환한다. 웹소켓은 웹 표준과 완전히 호환되기 때문에 HTTP 패킷이 지나다닐 수 있는 기업 방화벽, 프록시, 라우터 등을 모두 지나다닐 수 있다. 개발자들은 자바스크립트 API를 통해서 웹 소켓을 개발할 수 있다.
 
웹소켓의 또 다른 이점으로는 RMI(Remote Method Invocation), JMS(Java Message Service), XMPP(Extensible Messaging and Presence Protocol) 등 인터넷 채팅에 사용되는 백엔드형 TCP 기반의 풀 듀플렉스(Full Duplex)를 지원하는 메시징 시스템과 더 자연스럽게 매치된다는 점이 있다. 팔로우즈는 “HTTP를 이런 프로토콜에 연결함으로써 발생한 비일치의 문제 때문에 많은 기업들이 상당한 시간을 들여 이를 해결해야 했다"고 설명했다.
 
크롬, 사파리, 파이어폭스, 오페라 등 현존하는 대부분의 웹 브라우저는 웹소켓을 지원한다. 마이크로소프트는 현재 개발중인 IE 10에 웹소켓 지원을 내장했다. 기존 버전을 지원하기 위해서 카징은 웹소켓의 기능을 에뮬레이트(Emulate)하는 기업용 서버 소프트웨어를 제공하고 있다.
 
팔로우즈는 웹소켓이 HTTP를 대체하기 위해서 설계된 것이 아니며, 대신에 HTTP가 적합하지 않은 메시징, 트랜잭션, 빈번하게 업데이트되는 퍼블리싱 및 구독형 애플리케이션 등 트래픽은 높고 지연시간은 낮은 특정 환경에서 사용되어야 한다고 경고했다.
 
행사에 참석한 한 개발자는 자신이 속한 기업이 고객 업데이트를 가속화하는 방법의 일환으로 웹소켓에 투자하고 있다고 말했다. 그는 웹소켓의 예상되는 혜택에 대해서 알고 있었지만, 웹소켓이 JMS같은 기업용 메시징 프로토콜에 손쉽게 사용될 수 있다는 사실을 놀라워했다.  editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.