Introduction

This is an archived page. It's not actively maintained.

이 μ„€λͺ…μ„œλŠ” XUL(XML μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ μ–Έμ–΄)λ₯Ό λ°°μš°λŠ” 데 도움을 μ£ΌκΈ° μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. XUL은 μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό μž‘μ„±ν•˜λŠ” 데 μ“°μ΄λŠ” 크둜슀 ν”Œλž«νΌ μ–Έμ–΄μž…λ‹ˆλ‹€.

이 μ„€λͺ…μ„œλŠ” λ§€ν‚¨ν† μ‹œμ˜ μ…œλ‘μ΄λ‚˜ μœˆλ„μš°μ˜ 검색 λŒ€ν™”μƒμžμ²˜λŸΌ 파일 μ°ΎκΈ° κΈ°λŠ₯을 κ°–μΆ˜ κ°„λ‹¨ν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“œλŠ” 방법을 μ„€λͺ…ν•΄λ‚˜κ°ˆ κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‹€λ£¨λŠ” λ‚΄μš©μ€ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€κ³  λͺ‡ 가지 κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” κ²ƒμœΌλ‘œ μ œν•œν•  κ²ƒμž…λ‹ˆλ‹€. μ‹€μ œλ‘œ νŒŒμΌμ„ μ°ΎλŠ” κΈ°λŠ₯에 λŒ€ν•œ μ„€λͺ…은 μ œκ³΅λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ¬Έμ„œ μ™Όμͺ½μ— νŒŒλž€μ„ μ΄ λ‚˜νƒ€λ‚˜λŠ” 문단은 파일 μ°ΎκΈ° λŒ€ν™”μƒμžκ°€ μˆ˜μ •λ˜λŠ” λΆ€λΆ„μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ 문단을 따라가면 μš°λ¦¬κ°€ μ›ν•˜λŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€κ°€ μ™„μ„±λ©λ‹ˆλ‹€.

XUL은 무엇이며 μ™œ λ§Œλ“€μ–΄μ‘ŒλŠ”κ°€?

XUL(cool의 λ¦¬λ“¬μœΌλ‘œ 쀄(zool)이라고 λ°œμŒν•©λ‹ˆλ‹€)은 더 쉽고 λΉ λ₯΄κ²Œ λͺ¨μ§ˆλΌ λΈŒλΌμš°μ € κ°œλ°œμ„ ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. XML 언어이기 λ•Œλ¬Έμ— XMLμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λͺ¨λ“  κΈ°λŠ₯은 XULμ—μ„œλ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•  λ•Œ νŠΉμ • ν”Œλž«νΌμ˜ κΈ°λŠ₯을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ 많기 λ•Œλ¬Έμ— 크둜슀 ν”Œλž«νΌ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“œλŠ” λ°λŠ” λ§Žμ€ μ‹œκ°„κ³Ό λΉ„μš©μ΄ ν•„μš”ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ 였래 μ „λΆ€ν„° 크둜슀 ν”Œλž«νΌ 개발 도ꡬ가 개발되고 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μžλ°”λŠ” 이식성을 κ°€μž₯ 큰 μž₯점으둜 λ‚΄μ„Έμš°κ³  μžˆμŠ΅λ‹ˆλ‹€. XUL도 이식 κ°€λŠ₯ν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ κ³ μ•ˆλœ μ–Έμ–΄μž…λ‹ˆλ‹€. ν•œ ν”Œλž«νΌμ— λ§žμΆ”μ–΄ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜λŠ” 데에도 λ§Žμ€ μ‹œκ°„μ΄ κ±Έλ¦½λ‹ˆλ‹€. μ»΄νŒŒμΌμ„ ν•˜κ³  디버그λ₯Ό ν•˜λŠ” 과정이 맀우 κΈΈμ–΄μ§ˆ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, XUL을 μ‚¬μš©ν•˜λ©΄ λΉ λ₯΄κ³  μ‰½κ²Œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€κ³  μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

XUL은 λ‹€λ₯Έ XML μ–Έμ–΄μ˜ μž₯점을 λͺ¨λ‘ κ°–μΆ”κ³  μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ XHTMLμ΄λ‚˜ MathML, SVG 같은 XML μ–Έμ–΄λ₯Ό XUL μ•ˆμ— μ‚½μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 XUL에 μ‚¬μš©λœ λ¬Έκ΅¬λŠ” μ‰½κ²Œ ν˜„μ§€ν™”ν•  수 있기 λ•Œλ¬Έμ— λ²ˆμ—­ μž‘μ—…μ΄ μˆ˜μ›”ν•©λ‹ˆλ‹€.

