XUL 이 뭐예요?

Posted: December 7th, 2006 | Author: weongyo | Filed under: XUL |

[항상 feedback/의견 댓글로 받습니다.  오류 사항, XUL에 관한 질문이 있을 경우, 모두모두 댓글로 남겨주세요.] 

Q. XUL 이 뭐예요? 

저도 잘 모릅니다.  조금 밖에 지식이 없으며, ‘파일경매‘라는 프로그램을 만들면서 처음 접한 언어이기도 합니다.

이게 XUL 을 설명한 한국어 버전입니다.

XUL (XML User Interface Language)은 Mozilla의 XML 기반 언어로 인터넷과 연결되거나 또는 연결되지 않은 채로 동작하는 풍부한 기능을 제공하는 크로스 플랫폼 응용프로그램을 만들 수 있게 해줍니다. 이렇게 만들어진 응용프로그램은 텍스트나 그래픽, 배치 등을 쉽게 바꿀 수 있기 때문에 여러가지 요구에 맞게 즉시 상품화나 지역화 해 내어놓을 수 있습니다. 다이나믹 HTML (DHTML)에 친숙한 웹 개발자들은 XUL을 금방 배워서 바로 응용프로그램을 만들어 볼 수 있을 것입니다.

이해가 되나요? 단순하게 말하면 XML 로 UI 를 만들 수 있다는 말인 것 같네요.  대부분 HTML 코드를 읽을 줄 알고 쓸수 있는 사람이면 쉽게 XUL 로 프로그래밍을 할 수 있는 것 같습니다.

Q. 그럼 UI 만 XUL 로 작성하고 안에 내부 루틴은요? Visual Basic 으로 내부 루틴을 작성하고 UI 만 XUL 로 하면 안될까요?

제가 조사한 바에 의하면 XUL 로 UI 로 작성하였다면 Javascript 로 내부 루틴을 작성하면 되었습니다.

Q. 그럼 모든 루틴을 Javascript 로 작성하란 말입니까?  우리에겐 속도가 생명입니다.  제일 빠른 C 나 C++ 로 작성하고 싶은데..

속도가 생명이라구요? 근데 왜 XUL 로 작성하세요?  다른 솔루션들이 많을텐데.. 꼭 XUL 작성이 필요하다면 걱정하지 마세요.  Javascript 의 친구 XPCOM 이 있거든요.  XPCOM 은 나중에 얘기되겠지만 채워주지 못했던 2% 를 보충해 주지 않을까 생각이 되네요.

음.. 그럼 대충 프로그램은 어떻게 작성할지 윤곽이 나오는군요.  UI 는 XUL 로 하고 내부 루틴은 Javascript 와 XPCOM 으로 한다라..  괜찮은 조합인지는 좀 더 살펴봐야 하겠어요.  근데 뭐가 대단하길래 XUL 을 써서 프로그래밍하라고 하는지 이해를 할 수 가 없군요.

그러게요.  저도 처음엔 XUL 을 가지고 어떻게 프로그래밍할지도 몰랐고 뭐 부터 시작해야 할지 몰랐는데요.   저에게 가장 큰 문제는 UI 였어요.  비록 wxWindows 나 gtk, 매우 기본적인 윈도우즈 UI 는 할 수 있었는데요.. 왜 제 머리 속에서는 그렇게 복잡하던지.. ㅋㅋ

아! 저에게 제일 중요한 것은 label 이나 button 같은 것들은 1px 단위로 정교하게 조절하는 것이였어요.

근데 XUL 같은 경우는 HTML 코드에서 CSS 로 margin 주고 padding 주고 더군다나 *-top, *-left, *-right, *-bottom 같은 문법으로 정교하게 할 수 있으니까, 지금 가진 지식가지고 나름대로 쉽게 UI 를 할 수 있을 것 같더라구요.

그리고 Firefox 내 확장 모듈로 작성할 수 있고, standalone 형식으로 할려면 XULRunner 를 사용해서 배포할 수 있다고 장점으로 말하길래, 먼가 대단한 줄 알고 사용해 보게 되었죠. 

그리고 XULRunner 가 윈도우즈용, 맥용, 리눅스용 전부 지원한다고 하길래, 우와! XUL 로 한번 만들어 놓으면 모든 플랫폼에서 다 쓸 수 있는거야? 라고 생각했죠. -_-;

왜 이리 말투가 썩소를 지으며 말하는 것 같죠?  뭐 별로 안좋은 기억이라도 있나봐요?

ㅡ.ㅡ;  말투가 그래요?  흠흠.. 뭐 원래 제 말투가 썩소가 주가 되기 때문에 크게 마음 상하지 마세요.  좋지 않은 기억이라…  생각을 좀 해봐야 알겠지만..

