XPCOM
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
XPCOM은 모질라 애플리케이션 환경을 위한 프레임워크를 구성하는 주요 요소 중 하나이다. 구성 요소 관리, 파일 추상화, 객체 메시지 전달, 메모리 관리 등의 기능을 제공하여 크로스 플랫폼 소프트웨어 개발을 지원한다. XPCOM은 게코의 기능을 재사용 가능한 컴포넌트나 라이브러리로 만들어 웹 브라우저에서 접근하거나 모질라 응용 프로그램에서 스크립트로 작성할 수 있게 한다. XPConnect를 통해 자바스크립트 또는 다른 언어로 라이브러리 인터페이스를 연결하며, 파이썬, 펄 등 다양한 프로그래밍 언어를 지원한다. 과거에는 내부 인터페이스에 과도하게 사용되어 소프트웨어 팽창을 초래하기도 했지만, 모질라는 XPCOM 팽창의 일부를 정리했다. 모노에서의 COM 상호 운용은 MS COM 및 XPCOM을 기반으로 한다. 모질라는 파이어폭스와 썬더버드에서 XUL/XPCOM 기반 애드온의 단계적 폐지를 발표하고, WebExtensions를 사용하도록 전환했다.
더 읽어볼만한 페이지
- 모질라 - 모질라 재단
모질라 재단은 넷스케이프 사업부 축소 후 모질라 프로젝트의 독립 운영을 위해 2003년 설립된 비영리 단체로, 파이어폭스 개발 지원, 개방형 웹 생태계 유지, 그리고 인터넷 자유 수호를 위한 활동을 전개한다. - 모질라 - 모질라 차이나
모질라 차이나는 한국에서의 역사와 관련된 주제를 다루며, 특정 시대별 주요 사건 및 변화, 쟁점, 사회적 영향, 관련 인물 및 단체, 그리고 미래에 대한 내용을 포함한다. - API - Tk (소프트웨어)
Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다. - API - ASIO
ASIO는 독일 스타인버그에서 개발한 오디오 입출력 API 규격으로, 낮은 지연 시간과 멀티 채널 I/O를 지원하며 윈도우 운영체제에서 주로 사용된다.
| XPCOM |
|---|
2. 모델
XPCOM은 모질라 애플리케이션 환경을 구성하는 핵심 요소이자 개발 환경으로, 다음과 같은 기능을 제공한다.
XPCOM은 게코의 거의 모든 기능을 일련의 컴포넌트 또는 재사용 가능한 교차 플랫폼 라이브러리로 만들어, 웹 브라우저에서 접근하거나 모질라 응용 프로그램에서 스크립트로 작성할 수 있게 해준다.
2. 1. 다양한 프로그래밍 언어 지원
XPCOM은 개발자가 C++, C, 자바스크립트, 파이썬 등 다양한 프로그래밍 언어를 사용하여 컴포넌트를 작성하고, 모질라가 지원되는 여러 플랫폼에서 해당 컴포넌트를 컴파일하고 실행할 수 있도록 지원한다.[5]XPConnect라는 XPCOM의 특수 계층을 통해 다양한 모질라 XPCOM 라이브러리(네트워킹, 보안, DOM 등)에 접근하는 응용 프로그램은 라이브러리 인터페이스를 자바스크립트나 다른 언어로 반사할 수 있다. PyXPCOM[5]은 파이썬을, wxWidgets[6]는 펄을 지원하며, CLI 및 루비 언어 지원을 추가하기 위한 노력도 진행 중이다.
2. 2. 게코 라이브러리 활용
XPCOM은 게코의 기능을 재사용 가능한 교차 플랫폼 라이브러리로 만들어 웹 브라우저나 모질라 응용 프로그램에서 스크립트로 접근할 수 있게 해준다.XPConnect는 다양한 모질라 XPCOM 라이브러리(네트워킹, 보안, DOM 등)에 접근해야 하는 응용 프로그램에서 사용되는 XPCOM의 특수 계층이다. XPConnect는 라이브러리 인터페이스를 자바스크립트나 다른 언어로 반사한다. 프런트 엔드를 XPCOM의 C++, C, 러스트 기반 컴포넌트에 연결하며, 다른 언어 지원을 위해 확장될 수 있다. PyXPCOM[5]은 파이썬을, wxWidgets[6]는 펄을 지원하며, 공통 언어 인프라 (CLI) 및 루비 지원 추가 작업도 진행 중이다.
개발자는 XPCOM을 통해 C++, C, 자바스크립트, 파이썬 등으로 컴포넌트를 작성하고, 모질라가 지원되는 여러 플랫폼에서 컴파일하고 실행할 수 있다.
게코 라이브러리의 XPCOM 컴포넌트 재사용 및 새 컴포넌트 개발 유연성은 빠른 애플리케이션 개발을 가능하게 하여 생산성과 유지보수성이 높은 응용 프로그램을 만들 수 있게 한다. 예를 들어, 네트워킹 라이브러리는 모든 모질라 응용 프로그램에서 접근 가능한 XPCOM 컴포넌트 집합이다. 파일 I/O, 보안, 암호 관리, 프로필도 별도 XPCOM 컴포넌트로 제공되어 프로그래머가 자체 응용 프로그램 개발에 활용할 수 있다.
3. 과거 과도한 사용
XPCOM은 객체 마샬링을 위해 많은 코드를 추가했으며, 넷스케이프 시대에 XPCOM은 실제로 필요하지 않은 내부 인터페이스에 과도하게 사용되어 소프트웨어 팽창을 초래했다.[7] 이는 2001년 애플이 게코가 아닌 KHTML을 포크하여 사파리 브라우저용 웹킷 엔진을 만든 주요 이유였다.[8]
이후 모질라는 XPCOM 팽창의 일부를 정리했다.[9] 2008년까지, 이는 다른 노력과 결합되어 게코의 큰 성능 향상을 가져왔다.[10]
4. Mono의 COM 상호 운용
5. XUL/XPCOM 기반 애드온의 단계적 폐지
Mozilla는 파이어폭스와 썬더버드에서 XUL/XPCOM을 이용한 애드온(확장 기능)의 SDK를 제공해 왔지만, XUL/XPCOM 기반 애드온의 단계적인 폐지를 표명했다. 파이어폭스 퀀텀 57에서는 전면적으로 폐지되었으며[13][14][15], 썬더버드에서도 바이너리 XPCOM 등 일부가 폐지되었다. 파이어폭스나 썬더버드의 업그레이드를 했을 때, 지금까지 사용해 온 애드온("구식 애드온"이라고 불림)이 사용할 수 없게 되는 현상은 이것에 기인할 가능성이 높다.
파이어폭스 퀀텀의 확장 기능에서는 XUL/XPCOM 대신 Microsoft Edge, Google Chrome, Opera 등에서 지원하는 WebExtensions[16]를 사용한다.
참조
[1]
웹사이트
Firefox 57 release notes
https://www.mozilla.[...]
[2]
웹사이트
The Future of Developing Firefox Add-ons
https://blog.mozilla[...]
2018-04-02
[3]
웹사이트
Pale Moon future roadmap
https://www.palemoon[...]
Pale Moon
2018-04-02
[4]
웹사이트
Pale Moon team releases first version of Basilisk browser
https://www.ghacks.n[...]
2018-04-02
[5]
웹사이트
PyXPCOM
https://web.archive.[...]
2018-01-02
[6]
웹사이트
Perl Based Cross Platforms Developments
https://gravitechdre[...]
[7]
웹사이트
Ars Technica sits down with Scott Collins from Mozilla.org
https://arstechnica.[...]
Ars Technica
2017-02-16
[8]
웹사이트
Apple snub stings Mozilla
https://web.archive.[...]
CNET Networks
2017-02-16
[9]
웹사이트
Gecko:DeCOMtamination
https://wiki.mozilla[...]
[10]
웹사이트
Why Mozilla is committed to Gecko as WebKit popularity grows
https://arstechnica.[...]
2017-02-16
[11]
웹사이트
The Mono Runtime | Mono
https://www.mono-pro[...]
[12]
웹사이트
COM Interop | Mono
https://www.mono-pro[...]
[13]
웹사이트
Firefox 57 (Quantum) for developers - Mozilla | MDN
https://developer.mo[...]
[14]
웹사이트
Firefox アドオン技術の現代化 | Firefox ヘルプ
https://support.mozi[...]
[15]
웹사이트
Porting a legacy Firefox extension | Extension Workshop
https://extensionwor[...]
[16]
웹사이트
https://developer.mo[...]
[17]
웹사이트
Firefox 57 release notes
https://www.mozilla.[...]
[18]
웹인용
The Future of Developing Firefox Add-ons
https://blog.mozilla[...]
2018-04-02
[19]
웹인용
Pale Moon future roadmap
https://www.palemoon[...]
Pale Moon
2018-04-02
[20]
웹인용
Pale Moon team releases first version of Basilisk browser
https://www.ghacks.n[...]
2018-04-02
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com