XUL둜 λ§Œλ“€ 수 μžˆλŠ” μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λŠ” 무엇인가?

XUL은 λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬ μ„Έλ ¨λœ κ·Έλž˜ν”½ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€ 수 있게 ν•΄μ€λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ•„λž˜μ™€ 같은 μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

  • ν…μŠ€νŠΈλ°•μŠ€, μ²΄ν¬λ°•μŠ€ 같은 μž…λ ₯ 컨트둀
  • λ²„νŠΌ λ“±μ˜ κΈ°λŠ₯을 κ°–μΆ˜ λ„κ΅¬λ§‰λŒ€
  • 메뉴 λ§‰λŒ€λ‚˜ νŒμ—… 메뉴에 μ‚¬μš©λ˜λŠ” 메뉴 ν•­λͺ©
  • νƒ­μœΌλ‘œ 이루어진 λŒ€ν™”μƒμž
  • μƒν•˜ κ΄€κ³„λ‚˜ ν‘œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 트리
  • ν‚€λ³΄λ“œ 단좕글쇠

화면에 ν‘œμ‹œλ˜λŠ” λ‚΄μš©μ€ XUL 파일 λ‚΄λΆ€μ˜ λ‚΄μš©μ΄λ‚˜ λ°μ΄ν„°μ†ŒμŠ€μ— μžˆλŠ” 자료λ₯Ό μ΄μš©ν•˜μ—¬ λ§Œλ“€μ–΄μ§‘λ‹ˆλ‹€. λͺ¨μ§ˆλΌμ—μ„œλŠ” μ‚¬μš©μžμ˜ νŽΈμ§€ν•¨, 뢁마크, 검색 κ²°κ³Ό 등도 λ°μ΄ν„°μ†ŒμŠ€λ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ©”λ‰΄λ‚˜ 트리 같은 μ—˜λ¦¬λ¨ΌνŠΈμ— λ‚΄μš©μ„ 넣을 λ•Œμ—λŠ” 이런 자료뿐만 μ•„λ‹ˆλΌ μ›ν•˜λŠ” λ‚΄μš©μ„ 직접 RDF 파일둜 μž‘μ„±ν•˜μ—¬ μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

XUL은 λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • νŒŒμ΄μ–΄ν­μŠ€ ν™•μž₯ κΈ°λŠ₯ -- ν™•μž₯ κΈ°λŠ₯은 λΈŒλΌμš°μ €μ— μƒˆλ‘œμš΄ κΈ°λŠ₯을 λ„£λŠ” ν”„λ‘œκ·Έλž¨μž…λ‹ˆλ‹€. ν™•μž₯ κΈ°λŠ₯은 도ꡬ λ§‰λŒ€λ‚˜ 상황 메뉴에 μƒˆλ‘œμš΄ 도ꡬλ₯Ό 넣기도 ν•˜κ³  λΈŒλΌμš°μ €μ˜ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ³€ν™”μ‹œν‚€κΈ°λ„ ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μž‘μ—…μ€ XUL이 μ œκ³΅ν•˜λŠ” μ˜€λ²„λ ˆμ΄ κΈ°λŠ₯을 톡해 μ΄λ£¨μ–΄μ§€λŠ”λ°, μ΄λ ‡κ²Œ ν•˜λ©΄ ν™•μž₯ κΈ°λŠ₯에 μ œμ‹œλœ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό νŒŒμ΄μ–΄ν­μŠ€ λΈŒλΌμš°μ €μ˜ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ™€ ν•©μΉ  수 μžˆμŠ΅λ‹ˆλ‹€. ν™•μž₯ κΈ°λŠ₯은 μ¬λ”λ²„λ“œ λ“± λ‹€λ₯Έ λͺ¨μ§ˆλΌ μ œν’ˆμ—λ„ 적용될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ…λ¦½λœ XULRunner μ‘μš© ν”„λ‘œκ·Έλž¨ -- XULRunnerλŠ” λͺ¨μ§ˆλΌ ν”Œλž«νΌμ„ νŒ¨ν‚€μ§€ν™”ν•œ κ²ƒμœΌλ‘œ, 이λ₯Ό μ΄μš©ν•˜λ©΄ λ…λ¦½λœ XUL μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ§Œλ“€μ–΄μ§„ ν”„λ‘œκ·Έλž¨μ€ μ‹€ν–‰ νŒŒμΌμ„ κ°–κ³  있기 λ•Œλ¬Έμ— λΈŒλΌμš°μ €κ°€ 없이도 μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • XUL 꾸러미 -- ν™•μž₯ κΈ°λŠ₯κ³Ό XULRunner μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ 쀑간에 μœ„μΉ˜ν•œ λ‹¨κ³„μž…λ‹ˆλ‹€. ν™•μž₯ κΈ°λŠ₯처럼 λ§Œλ“€μ–΄μ§€μ§€λ§Œ λ…λ¦½λœ μ°½μ—μ„œ μ‹€ν–‰λ˜μ–΄ λ…λ¦½λœ μ‘μš© ν”„λ‘œκ·Έλž¨μ²˜λŸΌ μž‘λ™ν•©λ‹ˆλ‹€. λŒ€μš©λŸ‰μ˜ XULRunnerλ₯Ό ν¬ν•¨ν•˜μ§€ μ•ŠλŠ”λŒ€μ‹ , μ‚¬μš©μžκ°€ ν•„μš”μ— 따라 λͺ¨μ§ˆλΌ λΈŒλΌμš°μ €λ₯Ό μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 원격 XUL μ‘μš© ν”„λ‘œκ·Έλž¨ -- XUL μ½”λ“œλ₯Ό μ›Ή μ„œλ²„μ— μ €μž₯ν•˜μ—¬ λΈŒλΌμš°μ €μ—μ„œ μ—΄κ²Œ ν•˜λ©΄ 일반 μ›Ή λ¬Έμ„œμ²˜λŸΌ μž‘λ™ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λ‹€λ₯Έ 창을 μ—¬λŠ” λ“± 일뢀 κΈ°λŠ₯은 λ³΄μ•ˆκ³Ό κ΄€λ ¨λœ 문제 λ•Œλ¬Έμ— μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

