XUL
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
XUL은 넷스케이프에서 개발되어 모질라 프로젝트에서 사용된 사용자 인터페이스 마크업 언어이다. HTML의 확장으로 설계되어 응용 프로그램 UI를 구축하는 데 사용되었으며, Gecko 렌더링 엔진을 통해 구현되었다. XUL은 다양한 모질라 프로젝트 및 관련 소프트웨어에서 활용되었으나, Firefox Quantum 출시와 함께 다중 프로세스 아키텍처로 전환되면서 XUL 기반 애드온 지원이 중단되었다. 이후 썬더버드와 SeaMonkey에서도 XUL 지원이 점진적으로 제거되었으며, Pale Moon은 XUL 플랫폼을 포크하여 사용하고 있다. XUL은 콘텐츠, 스킨, 로케일의 세 가지 구성 요소로 이루어져 있으며, 창, 위젯, 박스 모델 등 다양한 요소를 정의한다. XUL은 XBL을 사용하여 위젯의 동작을 변경할 수 있으며, 영화 '고스트버스터즈'에서 영감을 받아 명명되었다.
더 읽어볼만한 페이지
- 1997년 도입 - 자살 봉지
자살 봉지는 질식사를 위해 밀폐된 비닐 봉투에 불활성 기체를 채워 넣는 자살 방법으로, 인터넷을 통해 사용법이 확산되면서 윤리적 논쟁과 사회적 문제를 야기하고 있다. - 1997년 도입 - MMX (명령어 집합)
MMX는 인텔이 개발한 명령어 집합으로, 64비트 레지스터를 사용하여 여러 개의 작은 정수를 동시에 처리하며, x87 부동 소수점 레지스터를 사용해 정수 연산을 수행하도록 설계되었다. - 모질라 - 모질라 재단
모질라 재단은 넷스케이프 사업부 축소 후 모질라 프로젝트의 독립 운영을 위해 2003년 설립된 비영리 단체로, 파이어폭스 개발 지원, 개방형 웹 생태계 유지, 그리고 인터넷 자유 수호를 위한 활동을 전개한다. - 모질라 - 모질라 차이나
모질라 차이나는 한국에서의 역사와 관련된 주제를 다루며, 특정 시대별 주요 사건 및 변화, 쟁점, 사회적 영향, 관련 인물 및 단체, 그리고 미래에 대한 내용을 포함한다. - XML 기반 표준 - XAML
XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다. - XML 기반 표준 - 아톰 (표준)
Atom은 웹 사이트 업데이트 정보와 콘텐츠 배포를 위한 XML 기반 문서 형식으로, Atom 배포 형식과 Atom 출판 프로토콜로 구성되어 있으며, RSS를 대체하기 위해 고안되었고 국제화 지원 및 모듈성에서 차이를 보인다.
| XUL - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 개요 | |
![]() | |
| 종류 | 마크업 언어 |
| 파일 확장자 | .xul |
| MIME 타입 | application/vnd.mozilla.xul+xml |
| 설계자 | 모질라 재단 |
| 개발자 | 모질라 재단 |
| 플랫폼 | 게코/고아나 |
| 운영 체제 | 크로스 플랫폼 |
| 라이선스 | MPL |
| 웹사이트 | XUL 홈페이지 |
| 기술적 세부 사항 | |
| 패러다임 | 선언적 (마크업 언어) |
| 영향을 받은 언어 | HTML, XML |
| 프로그래밍 언어 | C++ |
2. 역사
XUL은 1997년 넷스케이프(Netscape)에서 처음 개발되었으며, 이후 Mozilla 프로젝트의 일환으로 발전하였다.[8] XUL은 Gecko 렌더링 엔진에 의해 구현되었으며, 당시 표준이었던 HTML 4를 넘어선 기능을 제공하여 응용 프로그램 개발에 사용되었다.[9]
HTML5 등 최신 웹 기술이 발전하면서 XUL의 필요성이 감소했고, 2017년 모질라 파이어폭스는 XUL 애드온 지원을 중단했다.[2][3] 2019년에는 모질라 저장소에서 모든 XUL 파일이 제거되었다.[11][12][1]
이후, SeaMonkey는 XUL을 다시 구현하기로 결정했고, Pale Moon은 통합 XUL 플랫폼(UXP)을 만들어 기존 XUL 기능을 유지하였다.[14]
2. 1. 개발 배경
XUL은 1997년 넷스케이프(Netscape)에서 개발되었으며, 이는 Mozilla 코드베이스 개발의 일환이었다.[8] XUL은 Gecko 렌더링 엔진에 의해 구현된 웹 기술과 유사하다. XUL이 도입되었을 당시 표준은 HTML 4였는데, XUL은 이를 넘어선 기능을 추가하여 문서보다는 응용 프로그램에 사용하도록 설계된 HTML의 확장으로 개발되었다.[9]2. 2. 모질라 프로젝트에서의 활용
XUL은 모질라 파이어폭스, 썬더버드 등 다양한 모질라 프로젝트에서 사용자 인터페이스를 구성하는 데 사용되었다.[8] Songbird, Komodo IDE, Zotero와 같은 일부 소프트웨어 프로젝트는 XULRunner를 기반으로 UI를 렌더링하는 데스크톱 애플리케이션으로 시작되었다.[10] 2000년대 초반에는 아마존을 포함한 다른 관계자들도 XUL을 사용하는 데 관심을 보였지만,[10] 이들은 HTML5로 전환했다.[12]모질라는 2017년 11월, 파이어폭스 퀀텀(Firefox Quantum)으로도 알려진 파이어폭스 57을 출시하면서 레거시 애드온에 대한 지원을 제거했다.[2][3] 2019년 말까지 Mozilla는 `mozilla-central` 저장소에서 모든 XUL 파일을 제거했다.[11][12][1]
모질라가 파이어폭스에서 XUL 지원을 제거했을 때, 여전히 XUL을 사용하는 여러 애플리케이션이 있었다. 모질라는 이메일 클라이언트인 썬더버드에서 XUL 지원을 점진적으로 제거하기 시작하여, 2020년에는 XUL 기반 확장 기능을 지원하지 않는 썬더버드 78을 출시했다.[13]
SeaMonkey 인터넷 스위트는 파이어폭스 퀀텀 코드베이스에 대해 XUL을 다시 구현하기로 결정했다.[14] Pale Moon 개발자는 모질라의 전체 파이어폭스 52 ESR 코드베이스를 포크하여 Goanna 렌더링 엔진을 위한 통합 XUL 플랫폼 (UXP)를 만들었다. UXP는 기존 XUL 기능을 유지한다.[14]
2. 3. 쇠퇴와 지원 중단
HTML5, CSS3, ECMAScript 5+ 등 최신 웹 기술이 발전하면서 XUL의 필요성이 감소했다.[9] 2017년, 모질라 파이어폭스는 XUL 애드온에 대한 지원을 중단하고, 크롬 확장 API를 기반으로 하는 크로스 브라우저 WebExtensions API로 전환했다.[2][3] 2019년, 모질라는 `mozilla-central` 저장소에서 모든 XUL 파일을 제거했다.[11][12][1]2. 4. 현재 상황
Mozilla가 파이어폭스에서 XUL 지원을 중단했을 때, 여전히 XUL을 사용하는 여러 애플리케이션이 있었다. Mozilla는 이메일 클라이언트인 썬더버드에서 XUL 지원을 점진적으로 제거하기 시작했다. 2020년에는 XUL 기반 확장 기능을 지원하지 않는 썬더버드 78을 출시했다.[13]SeaMonkey 인터넷 스위트는 파이어폭스 퀀텀 코드베이스에 대해 XUL을 다시 구현하기로 결정했지만, 그 후 스위트의 개발 속도가 둔화되었다. Pale Moon 개발자는 Mozilla의 전체 파이어폭스 52 ESR 코드베이스를 포크하여 Goanna 렌더링 엔진을 위한 통합 XUL 플랫폼 (UXP)를 만들었다. UXP는 기존 XUL 기능을 유지한다.[14] 결과적으로 Pale Moon 및 기타 UXP 애플리케이션은 최신 버전의 파이어폭스 및 썬더버드에 비해 단일 프로세스를 유지하면서 더 확장 가능하게 되었다.[15]
3. 구성 요소
XUL 인터페이스는 사용자 인터페이스의 레이아웃을 정의하는 콘텐츠, 애플리케이션의 모양을 정의하는 CSS 및 이미지 파일인 스킨, 쉬운 소프트웨어 현지화를 위해 사용자에게 표시되는 문자열을 포함하는 로케일의 세 가지 독립적인 구성 요소로 정의된다.[16]
3. 1. 콘텐츠
XUL은 사용자 인터페이스의 레이아웃을 정의하는 문서이다.XUL은 다음과 같은 유형의 다양한 요소를 정의한다.
- 최상위 요소: 창, 페이지, 대화 상자, 마법사 등.
- 위젯: 레이블, 버튼, 텍스트 상자, 목록 상자, 콤보 상자, 라디오 버튼, 체크 상자, 트리, 메뉴, 툴바, 그룹 상자, 탭 상자, 색상 선택기, 스페이서, 스플리터 등.
- 박스 모델: 박스, 그리드, 스택, 덱 등.
- 이벤트 및 스크립트: 스크립트, 명령, 키, 브로드캐스터, 옵저버 등.
- 데이터 소스: 템플릿, 규칙 등.
- 기타: 오버레이, iframe, 브라우저, 편집기 등.
XUL 위젯의 기본 동작은 XBL 바인딩으로 변경할 수 있다. XUL을 통한 인터페이스는 다음 세 가지의 개별적이고 독립적인 구성 요소 그룹으로 기술된다.
- 콘텐츠(Content): 사용자 인터페이스의 레이아웃을 규정하는 XUL 본문.
- 스킨(Skin): 스킨애플리케이션의 시각적인 표현을 위한 CSS와 이미지.
- 로케일(Locale): 로케일소프트웨어의 지역화를 용이하게 하기 위한 실체 텍스트를 기술하는 문서 형식 정의.
XUL의 가장 큰 이점은 단순하고 이식 가능한 위젯 기술이 가능하다는 것이다. 이는 4세대 프로그래밍 언어(4GL)가 소프트웨어 개발 분야에서 수행했던 것과 매우 유사하게 노력을 절감시킨다.[16]
3. 2. 스킨
애플리케이션의 시각적인 표현을 정의하는 CSS와 이미지 파일이다.[16]3. 3. 로케일
현지화를 쉽게 하기 위해 사용자에게 표시되는 문자열을 포함하는 문서 형식 정의 파일이다.[16]4. XUL 요소
XUL은 다양한 종류의 요소를 정의하며, 크게 최상위 요소, 위젯, 박스 모델, 이벤트 및 스크립트, 데이터 소스, 기타 등으로 분류할 수 있다.[16]
XUL 위젯의 기본 동작은 XBL 바인딩으로 변경할 수 있다. 스핀 박스, 슬라이더, 캔버스 등 일부 위젯은 현재 XUL 사양에서 사용할 수 없지만, XUL 2.0에서 검토될 예정이다. XUL 기술 안에는 XHTML이나 MathML과 같은 다른 XML 애플리케이션 요소를 포함할 수도 있다.[16]
4. 1. 최상위 요소
창, 페이지, 대화 상자, 마법사 등이 있다.[16]4. 2. 위젯
XUL은 레이블, 버튼, 텍스트 상자, 목록 상자, 콤보 상자, 라디오 버튼, 체크 상자, 트리, 메뉴, 툴바, 그룹 상자, 탭 상자, 색상 선택기, 스페이서, 스플리터 등 다양한 위젯을 정의한다.[16]4. 3. 박스 모델
XUL은 다음과 같은 유형에 속하는 광범위한 요소를 정의한다:[27]- 최상위 요소: 창, 페이지, 대화 상자, 마법사 등.
- 위젯: 레이블, 버튼, 텍스트 상자, 목록 상자, 콤보 상자, 라디오 버튼, 체크 상자, 트리, 메뉴, 툴바, 그룹 상자, 탭 상자, 색상 선택기, 스페이서, 스플리터 등.
- 박스 모델: 박스, 그리드, 스택, 덱 등.
- 이벤트 및 스크립트: 스크립트, 명령, 키, 브로드캐스터, 옵저버 등.
- 데이터 소스: 템플릿, 규칙 등.
- 기타: 오버레이, iframe, 브라우저, 편집기 등.
XUL 위젯의 기본 동작은 XBL 바인딩으로 변경할 수 있다. XUL의 사양은 많은 종류의 요소를 규정하고 있으며, 이들은 대략 다음과 같이 분류할 수 있다.
- 최상위 요소: 창, 페이지, 다이얼로그, 위자드 등
- 위젯: 레이블, 버튼, 텍스트 상자, 리스트 박스(콤보 상자), 라디오 버튼, 체크 박스, 트리, 메뉴, 툴바, 그룹 박스, 탭, 컬러 피커, 스페이서, 스플리터 등
- 박스 모델: 박스, 그리드, 스택, 데크 등
- 이벤트와 스크립트: 스크립트, 커맨드, 키보드, 브로드캐스터, 옵저버 등
- 데이터 소스: 템플릿, 규칙 등
- 기타: 오버레이(클라이언트 사이드에서 실행되는 Server Side Includes), 인라인 프레임, 브라우저, 에디터 등
XUL 기술 안에는 XHTML이나 MathML과 같은 다른 XML 애플리케이션에 의한 요소를 포함하는 것도 가능하다.
4. 4. 이벤트 및 스크립트
XUL은 스크립트 언어를 사용하여 사용자 인터페이스의 동작을 제어하는 스크립트, 사용자가 실행할 수 있는 특정 동작을 정의하는 명령, 키보드 단축키를 정의하여 특정 명령을 실행할 수 있도록 하는 키, 여러 요소에 이벤트를 동시에 전달하는 브로드캐스터, 특정 이벤트가 발생했을 때 지정된 동작을 실행하도록 하는 옵저버 등 다양한 요소를 정의하여 이벤트 처리 및 스크립트 기능을 제공한다.[16] 이러한 요소들은 사용자 인터페이스의 동적인 동작을 구현하는 데 사용된다.4. 5. 데이터 소스
XUL은 광범위한 요소를 정의하며, 다음과 같은 유형으로 분류할 수 있다.- 최상위 요소: 창, 페이지, 대화 상자, 마법사 등.
- 위젯: 레이블, 버튼, 텍스트 상자, 목록 상자, 콤보 상자, 라디오 버튼, 체크 상자, 트리, 메뉴, 툴바, 그룹 상자, 탭 상자, 색상 선택기, 스페이서, 스플리터 등.
- 박스 모델: 박스, 그리드, 스택, 덱 등.
- 이벤트 및 스크립트: 스크립트, 명령, 키, 브로드캐스터, 옵저버 등.
- 데이터 소스: 템플릿, 규칙 등.
- 기타: 오버레이, iframe, 브라우저, 편집기 등.
데이터 소스는 템플릿, 규칙 등을 포함한다.[16]
4. 6. 기타
XUL은 클라이언트 사이드에서 실행되는 서버 사이드 인클루드와 유사한 오버레이, 인라인 프레임, 브라우저, 편집기 등 기타 요소들을 정의한다.[16]5. XBL (XML Binding Language)
XBL(XML Binding Language)은 XUL 그래픽 위젯의 동작을 변경하기 위한 XML 기반의 마크업 언어이다. 예를 들어 스크롤 막대가 있다.[17][18] XBL 파일에는 데이터 바인딩이 포함되어 있으며, 각 바인딩은 XUL 위젯의 동작을 설명한다. XBL 파일의 루트 요소는 <bindings> 요소이며, 하나 이상의 <binding> 요소를 포함한다. 각 <binding> 요소는 하나의 바인딩을 선언하며, 이는 모든 XUL 요소에 연결될 수 있다. 또한 id 속성을 가질 수 있다. 바인딩은 CSS 속성 -moz-binding을 바인딩 파일의 URL로 설정하여 요소에 할당된다.[19] 예를 들어 다음과 같다.
```css
scrollbar {
- moz-binding: url('somefile.xml#binding1');
}
6. 사용 예시
XUL은 주로 모질라와 파이어폭스 본체 및 확장 기능에 사용되지만, HTTP로 전송되는 웹 애플리케이션에도 사용할 수 있다. 예를 들어, '모질라 아마존 브라우저'라는 Amazon.com에서 책을 검색하기 위한 리치 클라이언트 소프트웨어가 XUL 애플리케이션으로 사용되었다.[27] 그러나 모질라의 강력한 특징인 XPCOM 객체를 사용할 수 있는 권한은 보안상의 이유로 원격 XUL 문서에는 주어지지 않는다(서명이 없는 한 권한이 주어지지 않음). 또한 다른 제한도 있는데, 예를 들어 다른 도메인의 외부 XUL이나 DTD 또는 RDF 문서를 읽어올 수 없다.
다음은 수직 상자 컨테이너 안에 서로 쌓여 있는 세 개의 버튼을 보여주는 예시이다:[20]
7. 영화 ''고스트버스터즈''와의 관련
XUL은 1984년 영화 ''고스트버스터즈''에서 유래되었다.[25] 영화 속 악당은 가상의 신 주울(Zuul, 문지기)이다.[21] 주울은 다나 배럿을 지배하며 "다나는 없다. 오직 주울 뿐이다."라고 말한다.[22][25] 주울과 발음이 같은 XUL의 제작자들은 "데이터는 없다. 오직 XUL 뿐이다!"라는 슬로건을 만들었다.[24] 이 슬로건과 문지기로서의 주울은 XUL의 XML 네임스페이스 URI에 언급되었으며, 이전에는 모든 Firefox 부가 기능에 존재했다:[25] `http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul`
XUL 개발자들은 영화 속 대사를 인용하여 "There is no data, only XUL (데이터는 없어, XUL만 있을 뿐)"이라는 슬로건을 내걸었다. 이것은 XUL 애플리케이션에서 XML 네임스페이스 선언에 사용되는 URI인 `https://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul`에 기술된 문장이기도 하다.
"keymaster"나 "gatekeeper"도 같은 작품의 시나리오에서 나왔다. 고스트버스터즈에서 따온 것은 Mozilla의 다른 제품에서도 볼 수 있는데, 예를 들어 JavaScript에는 [https://developer.mozilla.org/Ja/Venkman Venkman]이라는 디버거 컴포넌트가 있는데, 이것은 같은 작품의 주인공 중 한 명인 피터 벤크먼 박사에서 유래되었다.
참조
[1]
웹사이트
Problems with XUL
https://mozilla.gith[...]
2019-06-07
[2]
웹사이트
Firefox 57.0, See All New Features, Updates and Fixes
https://www.mozilla.[...]
2017-11-14
[3]
웹사이트
The Future of Developing Firefox Add-ons
https://blog.mozilla[...]
2018-04-02
[4]
웹사이트
Waterfox, Its Legacy and Looking to the Future
https://blog.waterfo[...]
2018-06-20
[5]
웹사이트
Pale Moon future roadmap
https://www.palemoon[...]
Moonchild Productions
2018-04-02
[6]
뉴스
Pale Moon team releases first version of Basilisk browser
https://www.ghacks.n[...]
2018-04-02
[7]
웹사이트
Iceweasel-UXP project page
https://wiki.hyperbo[...]
[8]
웹사이트
Ars Technica sits down with Scott Collins from Mozilla.org
https://arstechnica.[...]
Ars Technica
2018-11-28
[9]
웹사이트
Why Did Mozilla Remove XUL Add-ons?
https://yoric.github[...]
2020-08-20
[10]
웹사이트
Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)
http://www.oreillyne[...]
2003-02-05
[11]
웹사이트
Firefox/XUL and XBL Replacement
https://wiki.mozilla[...]
2022-09-27
[12]
웹사이트
Life After XUL
https://developer.mo[...]
Mozilla
2018-11-28
[13]
웹사이트
Adapt to Changes in Thunderbird 69-78
https://developer.th[...]
2022-09-27
[14]
웹사이트
UXP vs goanna
https://forum.palemo[...]
2022-09-27
[15]
웹사이트
There is only XUL
http://thereisonlyxu[...]
2018-09-18
[16]
웹사이트
Gecko FAQ {{!}} MDN
https://developer.mo[...]
2021-01-05
[17]
웹사이트
Ars Technica sits down with Scott Collins from Mozilla.org
https://arstechnica.[...]
2018-11-28
[18]
웹사이트
XBL 2.0 Acknowledgments
http://www.w3.org/TR[...]
[19]
웹사이트
XBL 2.0
http://www.w3.org/TR[...]
[20]
웹사이트
The Box Model - Mozilla {{!}} MDN
https://developer.mo[...]
2021-01-05
[21]
서적
Receptions of the Ancient Near East in Popular Culture and Beyond
https://books.google[...]
Lockwood Press
2020-03-01
[22]
웹사이트
"'Ghostbusters' turns 30: Revisit film's supernatural wisdom"
https://www.today.co[...]
2014-06-06
[23]
서적
Inside XML
https://books.google[...]
New Riders
2001
[24]
웹사이트
Mozilla XML Namespace
https://www.mozilla.[...]
[25]
서적
Beginning Smartphone Web Development: Building JavaScript, CSS, HTML and Ajax-based Applications for iPhone, Android, Palm Pre, BlackBerry, Windows Mobile and Nokia S60
https://books.google[...]
Apress
2010-04-15
[26]
웹인용
Gecko FAQ
https://developer.mo[...]
모질라 재단
2008-03-15
[27]
웹인용
보관된 사본
https://developer.mo[...]
2013-10-13
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
