Entries for month: February 2012

Adobe에서 2012년 2월 17일 10번째 ColdFusion의 새 버전의 Beta(코드명 Zeus : 왼쪽 그림출처 - supercoloring.com)를 공개했습니다. 1995년 세상에 처음 나온 ColdFusion(PHP와 동갑내기)이란 웹 개발언어는 그 동안 수많은 웹사이트와 웹 어플리케이션에서  개발언어로서 그리고 Web Application Server로서 지금까지 많은 사랑을 받고 있습니다.

Adobe에서는 8, 9버전에 이여 3번째 릴리즈 입니다. 앞으로 Adobe의 그동안의 홀대?에서 벗어나 중추적인 서버 제품군이 되지 않을까 생각합니다. 최근에 Flex와 관련된 대부분의 기술을 오픈소스로 공개한 후 Apache재단에 기증한 것과 Android/iOS에서의 Flash Player의 개발중단 등 Adobe가 핵심사업으로 밀어 붙혔던 Flash기반의 웹 세상의 목표에 상당히 제동이 걸린 것은 사실이며 그 대안으로 HTML5 등이 떠오르고 있으니까요.

최근의 Adobe 제품군은 HTML5에 대한 지원을 많이 강화하고 있는데 이번에 ColdFusion 10에 HTML5 기능이 많이 보강되었습니다. 오늘은 몇 가지 새로운 기능을 정리하고, Beta버전을 다운로드해서 Tomcat에 Deploay하여 USB등에 가지고 다니면서 살펴볼 수 있는 Portable도 만들어 보도록 하죠.

Adobe ColdFusion 10 Beta의 새로운 기능

아직 Beta 1버전이기 때문에 향후 어떤 기능이 추가되거나 제거될지는 알 수 없지만 여태의 관행으로 볼 때는 대부분의 기능이 그대로 정식버전으로 나올  것입니다.

Adobe ColdFusion 10 Beta 1 Download : http://labs.adobe.com/technologies/coldfusion10/

Apache Tomcat의 내장

지금까지의 Adobe ColdFusion은 JRun4를 기반 서블릿엔진으로 사용했었습니다. Aodbe는 많은 서버제품에 OpenSource를 사용합니다. Flash media server에서도 Apache HTTP서버를 사용하고 있으며, 특히나 ColdFusion 내부의 수많은 라이브러리는 대부분 J2EE진영에서 공개된 것 들입니다. Apache Tomcat 7을 이제 서블릿 엔진으로 사용하므로 다음과 같이 이전 버전과 약간 달라지는 점이 있습니다.

첫번째로 서버 설치시의 Muilti Server installation 옵션이 없어지고, 멀티 인스턴스가 필요한 호스팅 환경을 제공해야 하는 경우 Tomcat에서 멀티 인스턴스를 생성하는 방법과 동일하게 인스턴스를 생성하게 됩니다. Tomcat을 잘 아는 엔지니어의 경우 이제 Adobe ColdFusion도 쉽게 관리 운영할 수 있게 되었습니다.

ColdFusion 10 does not support Multi Server Installation
<Adobe ColdFusion 10에서는 Multi Server Installation을 지원하지 않습니다>

두번째로 Tomcat의 특성을 그대로 상속하긴 하지만 서버 설치 시 자동으로 웹 서버와의 연동 등은 예전 버전처럼 쉽고 편리하게 제공됩니다.

HTML5 기능의 지원

ColdFusion 10에서 가장 기대되는 기능 중의 하나가 HTML5와 관련된 몇 가지 기능을 제공한다는 것인데요, HTML5 비디오의 지원과 차트, Websocket의 지원으로 요약될 수 있을 것 같습니다. 사실 기대한 기능은 좀 더 많은 HTML5의 지원 동적 Canvas의 지원, HTML5비디오의 변환 등의 기능을 기대했는데 다소 아쉽습니다.

Video의 경우 이전 ColdFusion9에서 처음으로 cfmediaplayer 등의 태그로 동적 재생기의 생성을 지원하기 시작했습니다만 실은 훨씬 전부터 Railo에서 cfvideo태그와 같이 FLV비디오의 변환 등을 지원했다는 것에 비해 다소 아쉬운 부분이 없지 않아 있었습니다.

ColdFusion 10 WebM Video on Android ICS
<Flash Player가 구동될 수 없는 Android ICS 크롬브라우저에서의 MP4 재생 – 자동으로 HTML5 플레이어로 렌더링 된다>

Flash Video의 재생과 스트림은 여전히 지원하지만 Flash Player가 지원되지 않은 환경에 대응하기 위해 HTML5 비디오 플레이어를 동적으로 생성하거나 제어, 스킨의 적용 등이 가능해 졌습니다. 아울러, Chart 태그도 HTML5를 지원하여 그동안 Flash, Image, Java applet으로만 보이던 화면을 HTML5로 렌더링하여 동적으로 차트 화면을 생성할 수 있습니다.

ColdFusion 10 HTML5 Chart on Android ICS
<Flash Player가 구동될 수 없는 Android ICS 크롬브라우저에서의 Chart – 자동으로 HTML5로 렌더링 되며, Javascript로 제어된다>

이외에도 HTML5의 WebSocket을 지원하여 HTML5의 확장성을 지원하고 있는데요 HTML5를 지원하지 않은 구버전의 브라우저를 위해 Flash로 대체하는 기능을 지원합니다.

Security의 강화

Adobe ColdFusion만큼 보안지원도 확실한 제품도 없습니다. 이미 예전 버전부터 XSS, SQLInjection, CSRF 등의 공격에 서버자체적으로 보안기능을 제공하고 있었고 새로운 버전이 나올 때마다 함수와 태그를 강화하여 보안위협을 최소화하는데 많은 기능을 제공하고 있습니다.

기타 cfheader, cfcontent, cfmail, cfmailparam and cfmailpart 태그에서 헤더를 생성할 때 CRLF(Carriage Return Line Feed attack)보호기능 등이 추가되었습니다. 세부 기술문서가 나오는 대로 보안부분은 또 다뤄보겠습니다.

기타 내부기능의 개선(HotFix 업데이트, 스케줄러 등)

ColdFusion의 관리자에서 제공하는 여러 기능들이 이번에 대거 개선이 되었습니다. 먼저 이전버전까지는 새로운 업데이트나 핫픽스가 나올 경우 일일히 관리자가 해당 핫픽스를 다운로드하여 수동으로 설치한 후 ColdFusion 서버를 재시작해 주어야 했습니다만, 이제 그럴 필요가 없습니다. 사실 이 자동 업데이트 기능은 동종의 ColdFusion엔진인 Railo에서 먼저 제공하던 기능인데요. 이제 엔지니어가 여러 서버를 관리하는 경우 자동으로 업데이트하도록 지정할 수 도 있겠네요. 무엇보다 재시작을 하지 않아서 좋습니다.

ColdFusion 10 Auto update
<관리자모드에서 자동으로 핫픽스를 다운로드하여 업데이트해 준다>

ColdFusion 스케줄링은 Cron 이나 Task Scheduler를 이용할 수 없을 때 매우 유용하면서 강력한 기능을 제공합니다. 새롭게 강화된 기능은 스케줄링을 어플리케이션 레벨에서 그룹핑 할 수 있게 되었습니다. 또한 이벤트핸들러를 추가하여 Job이 시작할 때 또는 완료되었을 때 이벤트를 발생시킬 수 있게 되었습니다.

ORM은 ColdFusion 9에서 처음 적용된 데이터베이스 모델링 방법입니다. 하이버네이트 ORM에 기초하고 있는데요 이 기능에 몇가지 함수가 추가되었다고 합니다. 아울러 Railo에서는 이미 추가된 기능중의 하나인 캐시기능이 추가되었습니다. EHCache 가 바로 그것인데요 웹 어플리케이션을 미리 캐시하여 보다 빠르게  서비스할 수 있습니다. 또한 함수에서 외부함수가 내부 함수의 변수에 접근할 수 있는 Closures기능을 지원하고 있습니다.

이외에도 전통적으로 잘 지원되어 왔던 Java Integration, RESTFul Web Service, Microsoft Exchange Server 2010의 지원 등이 많이 개선되었습니다. 마지막으로 지금껏 내장 검색엔진으로 활용되어 왔던 Verity가 제외되고, Apache Solr만 남게 되었습니다. Apache Solr은 ColdFusion 9에서 처음 지원되기 시작했습니다만 본격적인 지원으로 웹 페이지 뿐만 아니라 오피스문서, PDF 등의 파일에 대한 콜렉션의 생성 및 검색을 보다 쉽게 구현할 수 있게 되었습니다. 다만, 조사의 활용이 심한 한국어(일본어)의 경우 Apache Solr 자체의 형태소 인식률이 그다지 좋지 아니해서 한국적 실정에서는 얼마나 활용될지 궁금하네요.

항상 새로운 버전이 나올 때마다 제대로 된 리뷰?를 적어보자 하지만 늘 수박 겉핥기 같아서 아쉽지만 여기까지 정리하겠습니다. 대대적인 기능이 추가되고 업그레이드 되어서 일일이 열거하는 것 보다는 이전 버전과 비교하여 직접 사용해 보는 것이 이해엔 더 빠르겠지요.(우리나라에서는 아직 ColdFusion을 쓰는 회사나 개발자를 만나기가 어렵지만 ㅠㅠ)

마지막으로 ColdFusion 10 Beta를 설치하고 싶지 않지만 USB등에 저장해서 언제든지 구동하여 경험하고픈 분들을 위한 팁을 하나 알려 드릴께요. 지난 포스트에서도 언급한 Portable ColdFusion에 대한 내용입니다.

Adobe ColdFusion 10 Beta Windows용을 다운로드 받아서 (32bit/64bit 본인의 환경에 맞는 버전을 다운로드 합니다.) 일반 설치와 마찬가지로 설치를 진행하다가 이 포스트 맨 위 그림처럼 Installer Configuration 화면에서 JEE Configuration 옵션을 선택하고 war 패키지를 선택하여 설치합니다. 마치 설치하는 것과 같지만 이전 포스트에도 말씀 드렸지만 실제 설치가 아니라 ColdFusion을 하나의 war 파일로 압축하여 생성하는 것이 전부이므로 설치과정 종료 후 cfusion.war 파일만 필요하고 제어판의 프로그램-추가삭제에서는 ColdFusion 설치자체가 안된 것이므로 아무것도 나오지 않습니다. 이 cfusion.war 파일은 따로 보관했다가 이후에 어떤 서블릿 엔진에도 디플로이 할 수 있습니다.

만약 64bit ColdFusion을 다운로드 하여 cfusion.war을 생성하였다면 64bit용 서블릿 엔진을 써야겠죠? 여기서는 지난 포스트와 다르게 Apache Tomcat 7을 이용해 보겠습니다. Jetty를 쓸 때와 거의 같습니다.

Apache Tomcat 7 64bit 용 ZIP배포버전을 다운로드 하여 압축을 풀고 Tomcat의 webapps안에 아까 ColdFusion 10에서 생성한 cfusion,war 파일을 복사하고, ColdFusion 생성시 함께 만들어지니 jre 디렉토리를 Tomcat 디렉토리안에 복사합니다. jre 디렉토리를 복사하는 이유는 jre나 jdk가 설치되지 않은 시스템이나 또는 시스템에 설치된 jre를 이용하지 않고 자체 jre를 쓰기 위함입니다.

간단하게 Tomcat 디렉토리안에 다음과 같은 실행 start.bat파일을 만들어 구동한 후 http://127.0.0.1:8080/cfusion/CFIDE/aministrator/index.cfm 을 입력하여 관리자 모드로 접속해 봅니다. 이때 패스워드는 ColdFusion 10을 설치할때(WAR파일 생성할때) 입력한 패스워드를 입력하면 됩니다.

start.bat

@echo off

set JAVA_HOME=./jre
set PATH=./jre/bin;%PATH%
set JAVA_OPTS=-Xmx512m

set CATALINA_HOME=.
set CATALINA_OPTS=-Dfile.encoding=UTF-8
set LANG=ko_KR.UTF-8

%CATALINA_HOME%/bin/startup.bat

자, 이제 Tomcat 디렉토리 전체를 USB 등에 담아다니면서   start.bat만 실행하면 Tomcat의 구동과 함께 바로 ColdFusion 10 beta를 이용할 수 있을 것 입니다.

Adobe Labs ColdFusion 10 Beta 1 : http://labs.adobe.com/technologies/coldfusion10/
Adobe ColdFusion 10 beta Online Documents(English) : http://help.adobe.com/en_US/ColdFusion/10.0/Developing/index.html

Powered by

© 2012 - Powered by Mango Blog with Adobe ColdFusion 9