Search Results for '애드온'

2 POSTS

  1. 2007.03.13 호호딕 0.1 8
  2. 2006.12.25 21세기 소프트웨어의 경향: 플랫폼화, 플러그인, 애드온 2

호호딕 0.1

Posted 2007. 3. 13. 20:42
Firefox Extension 기능을 시험해 볼 겸 간단히 네이버 영어 사전 애드온을 만들어 보았습니다.

호호딕 0.1

마우스로 단어를 두번 클릭해주면 네이버 Open API를 사용해서 새창으로 단어 뜻을 찾아주는 간단한 프로그램입니다. '도구-부가기능-HohoDic설정'에 가셔서 발급받은 네이버 Open API 키를 넣어주시면 됩니다. 디폴트로 제 키가 들어있습니다. 프로그램을 시작하면 오른쪽 아래 상태바에 사전 아이콘이 나타나는데, 처음에는 회색으로 되어 있습니다. 한 번 클릭해주면 파란색으로 돌아오는데, 이때가 활성화된 모드입니다. 파란색인 상태에서 영어 단어를 고르면 팝업이 떠서 단어의 뜻을 알 수 있습니다. 기능이 필요 없으면 사전 아이콘을 한 번 더 눌러서 끄면 됩니다.


사용자 삽입 이미지


뭐 어디 공개하기는 부끄러운 프로그램이라 제 블로그에만 올려둡니다.

이거 만들었다는 얘기를 하고 싶은 게 아니고, Firefox Extension 제작의 어려움(?)을 토로하고자 합니다. 결론부터 말하면 생각보다 쉽지 않더군요. 일단 모질라 사이트가 언뜻 보면 방대한 문서가 있는 것 같은데, 처음 접하는 사람이 체계적으로 접근하기가 어려웠습니다. API 문서도 생각보다 정리가 안 되어 있어서 찾아보기가 상당히 어렵더군요.

Firefox를 비롯한 Mozilla 소프트웨어들은 전부 XPCOM이라는 컴포넌트 기술에 기반하고 있는데, 이 컴포넌트를 자바스크립트에서 불러 쓰는 것도 상당히 귀찮은 일이더군요. jsLib이라고 이걸 좀 간단하게 만들고자 노력한 라이브러리도 있지만 많이 부족해 보였고요.

또 스크립트 언어 특유의 '타이핑 실수'로 인한 버그를 잡아내는 게 무척 힘들었습니다. 뭔가 사소한 이유로 안 되는 것 같은데 뭐가 문제인지 몰라서 한참을 헤매게 되더군요. 물론 콘솔에 오류를 찍게 할 수도 있고 자바스크립트 디버거들도 있지만 익숙하지 않아서 그런지...

XUL을 쓰던 안 쓰던 UI 같은 건 WYSWYG으로 딱딱 보이는 게 좋은데라는 아쉬움도 들었고요. 애드온 개발을 위한 좋은 개발 환경 셋팅에 대해서 잘 아시는 분 도움을 부탁드립니다.

[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)이 만들어온 플랫폼이 이런 도전에 어떤 식으로 응전할지도 기대가 됩니다.