μ•žμ˜ μ„Έ κ°€μ§€λŠ” μ‹€ν–‰ν•˜κΈ° 전에 μ‚¬μš©μžμ˜ 컴퓨터에 μ„€μΉ˜λ₯Ό ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ, 이듀은 λ³΄μ•ˆκ³Ό κ΄€λ ¨λœ μ œμ•½μ΄ μ—†κΈ° λ•Œλ¬Έμ— ν•˜λ“œλ””μŠ€ν¬μ˜ νŒŒμΌμ— μ ‘κ·Όν•˜κ±°λ‚˜ μ‚¬μš©μžμ˜ ν™˜κ²½ 섀정을 읽고 λ°”κΎΈλŠ” 것과 같은 μž‘μ—…λ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν™•μž₯ κΈ°λŠ₯은 XUL νŒŒμΌμ„ λΉ„λ‘―ν•œ 슀크립트, κ·Έλ¦Ό 파일 등이 ν•˜λ‚˜μ˜ 파일둜 μ••μΆ•λ˜μ–΄ μ œκ³΅λ˜λŠ”λ° μ‚¬μš©μžλŠ” 이λ₯Ό λ‚΄λ € λ°›μ•„ μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. νŒŒμ΄μ–΄ν­μŠ€ λ“±μ˜ λͺ¨μ§ˆλΌ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ‚¬μš©μžκ°€ μ†μ‰½κ²Œ ν™•μž₯ κΈ°λŠ₯을 μ„€μΉ˜ν•  수 μžˆλ„λ‘ ν™•μž₯ κΈ°λŠ₯ κ΄€λ¦¬μžλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

XUL νŒŒμΌμ„ ν•˜λ“œ λ””μŠ€ν¬λ‚˜ μ›Ή μ‚¬μ΄νŠΈμ—μ„œ λ°”λ‘œ μ—΄ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, 이 κ²½μš°μ—λŠ” μ‚¬μš©ν•  수 μžˆλŠ” κΈ°λŠ₯에 μ œμ•½μ΄ 있고 XUL의 일뢀 κΈ°λŠ₯이 λ°”λ₯΄κ²Œ μž‘λ™ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. XUL둜 μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ΄ μ›Ή μ‚¬μ΄νŠΈλ₯Ό 톡해 μ—΄λ¦¬κ²Œ ν•˜λ €λ©΄, μ›Ή μ„œλ²„κ°€ XUL νŒŒμΌμ„ "application/vnd.mozilla.xul+xml" μ»¨ν…νŠΈ νƒ€μž…μœΌλ‘œ μ „μ†‘ν•˜λ„λ‘ μ„€μ •ν•˜μ—¬μ•Ό ν•©λ‹ˆλ‹€. XUL은 보톡 ν™•μž₯μžκ°€ .xul인 νŒŒμΌμ— μ €μž₯λ©λ‹ˆλ‹€. λͺ¨μ§ˆλΌμ—μ„œλŠ” λ‹€λ₯Έ νŒŒμΌμ„ μ—΄ λ•Œμ²˜λŸΌ 파일 메뉴 μ•„λž˜μ˜ 파일 μ—΄κΈ°λ₯Ό μ΄μš©ν•˜κ±°λ‚˜ μ£Όμ†Œ λ§‰λŒ€μ— 직접 URL을 μž…λ ₯ν•˜μ—¬μ„œλ„ XUL νŒŒμΌμ„ μ—΄ 수 μžˆμŠ΅λ‹ˆλ‹€.

