* 원문: 윤석찬의 테크 공작실 http://www.zdnet.co.kr/news/column/scyoon/
인터넷 홈페이지는 텍스트를 기반으로 하는 HTML, CSS, 자바스크립트 소스 등으로 구성돼있다. 단순하고 간결하면서도 이해하기 쉬운 웹 문서의 구조는 많은 사람들이 접근해 공부하기 쉬워 인터넷과 웹페이지 확산의 원동력이 돼 왔다.
그러나 일반 응용 프로그램은 어떠한가? 우리가 흔히 사용하는 노트패드, 계산기 같은 프로그램을 만드려 한다면 단순히 웹페이지를 만드는 수준의 지식으로는 어려움에 부딪히게 된다. 윈도우용 응용 프로그램을 개발하려면 비주얼 베이직, 비주얼 C++, 델파이, 볼랜드 C++과 같은 개발 도구를 사용해야 하기 때문이다.
일반 응용 프로그램 개발에 대한 진입 장벽을 완화 하고, HTML처럼 데이터 독립성을 보장해 줄 수 있는 응용 프로그램 개발 환경을 만들려는 경향이 최근 새롭게 생겨나고 있다. 바로 XML을 이용한 GUI 개발과 스크립트 언어를 이용한 동작 구현이 그것이다. 이제 복잡하고 어려운 개발 도구로 응용 프로그램을 만드는 시대는 저물고 있는 것이다.
새로운 개발 방법론, 시작은 모질라가
이 방법론을 먼저 시작한 곳은 바로 모질라(Mozilla) 다. 모질라는 이전까지만 해도 웹브라우저의 대표적 이름이었던 넷스케이프 커뮤니케이터가 1998년 오픈소스로 전환한 이후, 전 세계 개발자들을 통해서 발전해 온 웹브라우저다. 이 브라우저는 모질라 1.0이 출시 되기 전까지, 게코(Gecko)라는 자체 브라우징 엔진과 함께 XUL(XML-based User interface Language)과 XBL(XML-based Binding Language)로 소프트웨어 플랫폼을 구성하는 파격적인 방법을 선택했다.
줄이라고 발음하는 XUL은 API 기반의 GUI 도구로서 구조 및 UI 요소 (content), 스킨 혹은 테마와 같은 외양(appearance), 다국어 지원(locale) 등으로 크게 나눠지며 각각 XUL, CSS/Image, DTD 등의 파일들로 구성돼 있다.
실제로 모질라 브라우저에 Jar로 묶여 있는 파일들을 풀어보면 이들 파일들로 구성되어 프로그램이 동작되고 있음을 알 수 있다. 이렇게 만들어진 UI에서의 프로그램 작동은 자바 스크립트를 이용한다.
[img:mozilla1.jpg,align=,width=396,height=303,vspace=0,hspace=0,border=0]
[XUL과 자바스트립트로 만든 모질라용 다음 툴바]
모질라의 확장 기능(Extensions)이 바로 이런 방식으로 만들어지고 있으며 구글바, 탭브라우징, 환경 설정 마법사 등 수백개의 확장 기능(update.mozilla.org)이 만들어 지고 있다. 즉 데스크탑 컴퓨터에 모질라만 깔려 있으면 모질라의 엔진을 이용해 다양한 웹 응용 프로그램을 간단하게 만들 수 있는 것이다.
XUL의 장점은 우리가 가지고 있는 HTML, CSS, 자바스크립트와 간단한 XML 지식만으로도 웹 응용 프로그램을 개발할 수 있다는 것이다. 다른 경쟁 방식에 비해 더 익숙한 방식을 사용하며 윈도우, 리눅스, 맥 등 다양한 OS에 독립적인 응용 프로그램을 만들 수 있다는 점도 매력이다. 모질라는 OS 독립적인 XPCOM, XBL 같은 플랫폼 라이브러리를 이미 갖추고 있기 때문에 배포만 잘 된다면 닷넷 라이브러리 혹은 롱혼과도 충분히 경쟁이 가능할 것이다.
롱혼, 모질라의 뒤를 따르다
이러한 특징적인 응용 프로그램 방법론은 차세대 윈도우인 롱혼에도 영향을 끼쳤다. 앞으로 롱혼이 구동되는 각 컴퓨터에서는 개발 엔진을 통해 프로그래밍에서 동적인 변화 방법을 구현할 수 있게 된다.
비주얼 스튜디오와 닷넷 런타임 라이브러리에서 이러한 변화를 볼 수 있다. 롱혼에 ‘자믈’이라고 발음하는 XAML(Extensible Application Markup Language)기술이 포함된 것이다.
예를 들어 XAML은 XUL과 같이 단순한 UI용 XML 코드를 통해 대화 상자을 표현할 수 있다. 이 기능의 장점은 프로그램을 재컴파일할 필요 없이 포인트 크기와 색상을 변경할 수 있다는 것이다. 그 정보는 윈도우 레지스트리가 아닌 텍스트 편집기에서 편집이 가능한 XAML 파일에 존재한다.
롱혼의 XAML 프로그래밍 방식은 서버와 데스크톱 모두에서의 응용 프로그램 생산성을 획기적으로 발전시켜줄 것으로 보인다. 예를 들어 웹사이트의 사용자 로그온 보안에 권한을 추가하는 기능을 XAML로 구현하는데 12줄 정도의 코드만으로 가능했다. 이에 반해 현재의 개발 도구로 이와 같은 작업을 하려면 많은 시간과 코드가 필요하다.
[img:mozilla2.jpg,align=,width=256,height=144,vspace=0,hspace=0,border=0]
[img:code.jpg,align=,width=430,height=240,vspace=0,hspace=0,border=0]
[간단한 XUL 코드로 만든 계산기 인터페이스와 소스코드]
만약 롱혼이 성공한다면 XAML을 지원하는 스마트 클라이언트들은 궁극적으로 현재 기업의 컴퓨팅 세계를 지배하고 있는 HTML 웹 애플리케이션들을 대체할 것으로 보인다. 수동적으로 데이터를 받아 처리하는 웹브라우징이라는 방식보다 데스크톱 PC의 컴퓨팅 자원을 충분히 활용할 수 있는, 인터넷에 민감한 클라이언트 애플리케이션들이 나오게 되는 것이다.
MS가 발표한 기술 스펙에 따르면 인터넷 사용자들은 클릭원스(ClickOnce)란 신기술을 통해 데스크톱에 ‘스마트 클라이언트 프로그램’을 다운받아 설치할 수 있으며, 이후 그 프로그램들은 필요할 때마다 자동으로 업데이트된다.
새로운 전쟁이 시작된다
이러한 기술 방향은 그냥 단순히 XML로 UI를 지정해 프로그램 생산성을 높이는데 초점이 있는 것은 아니다. 인터넷 환경에서 이제 응용 프로그램을 마치 브라우저에서 HTML을 다운로드 받아 보여주듯이 실행할 수 있게 된다는 것을 의미하며 XML과 컴포넌트 파일을 다운로드 받는 것으로 브라우저 환경을 벗어난 UI를 제공하게 되는 상황이 전개된다는 것을 뜻한다.
바로 이런 점은 웹브라우저를 벗어나려 하는 인터넷과 접목된 미래의 데스크톱 컴퓨팅이 어떻게 펼쳐질 것인가 예고해 주는 대목이기도 하다. 본인의 개인적인 생각으로는 아직도 취업을 위해 학원에서 비주얼 베이직이나 비주얼 C++을 배우기보다는 새로운 트렌드를 따라가라고 충고해 주고 싶을 정도다.
소스포지의 XUL 프로젝트에서는 이런 정보들을 쉽게 얻을 수 있으며, 각종 XUL에서 간단한 샘플을 구현하는 대회(xul.sourceforge.net/challenge.html)를 살펴보는 것도 도움이 될 것이다.
데스크톱에 어떤 플랫폼이 깔리게 되느냐는 새로운 전쟁은 바로 미래를 보는 잣대다. 네트워킹된 데스크톱 컴퓨터 뿐 아니라 디지털 TV, 셋톱, 텔레매틱스, 임베디드 디바이스들이 범람할 미래에는 응용 프로그램의 생산과 유통을 책임질 플랫폼을 누가 장악할 것인가가 주요 이슈라는 것이다.
누가 아는가? 검색 분야를 휩쓸고 있는 구글이 모질라 플랫폼을 이용해 롱혼을 잠재울는지. @
※ Disclaimer- 본 글은 개인적인 의견일 뿐 제가 재직했거나 하고 있는 기업의 공식 입장을 대변하거나 그 의견을 반영하는 것이 아닙니다. 사실 확인 및 개인 투자의 판단에 대해서는 독자 개인의 책임에 있으며, 상업적 활용 및 뉴스 매체의 인용 역시 금지함을 양해해 주시기 바랍니다. 본 채널은 광고를 비롯 어떠한 수익도 창출하지 않습니다. (The opinions expressed here are my own and do not necessarily represent those of current or past employers. Please note that you are solely responsible for your judgment on checking facts for your investments and prohibit your citations as commercial content or news sources. This channel does not monetize via any advertising.)