Introduction - 1. NPAPI? NPRUNTIME?

Dev/ETC 2009. 3. 29. 14:21

이번에 회사에 인턴으로 합류하면서 webkit기반 브라우저들(사파리, 크롬) 에게 좌표데이터를 넘겨주는 플러그인을 만들어야 했다. 잘 모르는 상태에서 여기 저기 사이트 돌아다니고 하면서 알게 된 사항들을 정리해 보도록 하겠다. 참고로 아직 공부가 부족해서 대략적인 개념들과 참고사이트들을 적는 정도로 하겠다. (다른 문서들도 봐야 되서 시간이 없다 ㅠ_ㅠ)


1. NPAPI?
NPAPI는 예전 넷스케이프에서 지원하던 플러그인개발 api들이다. MS의 익스플러로한테 밀리긴 했지만 넷스케이프 관련 여러가지들이 모질라로 넘어가면서 어떻게 하다보니 이 NPAPI는 MS익스플로러를 제외한(몇몇 버전은 된다고 하더라) 파이어폭스, 사파리, 오페라, 크롬에서 지원하게 되었다. 즉 익스플러로를 제외한 브라우저들 아무것에서나 잘 돌아간다는 것이다! 

2. NPRUNTIME?
그렇다면 NPRUNTIME은 뭐하는 물건이냐 하면은 NPAPI의 확장버전이다. NPAPI는 예전 넷스케이프에서 지원하던 API이다 보니 현재상황에 따른 기능이 없다. 그 기능이란 플러그인에서 웹브라우저에 명령을 전달할 수 없다는 것이다. 즉 웹브라우저에서 열린 페이지는 플러그인에 명령을 넘길 수 있지만 플러그인은 웹브라우저로 명령을 전달 할 수 없다는 것이다. 이러한 문제를 해결해주는 것이 NPRUNTIME이다.
NPRUNTIME이라고 해서 NPAPI와 API가 완전히 다른것이 아니라 NPAPI + 추가API의 형태이다.

3. Non-scriptable Plugin, Scriptable Plugin?
위에서 언급한 것처럼 플러그인에서 웹브라우저로 명령을 전달할 수 없으면 Non-scriptable Plugin, 할 수 있으면 Scriptable Plugin이라고 한다.

4. 공부하는데 유용한 사이트들

은규리넷 : http://unkyulee.net
- NPRUNTIME이 아니라 XPCOM을 설명하고 있지만 초반 NPAPI로 간략 플러그인 개발에 대해서 설명되어 있다.

- 레퍼런스 사이트. 정리가 잘되어 있지만 몇몇 잘못된 예제들이 있다. 고생하시길~~~~



시간도 부족하고 공부도 부족해서 여기까지 쓰도록 하겠다. 직접만든 Scriptable Plugin을 올리고 싶은데 아직 코드가 엉망이고 몇몇 api들은 아직 제대로 보지 못해서 나중에 정리 되면 샘플코드를 올려보도록 하겠다.

: