들어는 봤나! Firefox PlugIn

안녕하세요! Firefox PlugIn 이라고 합니다~

익스플로러에 ActiveX가 있다면, Firefox에는 PlugIn이 있습니다. 이들은 브라우저에서 돌아가는 로컬 어플리케이션입니다. 둘의 차이가 있다면 ActiveX는 윈도우 환경에서만 돌아가는 반면에 PlugIn은 Windows, Linux, Mac 을 지원한다는 차이가 있습니다. 하나의 PlugIn이 모든 OS에서 돌아간다는 이야기는 아니고, PlugIn 내부에 Windows 코드가 들어갈 수도 있고, Linux 코드가 들어갈 수도 있고, Mac 코드가 들어갈 수도 있다는 이야기가 되는 것이지요. 윈도우용 PlugIn은 윈도우에서만 돌아간다고 이해하면 됩니다. 대표적인 Firefox PlugIn으로는 Flash, 아크로밧 리더, 미디어플레이어, 리얼플레이어 등이 있습니다.


그림 1 Positioning PlugIn

브라우저는 원래 로컬 머신과 통신할 수 없습니다. 브라우저는 단지 웹 페이지를 열어서 보여주는 기능을 하는 것인데, 웹 페이지가 점점 다이내믹 해지면서 사용자와 더욱 능동적으로 소통하려고 하려고 하다가 결국, 웹 페이지에서 프로그램을 실행할 수 있으면 얼마나 좋을까? 하는 욕구가 생기고 그에 따라 ActiveX, Firefox PlugIn이 생겨나게 된 것입니다.

웹 페이지에서 채팅도 할 수 있고, 인터넷 뱅킹도 할 수 있고, 동영상도 볼 수 있고 이게 다 PlugIn이 있기 때문에 가능해진 기능들입니다. 근데 막강한 기능을 가진 PlugIn도 문제점은 있습니다. 바로 OS에 의존적이 된다는 점입니다.


그림 2 PlugIn의 OS dependency 문제

뭐 PlugIn의 특징을 생각해보면 어쩔 수 없는 결과이기도 하지만, 웹의 범용적인 특성을 고려해볼 때 썩 바람직한 모양은 아닌 것 같네요. 가상머신이든 플랫폼이되든… OS에 의존적이지 않은 플러그인이 결국은 나오지 않을까 생각하는데… 여러분은 어떤가요? (비슷한 개념으로 AJAX가 나오지 않았나 싶지만, 제 생각은 이걸로 웹이 대세가 될 것이라고 생각하는 것은 아직 이른감이 있는 것 같습니다.)


PlugIn 만들어 보시게요? 여기서부터 시작하세요.

Firefox PlugIn을 만들어 보시려면, 먼저 몇 개의 레퍼런스 사이트를 즐겨 찾기에 등록해 놓으면 좋을 것 같습니다. 처음에 아무것도 모르는 상태에서 시작한 필자는 처음에 많이 헤맸습니다. 요즈음 Firefox 때문에 Mozilla 사이트에 개발 내용과 같이 마케팅 컨텐츠가 섞이면서 혼란스럽기 그지 없습니다.

http://www.mozilla.com
FireFox 사이트입니다. (정확히는 Mozilla.com 이라는 영리단체입니다.) 이 사이트에 접속해서 FireFox 브라우저를 다운받은 후 설치할 수 있습니다.

http://developer.mozilla.org
Mozilla Development Center 라는 곳으로 PlugIn에 관련된 정보 이외에 Mozilla 프로젝트 개발 관련된 정보들을 볼 수 있는 곳입니다. FireFox 개발 관련 키워드를 얻고 싶으면 위 사이트를 참조하면 됩니다.

http://www.mozilla.org/projects/plugins/
PlugIn 개발에 관련된 페이지이다. SDK를 다운 받을 수 있는 링크나 여러 레퍼런스 매뉴얼들이 링크되어 있는 곳입니다. PlugIn 개발을 위해서 반드시 북마크 되어 있어야 하는 곳이기도 합니다.

http://web.archive.org/web/20040203041440/http://devedge.netscape.com/library/manuals/2002/plugin/1.0/
Mozilla 엔진인 Gecko에 대한 API 레퍼런스입니다.


SDK 다운 받기

http://www.mozilla.org/projects/plugins/GeckoPluginSDK-samplesWin32.zip

위 링크를 통해서 PlugIn API를 다운 받을 수 있습니다. SDK라고 하면 왠지 설치과정이 있을 것 같지만 이건 그냥 압축 풀고 바로 사용할 수 있습니다. SDK에는 샘플코드도 같이 포함되어 있습니다. 샘플은 VC++ 6 에서 바로 컴파일 할 수 있는 환경으로 구성되어 있기 때문에 쉽게 실행 할 수 있습니다.


PlugIn 샘플 실행하기

필자는 보통 SDK를 받으면 샘플부터 실행시켜 봅니다. 샘플 프로그램 컴파일해서 돌아가면 왠지 다 만든 것 같은 기분에 뿌듯합니다. 샘플 중에 가장 간단한 예제를 실행해봅시다.

1) Basic 샘플 경로 – sdk/samples/basic/windows
2) npbasic.dsw 을 VC++로 열기
3) Release 모드로 컴파일
4) FireFox가 설치된 경로의 plug-in 폴더에 생성된 dll 파일을 복사
5) sdk/samples/basic 경로에 있는 test.html 파일을 FireFox로 실행

안타깝게도 샘플을 돌려보려면 VC 6.0과 Mozilla Firefox가 설치되어 있어야 합니다. 컴파일하면 결과물이 DLL로 나옵니다. 이 파일을 Firefox가 설치된 폴더에서 plugins 에 복사하면 됩니다.


그림 3 샘플이 실행된 모습

브라우저의 버전 정보를 얻어와서 화면에 그려주는 예제입니다. 예제는 간단해 보이지만 실제 소스코드는 살짝쿵 복잡합니다. 제가 보기에는 더 쉽게 샘플 코드를 작성할 수 있을 것 같은데, 샘플에는 쓸데없는 코드가 좀 있어 보입니다. 다음은 다 걷어내고 핵심만 있는 PlugIn을 만들어 봅시다!



본 글의 출처는 다음과 같습니다.

작성자 : 이은규
홈페이지 : http://unkyulee.net
작성일 : 2006-02-20

블로그 이미지

맨오브파워

한계를 뛰어 넘어서..........

,