사용자 삽입 이미지


작년 12월에, 윈도우 비스타 세미나 자리에서 Microsoft 직원으로부터 "저희 마이크로소프트는 ActiveX 기술을 권장하지 않습니다. 웹표준을 따르세요"라는 재미있는 :-) 말을 들었습니다. (저렇게 입장이 바뀌는것 자체가 문제는 아닙니다. 개인적으로도 그편이 바람직하다고 생각하구요. 어쨌거나 쇼킹하더군요)

하지만 ActiveX가 태동하게 된데는 이유가 있습니다. 때때로 HTML 문서 브라우징으로는 해결할 수 없는 task를 웹 위에서 별도의 애플리케이션을 손쉽게 구동함으로써 얻을 수 있는 이점이 있기 때문이죠. 이건 ActiveX뿐만 아니라 자바 애플릿이나 웹스타트, 플래쉬 등 수많은 기술들이 이뤄내고자 했던 목표이기도 합니다.

어쨌든, 회사에서 담당하고 있는 서비스에서 어쩔수 없이 ActiveX를 사용한 바 있어 요새 그 대안에 대해 고민하고 있습니다. 처음에는 Firefox 플러그인을 별도로 만들면 된다고 생각했는데, 이건 제대로 된 답은 아닌것 같더군요. (결국 지원하는 브라우저 갯수가 늘어나는 것 뿐이니 말입니다. 몇년뒤에 또다른 브라우저가 뜨게 되면 그때 가서 또 추가?)

그러다가 요새는 BitTorrent나 edonkey에서 파생된 eMule 프로젝트에서 사용하고 있는 것과 같은 MIME/프로토콜 핸들링 방식에 고민이 닿고 있습니다. 아시다시피 이들은 다음과 같은 방식을 사용하죠. (Sun의 자바 웹스타트도 마찬가지 방법을 사용합니다)
  • BitTorrent
    • MIME 타입 핸들러 사용
    • HTTP Response의 Content-Type이 application/x-bittorrent일 경우 동작
    • 샘플 URL: (Content-Type을 보세요)
      http://www.bittorrent.com/users/trymedia/torrents/90023140e880b450678b3fe980e2bd6d0f50bb28/download.html
  • eMule
    • URL 프로토콜 핸들러 사용
    • ed2k://foobarsomething 과 같은 형태의 URL에 대해 동작
    • 샘플 URL:
      ed2k://|file|wesnoth-1.2-windows.[content.emule-project.net].exe|61391981|338108DE9C433A663F7D651B0C741038|/|h=62IRAJ7ICE6BKZLFRO7JLAUEVRPWAHF3|/
URL 핸들러는 사실 브라우저와 같은 레벨에 있는 애플리케이션입니다. (브라우저는 기본적으로 HTTP 프로토콜과 text/html, image/gif 등의 MIME 타입을 지원하는 또다른 애플리케이션이죠) 다만 실행될때의 초기 argument만 브라우저의 링크를 통해 제공받는것일 뿐이죠.

사용하고자 하는 애플리케이션이 반드시 웹 페이지 내에 embed돼서 동작해야한다는 제약조건이 없다면 - 꼭 그래야만 한다면 거꾸로 애플리케이션 내에서 웹페이지를 embed해버리면 될 것 같습니다 - ActiveX를 사용하지 않으면서 애플리케이션을 실행할 수 있는 가장 매끄러운 방법은 역시 이 방법인 것 같네요.

하지만... 정말 그런지는 해봐야 알겠죠? :-)