Posted by 장창학 | Tags: Open BlueDragon | 댓글남기기 | January 03, 2012
ColdFusion은 웹언어이기 때문에 ColdFusion자체로 Windows용 응용프로그램을 개발할 수 는 없지만 Webserver와 Embeded Database을 패키징하여 제공한다면 불가능한 일도 아닙니다. 가령, 파일공유를 위한 어플리케이션이나 메신저와 같은 어플리케이션의 경우 자체적으로 웹서버 또는 통신서버를 내장하고 UI부분을 HTML/Javascript 등으로 만든 다음 이를 설치패키지(InstallShield와 같은)한 어플리케이션도 많이 있습니다.
Open Bluedragon에서 재밌는 패키지를 제공하고 있는데요. 작은 Open Bluedragon기반의 웹서버를 같이 패키징해서 어플리케이션이 실행되면 백그라운드로 웹서버가 구동되며, 브라우저기반의 어플리케이션을 구현할 수 있도록 만든것입니다. 뭐 이와 비슷한 개념의 배포 어플리케이션의 APMSetup과 같은 거니까 신기할건 없지만 ColdFusion의 강력함을 더할 수 있다는 점은 매우 흥미롭습니다.
가령 ColdFusion이 자체적으로 내장해서 가지고 있는 몇몇 기능중에는 Apache POI, Solr, iText, PDFBox 등등이 있는데 이를 이용하면 문서변환 로컬어플리케이션이나, 데스크톱 검색엔진등도 만들 수 있지요. 로컬 이미지뷰어나 FLV재생기 등등 웹에서 할 수 있는 것을 데크스톱 로컬로 옮긴다고 생각하시면 될것 같습니다.

Open BD-Local 패키지를 받아서 압축을 풀면, 왼쪽 그림과 같이 openbd.exe파일은 실행파일이고 webapp 디렉토리가 기본적으로 웹루트가 됩니다. openbd.exe 실행하면 순간적으로 내장 웹서버와 ColdFusion 해석기가 실행되므로 로컬에 Open BD 데스크톱버전이 깔린 경우와 같게 됩니다. 하지만 MySQL등의 별도의 DB는 사용이 불가능할 수 있으므로 내장 H2 Database나 Apache Derby 등의 Embeded Database를 쓰면 됩니다. webapp 안에 Open Bluedragon의 웹아카이브 파일을 압축을 풀어주고 openbd.exe를 시작하면 cfm파일과 같은 ColdFusion문서를 해석할 수 있는 것이죠.
기본적으로 32124포트를 이용하므로 다른 웹서버와 충돌이 날 확률은 없습니다만, 이 역시도 변경이 가능합니다. webapp 안에 직접 만든 ColdFusion Document 등을 저장하고 브라우저로 접속하여 테스트 한후 Open BD-Local 디렉토리 자체를 Nullsoft의 NSIS를 이용해서 패키징하여 제공하게 됩니다.
간단하게 웹기반 ColdFusion 어플리케이션을 Windows용으로 배포할때 매우 유용할 것 같습니다. ColdFusion Scheduler를 이용한 로컬 URL로더(원격 웹서버의 상태를 주기적으로 모니터링하는 어플리케이션)를 개발하고 있는데 다되면 부끄럽지만 공개해 볼까 합니다.
About
Adobe ColdFusion, Railo, Open BlueDragon 그리고 jQuery와 HTML5, Web기술에 관심을 둔 개인적인 블로그입니다.