근데 저의 경우, XULRunner 를 이용해서 standalone 형식으로 배포를 해봤기 때문에 다른 확장팩 배포가 아니라 그냥 안좋은 기억 말해도 돼요?

음.. 배포판 크기가 넘 커요.  최소 배포판 크기가 6M (lzma? 로 압축을 극한으로 해서) 정도 되요.  이게 생각보다 걸리더라구요. ㅋ  어떻게 alert 하나 뛰우고 끝내는 프로그램 배포판 크기가 6M 씩이나 해야 하는 거냐구요.  ㅋ 물론 XUL 프레임워크이 있어야 하니까, 어쩔 수 없이 같이 배포해야 하니 당연히 용량이 커지는 건 마땅한데 말이죠.  제 생각에서는 윈도우즈 비스타에 built-in 되서 마이크로소프트에서 배포해 줬으면 좋겠어요.  아니면 XP 서비스팩에 넣어서 배포해 주면 빌에게 유혹의 키스를 보낼텐데..

음.. 다른 건.. XUL 어플리케이션을 만들면서 “그냥 차라리 XUL 프로그램으로 만들지 말고 웹 어플리케이션으로 만들 걸 그랬어“라고 한번쯤 생각해 봤다는 거예요.  XUL 프로그램도 HTTP 서버랑 통신할 때 Ajax 처럼 통신을 하기 때문에 (물론 다른 방법 많지만..), 그냥 웹 어플리케이션으로 만드는 거랑 XUL 랑 만드는 거랑 뭐가 이점인지 헷갈릴 때가 있더군요.  웹 어플리케이션으로 XUL 인터페이스를 대체할 경우, 사용자는 배포판을 설치할 필요도 없을꺼고, 웹 브라우저 성격도 타지 않을 꺼고, 오히려 이득인데 말이죠.

그럼 XUL 어플리케이션에는 XUL 만 할 수 있는 기능을 중점으로 최소화해서 배포하면 되잖아요?

음.. 좋은 생각이지만 그것도 생각해 봤죠.  XULRunner 를 통해서 standalone 형식으로 실행할 경우, local 자원을 모두 access 할 수 있기 때문에 많은 일을 할 수 있었는데요, 문제는 그럼 그냥 윈도우즈 UI 로 짜지 구지 XUL 로 짤 필요가 있을까?  배포판도 6M 가 넘고, 리눅스용 맥용은 10M 하는데..

크로스 플랫폼이라고 하지만 XPCOM 단에서는 결국 크로스 플랫폼 생각하면서 C/C++ 코딩해야 하니..

그럼 뭐가 장점이지?  헷갈리더라구요.

아닛! 이사람이.  XUL 을 써라는 거야 말라는 거야?

지금 머리 속의 결론은 써도 그만, 안써도 그만.  단 firefox 확장팩은 저도 몰라요.

간단한 UI + 간단한 내부 루틴이 필요하다면 해당 플랫폼 언어를 사용하는 것을 추천하고, 복잡한 UI + 복잡한 내부 루틴을 쓴다고 해도 해당 플랫폼 언어를 추천합니다.

크로스 플랫폼을 지향하며, 윈도우즈용, 맥용, 리눅스용 모두 같은 look & feel 을 원한다면 잠시 XUL 사용을 권해드리지만 원츄!하지는 않아요.

어차피 XPCOM 단에서는 모두 크로스 플랫폼으로 코딩을 하는게 필수~

새로운 UI 언어에 대한 경험을 원한다면 원츄!  XPCOM 을 알고 배우고 사용해 보고 싶다면 원츄!

[항상 feedback/의견 댓글로 받습니다.  오류 사항, XUL에 관한 질문이 있을 경우, 모두모두 댓글로 남겨주세요.]


TrackBack URL

1 Comment to 'XUL 이 뭐예요?'

  1. 1 하치 said at 12:19 am on May 29th, 2007:

    윤석찬씨가 2004년도 컬럼에서 이런 말을 하셨네요.
    ” 데스크톱에 어떤 플랫폼이 깔리게 되느냐는 새로운 전쟁은 바로 미래를 보는 잣대다. 네트워킹된 데스크톱 컴퓨터 뿐 아니라 디지털 TV, 셋톱, 텔레매틱스, 임베디드 디바이스들이 범람할 미래에는 응용 프로그램의 생산과 유통을 책임질 플랫폼을 누가 장악할 것인가가 주요 이슈라는 것이다.

    누가 아는가? 검색 분야를 휩쓸고 있는 구글이 모질라 플랫폼을 이용해 롱혼을 잠재울는지. @”

    현재 XUL이 얼마나 연구되고 있는지 산업적으로 관심이 확대되고 있는지 궁금합니다.
    삼성에서 한창 연구 중이라고 들었는데요.. 다른 곳에서도 관심을 가지고 개발 및 연구를 하고 있나요?

Leave a comment