야후 위젯(Yahoo Widget!)과 애플의 대시보드(Dashboard), 윈도 비스타의 가젯(gadget) 등 위젯 서비스가 줄을 이으면서, 국내에서도 네이버, 미니플, 다음(나온 순서대로) 등이 위젯 서비스를 시작했다. 주로 날씨, 달력, 메모, 메신저, 시계, 증권 등 위젯하면 생각나는 프로그램이 주종이다. 네이버나 다음은 자사가 가지고 있는 메일, 까페, 검색 등의 서비스를 추가로 제공하기도 한다.

국내 위젯 서비스를 둘러보니 외국 위젯 서비스의 미투(me too) 서비스인 것은 분명한데, 한 가지 큰 차이가 있었다. 외국 위젯 서비스들은 사용하기 편한 여러 위젯을 제공하는 동시에, 사용자들이 필요한 위젯을 쉽게 만들 수 있도록 플랫폼(API+개발도구)를 제공한다. 반면에 국내 위젯 서비스는 엔진을 설치한 후에 자사가 제공하는 위젯을 설치할 수만 있을 뿐 사용자 위젯을 추가적으로 만들 수 있는 방법을 제공하지 않고 있다.

네이버나 다음의 경우 홈페이지를 둘러봐도 향후 위젯 제작을 오픈하겠다는 말이 없었다. 반면에 미니플은 최근에 3.0 오픈베타를 발표하면서 앞으로 ‘유무선 통합 플랫폼’을 추구한다고 한다. 즉, 미니플을 PC, PDA, WIBRO, IPTV 단말기 등 여러 플랫폼에 집어 넣는다는 말이다. 하지만 향후 공개하겠다는 말이 있을 뿐 플래시 기반이라는 사실 외에는 그 내부 구조가 어떻게 되어있고 어떤 API를 제공하겠다는 건지는 알 수가 없었다.

네이버나 다음이 내부적으로 어떤 기술 사용했는지는 모르겠지만, 야후 위젯이나 대시 보드, 오페라 위젯 등은 대부분 유사한 기술에 바탕을 두고 있다. 보통 위젯은 다음 세 가지 요소로 구성된다.

1) XML이나 HTML 형식으로 UI의 구조를 정의
2) UI에 액션을 줄 수 있는 스크립트(주로 자바스크립트)
3) UI에 멋진 모양을 낼 수 있는 스킨(보통 CSS)

예를 들어, 오페라 위젯은 HTML에 자바스크립트, CSS를 사용하여 일반 웹프로그래밍과 가장 유사한 환경을 제공한다. 다른 위젯들도 HTML 대신에 UI 구조를 위해 자체적으로 정의한 XML을 사용할 뿐 위젯 어플리케이션을 구성하는 근본적인 기술은 상당히 유사하다. (이 부분은 UI를 위해 XUL을 사용하는 Firefox의 Extension도 마찬가지다.)

국내 위젯사들이 이 정도나마 플랫폼 형태를 갖추고 있는지, 아니면 정말 위젯 하나 하나를 정성스러운 손길로 수제작하는지는 알 수가 없다. 물론 수제작이 나쁘다는 건 아니다. 그건 어디까지나 회사의 전략이니깐. 사실 국내에만 한정 지을 경우 API를 오픈한다고 해서 얼마나 많은 개발자들이 위젯을 개발해 줄지는 의문이기도 하다. ‘플랫폼’으로 절대적인 기술 우위를 점하지 않는 한 위젯 제공사들은 플랫폼보다는 컨텐츠로서 위젯에 더 가치를 두는지도 모르겠고…
[reshout님을 비롯하여 플러그인 모델(Plug-in Model)에 대한 글을 읽다가 생각을 정리해봅니다.]

파이어폭스(Firefox), 야후 위젯(Yahoo Widget!), 이클립스(Eclipse), 구글데스크톱(Google Desktop) 등의 공통점은 무엇일까요? 각자 성격과 규모가 다른 소프트웨어 프로젝트이지만 한 가지 공통점을 가지고 있습니다. 그것은 바로 애드온 아키텍처(Add-on Architecture), 플러그인(Plug-in Architecture) 등으로 불리는 확장 지향의 소프트웨어 아키텍처에 있습니다!

흔히 인터넷 익스플로러와 비견되는 웹브라우저로만 알고 있는 파이어폭스의 가장 큰 경쟁력은 애드온(Add-ons) 기능입니다. 애드온을 이용하면 파이어폭스 사용자가 손쉽게 브라우저의 기능을 확장할 수 있습니다. 예를 들어 파이어폭스 기본 배포 버전은 마우스를 이용한 웹페이지 네비게이션을 지원하지 않고 있죠. 하지만 All-in-One Gestures라는 애드온을 설치하면 간단한 마우스조작 만으로 현재 북마크에 추가하거나, 새로운 탭을 열고, 웹 페이지를 앞 뒤로 옮겨갈 수 있는 기능을 얻게 됩니다.

KLDP 코드 페스트 행사에서 만나뵌 CN님 말씀에 따르면, 파이어폭스가 궁극적으로 원하는 방향 중에 하나는 파이어폭스의 렌더링 엔진인 게코(Gecko) 엔진과 XML을 이용해 사용자 인터페이스를 만드는 기술인 XUL 등을 브라우저에서 분리시켜 플랫폼화하는 것이라고 합니다. 이렇게 되면 파이어폭스나 썬더번드 등은 게코와 XUL을 이용한 하나의 어플리케이션이 된고, 분리된 게코 플랫폼(Gecko Platform)을 이용하면 파이어폭스 수준의 다른 어플리케이션도 손쉽게 제작할 수 있게 됩니다.

야후 위젯이 추구하는 방향도 비슷합니다. 야후 위젯은 간단하면서 유려한 데스크탑용 어플리케이션을 작성하는데 있어서 최적의 플랫폼이 되기를 희망하고 있습니다. 야후 위젯은 기존의 자바나 .NET 플랫폼과 달리 XML을 이용해 UI를 기술하고 프로그래밍 합니다. 즉 기존 플랫폼의 API를 한 단계 위의 끌어올려 간단한 데스크탑 용 어플리케이션의 경우 기존 플랫폼에 비해 훨씬 손쉽게 만들 수 있게 만든 것입니다.

재미있는 것은 확장성 높은 IDE 도구를 목표로 출발한 이클립스 역시 기존의 자바 플랫폼으로 해내기 힘든 리치 어플리케이션 플랫폼으로 진일보하였다는 점입니다. 자바 플랫폼의 부족한 UI 지원을 SWT로 메우고, 순수 자바로는 쉽게 만들 수 없는 데스크탑 용 어플리케이션을 쉽게 만들 수 있는 밑바탕을 제공하고 있습니다. 실제로 IDE와는 관련 없는 바이오클립스(Bioclipse), 이클립스트레이더(EclipseTrader) 프로젝트 등 이클립스를 플랫폼으로 삼은 여러 리치 클라이언트 어플리케이션(Rich Client Application)이 인기를 얻고 있습니다.

종합하면 현재 일부 어플리케이션은 고수준의 API를 제공하는 플랫폼 소프트웨어의 성격을 강하게 보이고 있고, 또 플랫폼화하기 위해 많을 애를 쓰고 있다는 점입니다. 이런 신생 플랫폼 간의 경쟁도 흥미롭고 자바와 닷넷(.NET)이 만들어온 플랫폼이 이런 도전에 어떤 식으로 응전할지도 기대가 됩니다.