이 μ„€λͺ…μ„œλ₯Ό 읽기 μœ„ν•΄ μ•Œμ•„μ•Όν•  것은 무엇인가?

HTMLκ³Ό XML, CSS에 λŒ€ν•œ 기본적인 지식이 ν•„μš”ν•©λ‹ˆλ‹€. λ‹€μŒ 사항을 항상 κΈ°μ–΅ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

  • XUL μ—˜λ¦¬λ¨ΌνŠΈμ™€ 속성은 λ°˜λ“œμ‹œ μ†Œλ¬Έμžλ‘œ μž…λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ XML은 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. (HTML은 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€.)
  • 속성값은 λ°˜λ“œμ‹œ 인용 λΆ€ν˜Έ μ•ˆμ— μž…λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€. μˆ«μžλ„ μ˜ˆμ™Έκ°€ μ•„λ‹™λ‹ˆλ‹€.
  • XUL νŒŒμΌμ€ 보톡 λ„€ 파일둜 λ‚˜λ‰˜μ–΄μ§€λŠ”λ°, 각각 λ ˆμ΄μ•„μ›ƒκ³Ό μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό μ •μ˜ν•œ 파일, μŠ€νƒ€μΌμ„ μ„ μ–Έν•œ 파일, ν˜„μ§€ν™”μ— μ‚¬μš©λ˜λŠ” μ—”ν‹°ν‹°λ₯Ό μ„ μ–Έν•œ 파일, 슀크립트 νŒŒμΌμž…λ‹ˆλ‹€. 여기에 κ·Έλ¦Ό νŒŒμΌμ΄λ‚˜ νŠΉμ • ν”Œλž«νΌμ„ μœ„ν•œ μžλ£Œκ°€ 좔가될 수 μžˆμŠ΅λ‹ˆλ‹€.

XUL은 λͺ¨μ§ˆλΌμ™€ 그에 λ°”νƒ•ν•œ λΈŒλΌμš°μ €(λ„€μŠ€μΌ€μ΄ν”„ 6 이상 그리고 λͺ¨μ§ˆλΌ Firefox)μ—μ„œ μ§€μ›λ©λ‹ˆλ‹€. XUL ꡬ문은 였랜 μ‹œκ°„λ™μ•ˆ μ—¬λŸ¬ λ³€ν™”κ°€ μžˆμ—ˆκΈ° λ•Œλ¬Έμ—, μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•  수 μžˆλŠ” μ΅œμ‹ μ˜ 사둀λ₯Ό λ³΄μ•˜μœΌλ©΄ ν•  κ²ƒμž…λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μ‚¬λ‘€λŠ” λͺ¨μ§ˆλΌ 1.0 μ΄μƒμ—μ„œ μž‘λ™ν•©λ‹ˆλ‹€.

νŒŒμ΄μ–΄ν­μŠ€ λ“±μ˜ λΈŒλΌμš°μ €μ—μ„œ μž‘λ™ν•˜λŠ” XUL도 이와 맀우 λΉ„μŠ·ν•˜μ§€λ§Œ, 도ꡬ λ§‰λŒ€ νŽΈμ§‘ κΈ°λŠ₯ λ“± 각 λΈŒλΌμš°μ €μ— νŠΉν™”λœ κΈ°λŠ₯을 κ°–μΆ”κ³  μžˆμŠ΅λ‹ˆλ‹€.

이 μ„€λͺ…μ„œλŠ” XUL의 λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ„€λͺ…ν•  κ²ƒμ΄μ§€λ§Œ λͺ¨λ“  κΈ°λŠ₯을 λ‹€λ£¨μ§€λŠ” μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. XUL에 μ–΄λŠ 정도 μ΅μˆ™ν•΄μ§„ 후에 νŠΉμ • μ—˜λ¦¬λ¨ΌνŠΈκ°€ μ§€μ›ν•˜λŠ” κΈ°λŠ₯듀을 μ‚΄νŽ΄λ³΄κ³  μ‹ΆμœΌλ©΄ XUL Referenceλ₯Ό μ΄μš©ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.