Entries for month: July 2009



Adobe Coldfusion : Past, Present & Future - 가트너 연구보고서
Category : ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 10:33 AM

Adobe Coldfusion : Past, Present & Future

시장조사 전문기관인 미국의 가트너에서 발표한 Coldfusion의 과거와 현재, 미래에 대한 분석보고서 입니다. 특히 미래에 대하여 Railo, Open Bluedragon을 언급하면서 이들 오픈소스 CF엔진들로 CF의 앞날은 좋으나 여러 엔진들이 생김으로서 표준 ColdFusion ML(Markup Language)에 대한 정의 필요성을 느끼고 Adobe와 New Atlanta 등 CF엔진을 개발, 판매하고 있는 여러 벤더들이 OpenCFML.org(http://www.opencfml.org)를 운영하고 있다고 합니다.

태생은 같으나 여러갈래로 갈라지고 각기 특성을 따로 갖는다면 개발자들로부터 외면받을 것이 분명하니까요. Adobe Flash와 비슷한 Adobe Live Motion과 Namo의 Flash Creater같은 제품이 Flash 개발자나 디자이너에게 외면 받은 것이 바로 그런 예죠. 하나의 원조외의 나머지를 인정하지 않는 분위기.. 특히 한국적인 특성에서는 더욱 강하니까요. 따라서 OpenCFML.org에서 각각의 벤더들이 모여 새로운 태그나 함수를 만들때 서로 협의했으면 합니다.

암튼, 가트너의 보고서에 의하면 ColdFusion의 미래는 매우 밝다 입니다. 비록 한국에서는 이제 씨앗을 뿌리고 있지만요.

 


ColdFusion 9에서의 PDF, SWF 그리고 Office 파일
Category : ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 1:11 AM

Adobe Coldfusion은 PDF와 Flash 포맷(SWF), 그리고 CFPRESENTATION태그를 이용한 Acrobat Connect(Adobe Presenter 7)를 기술을 내장하고 있고, 이들 기술을 동적으로 생성할 수 있습니다. 이전버전들인 Coldfusion MX, MX7, 8에서도 부분적으로 CFDOCUMENT, CFCONTENT태그 등으로 Excel등을 동적으로 생성하는 Office파일의 생성 기능도 제공하고 있었습니만, ColdFusion 9버전 부터 Open Office의 라이브러리를 이용하여 PPT, XLS, DOC파일에 대한 다양한 PDF로의 변환, HTML로의 추출 등의 기능을 제공합니다. 이제, 오피스파일의 내용에 대한 내부 검색엔진도 충분히 만들 수 있을 것 같습니다.또한, 몇줄의 Code로 PPT를 이용하여 동적으로 Adobe Presenter와 같은 Presentation을 생성하거나, PDF로의 변환, HTML문서를 PPT로 변환하는 기능을 제공할 수 있습니다.

다음의 표에서 보시면 변환가능한 포맷과 대상포맷, 그리고 오픈오피스의 설치여부 필요성을 한눈으로 비교하여 볼 수 있습니다.

Supported Office conversion formats

위 표대로 PPT파일을 PDF로 변환하려면 다음과 같이 하면 됩니다. 손쉽게 업로드된 PPT를 PDF로 실시간 동적변환하여 사용자에게 리턴할 수 있습니다.(몇줄의 코드만으로..)

<cfdocument
	format="pdf"
	srcfile="C:\presentations\MyPresentation.ppt"
	filename="C:\presentations\MyPresentation.pdf">
</cfdocument>

또한 엑셀파일의 경우 엑셀파일내부의 Cell의 데이터를 Coldfusion에서 직접 접근하여 처리할 수 있게 되었습니다. 가령 다음과 같이, 엑셀파일에서의 특정 열과, 행의 데이터를 화면에 출력할 수도 있습니다.

<cfspreadsheet
	action = "read"
	format="html"
	src="C:\documents\template_08_Charts_Graph.xls"
	name="report1"
	rows="5-11"
	columns="1-6">
<cfoutput>
	#report1#
</cfoutput>

이제 사용자가 엑셀로 업로드한 데이터를 동적으로 Read하여 쿼리를 처리할 수 도 있겠군요.. 잘만하면, Excel파일을 PPT로 변환하거나, PDF로 연산하여 그 결과만을 출력하는 서비스를 만들 수 있겠습니다. 이 ColdFusion 9의 오피스 파일에 대한 보다 자세한 정보는 공식기술문서 "Developing Applications - ADOBE® Prerelease COLDFUSION9"의 Chapter 11장을 참조하세요.


대한민국 유일무이 정규표현식 서적출간??
Category : Tech books Comments : 4 Comments Posted by 장창학 at 11:56 AM

정규표현식정규표현식은 거의 모든 프로그래밍 언어에서 예외처리를 해야할 때 꼭 필요한데, 사실 이분야에 대한 전문서적은 거의 없다. 일례로 주민등록번호나 전화번호 등을 검사하는 루틴을 만들때 정규표현식을 써야 하지만 대부분 남의 소스를 가져다 쓰기 일쑤이다. 정규표현식에 관련된 O'reilly (한빛미디어)에서 출간된 번역서(http://book.naver.com/bookdb/book_detail.php?bid=121157)가 7~8년전에 있었지만 이미 절판되어 버려 구하기 어려웠는데, Coldfusion의 아버지 Ben Forta가 쓴 http://www.forta.com/books/0672325667/ 책이 나온지 5년만에 드디어 한국어로 번역되어 출간된다.

나의 경우 내부적으로 Coldfusion을 이용해서 웹메일클라이언트를 만들려고 하는데, 이때 스팸처리기를 어떻게 구현할까 늘 고민이었다. 정규표현식을 잘 쓰면 나름 메일제목이나 본문내용으로 필터링할 수 있을거 같은데 문제는 정규표현식이 쉽게 느껴지지만 사실 개인적으로는 가장 이해하기 힘들어서 관련서가 꼭 필요하던 차에 잘 되었다. 인사이트 출판사가 가끔 돈은 얼마 안될 것 같지만 정말 중요한 부분의 서적을 잘 번역출간해 주어 늘 고맙다.(예전의 Javasript관련서도 그렇고.. 요새는 Flex/Actionscript관련서 아니면 돈 안되자나..)

5년만에 나오는 서적인만큼 너무 구식이 아닐까 걱정하는 분들 있겠지만 정규표현식은 영원불멸이다. 최신, 첨단 그따위가 필요없다. 말그대로 어떤 언어이건 간에 공통이니까.. 가격도 착하다. 더욱이 강컴에선 7월30일까지 무료배송예약이다. 낼름 구입하고 이렇게 자랑질..ㅋㅋ

구매 : http://kangcom.com/sub/view.asp?sku=200907210019


Coldfusion Server Manager
Category : ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 3:26 PM

Coldfusion 9 beta부터 제공되는 기능중에 Coldfusion Server Manager라는 조그마한 AIR 어플리케이션이 있다. 대강의 모습은 아래와 같이 생겼는데, 기본적으로 다음과 같은 기능을 가지고 있다.

AIR Application Download : Coldfusion Server Manager

  • Coldfusion Administrator의 설정을위한 AIR기반의 Application
  • 다중 멀티 Coldfusion Server의 등록 및 관리
  • Coldfusion Server의 구동/중지
  • Datasource의 설정
  • Mapping 설정
  • 스케쥴작업관리 설정
  • 차트설정관리
  • JVM관리
  • Log관리
  • Mail Server 관리 등등

실제로는 웹기반의 Coldfusion Administrator의 내용을 AIR로 옮겨놓은것인데, 한가지 유용한점은 다중 Coldfusion을 한눈에 모니터링하고, 설정할 수 있다는 점이 맘에 든다. 특히 Server들을 Gruop별로 묶어 정의할 수 도 있다. 이 Application은 Coldfusion Server 설치 후 Web Administrator에서 다운로드 할 수 있는데, 이 Post의 첨부파일을 다운로드하여 설치해도 된다. 특히 AIR기반이라 Linux나 Mac에서도 동일하게 Application을 구동할 수 있다.

CF_Server_Manager


Coldfusion과 RIA
Category : ColdFusion , Open Bluedragon , Railo Comments : 2 Comments Posted by 장창학 at 3:55 AM

최근에 가장 각광받는 Web기술이라고 한다면 단연 RIA기술일 것이다. Macromedia가 가장 먼저 내놓은 이 개념과 용어는 Flex와 Flash를 웹에서 가장 인기있는 기술로 성장시킨 대표적인 RIA기술임과 동시에 현재 주류 웹기술로서 소위 잘나가는 기술이다. 물론 Microsoft나 Sun의 입장에서는 Silverlight나 JavaFX도 있다고 할지 모르겠지만 이들은 아직 개인적인 생각에는 Flex/Flash에 비하려면 업그레이드해야할 기능이 한참 멀었다. 특히 Media에 치중하고 있는 이 두기술에 비해, Flex/Flash는 Media를 넘어 Web Application의 Frontend로서, Mobile Device의 UI로서 영역을 확장하고 있어 사실상 대안기술이 없다고 봐야할 것이다.(Silverlight를 주 기술로 사용하는 분들께는 죄송하지만 개인적으로는 그렇다는 것이다.)

하지만, Flex/Flash도 개인적으로는 회의적으로 보는 기술이다. 사실 처음부터 그렇지는 않았다. 하지만 점점 새로운 Flex/Flash가 나올 수록 점점 회의적으로 변했다고 해야 맞을 것이다. 여러곳의 글에서 나는 Flex나 Flash를 "껍질"일 뿐이다라고 폄하한 적이 있다. 물론 이런 시각은 지금도 마찬가지다.

Adobe의 주장대로 Flex/Flash가 배우기 쉽고, 응용하기 기술인가에 대하여 전적으로 동의할 분은 과연 몇이나 될까? 하면할수록 어렵고, 귀찮고, 무언가의 한계에 부딪히는 것이 아닐까 생각이드는데.. 물론 이런 느낌이 순전히 주관적인 것이지만, 오늘은 혹시나 이런 생각을 가지고 있는 분들에게 몇가지 권유을 하고 싶어 이렇게 글을 쓰고 있다. 결론 부터 말하자면 Flex나 Flash에 회의적인 분들에게 Coldfusion을 권해 보려고 한다. 그리고 하나더 덧붙히자면, 현재 Flex나, Flash에 종사하거나, 이 기술에 환상적인 매력을 가지신 분들에게 미리 양해의 말씀을 드린다. 이글에서 다소 폄하고 있으므로.. 하지만 이런 생각은 순전히 개인적인 주관이니, 그려러니 생각해 주셨으면 한다.

개인적으로 Flex/Flash에 대하여 물론 그것들이 화려하고, 편리하고, 또 강력한 UI를 제공하고 있다고 하더라도 그것외에 그닥 볼만한 기능이 더 이상 없다는 것에 늘 한계를 느낀다. 내가 처음 Flash를 접한것은 2000년도의 Flash 4시절이였다. 사실 Flash MX 때나 되어야 제대로된 Flash라고 볼때 이전 버전들는 그저 웹애니매이션 저작툴에 불과했다. 하지만 MX이후로도 물론 사용은 했지만, 항상 서버측 파트너를 따로 익혀야 제대로된 뭔가를 만들 수 있다는 것에 늘 회의적인것은 예나 지금이나 마찬가지다. 그러던 중 코드만으로 Flash를 만든다는 Flex를 접한것이 Flex 1.5시절이였는데, 이것 역시 나의 관심을 오래 끌진 못했다. 우선, Component로 쉽게 Form요소를 구성하는 것에는 높은 점수를 주었으나 이것 역시 서버측 파트너는 늘 따로였다.

서버측 파트너가 뭐가 그리 중요하냐고 반문하는 분들도 분명있겠다. 단순 화려한 Flash/Flex Application만으로도 오감을 만족하는 분들이 계실 수 있기 때문이다. 하지만 나는 근본주의자며, 원리주의자이기 때문에 껍질에 불과한 것에 대한 점수는 높히 줄 수 없다. 웹이란 환경은 수많은 Data의 조회와 업데이트로 이루어진 하나의 거대한 Application이다. 그렇기 때문에 본연의 이런 기능에 대한 기술에 더 높은 점수를 주고, 더 대우를 받아야 한다고 보는 입장이다.

좀더 쉽게 말하자면, 가령 Flex로 GRID에 Data를 바인딩하는 Application을 구축한다고 생각해보자. 이때 필요한 기술은 MXML을 짜는 기술, Actionscript로 MXML에 이벤트를 주는 기술, PHP/JSP나 LCDS/BlazeDS 등으로 Data를 조회화는 기술 등 눈으로 보이는 하나의 GRID를 만드는데 해야할 것이 너무 많다. 물론 실력이 좋은 분들이야 뭐가 문제이겠느냐마는 가령, Flex Builder로 Frontend를 짜는 기술은 가지고 있으나 PHP/JSP를 할줄 모르거나, 또는 LCDS등을 도입하는 비용이 없다거나 하는 경우가 전혀 없다고도 볼 수 없다. 더욱이 하나의 개발도구로 모든 것이 처리가 안된다. LCDS/BlazeDS와 같은 서버측 구동제품까지 있으니 이를 설치하고, 연동하는 작업까지 정말 해야할 일이 너무 많다.

하지만 Coldfusion을 쓰게 되면 어떻게 될까? 사실 Coldfusion의 RIA적인 기능이 Flex나 Flash처럼 100% 유연하지는 않지만, 거의 대부분의 기능을 흉내낼 수 있다는 것을 전제로 더욱이 비용적인 측면에서도 Flex Builder나 LCDS를 구매하는 것에 비해 대동소이하다면 말이다. 극다적으로 말하자면 Coldfusion은 서버측만 있으면 화면을 꾸미는 UI와 PHP/JSP/LCDS/BlazeDS처럼 Data를 조회하고, 업데이트하는 언어적 기능을 모두 하나의 Editor로 처리할 수 있는 유일한 제품이다.

위 예에서 Flex에서 GRID를 만드려면, MXML이란 언어와, Actionscript언어, PHP/JSP(또는 LCDS/BlazeDS)언어 3가지를 알아야 한다. 하지만 Coldfusion에서 CFML이란 Markup 언어 하나만 알면 된다. 물론 덤으로 Actionscript나 Javascript를 알면 좋겠지만 몰라도 사실 무방하다. 이와 관련된 몇가지 간단한 예를 보여드리고자 하는 것이 오늘 이글의 주 목적이다. Flex가 못하는 것을 Coldfusion은 한다는 것과 Flex가 하는 것을 Coldfusion도 한다는 것을 말이다. (하지만 Flex보다 Coldfusion이 더 낫다는 말은 아니다. 좋고 나쁨은 주관적인 평가이기 때문이거니와 적용되는 분야에 따라 평가는 달라질 수 있기 때문이다.)

Sample 1 : Form 요소의 표현
예제보기 : http://sandbox.freecoldfusionhosting.com/members/n/nooree/cfform.cfm
소스보기 : http://www.nooree.com/samples/coldfusion/cfform.html

위 예제에서는 간단하게 Coldfusion에서 DataGird를 동적으로 생성해 본 예제이다. 사실 Coldfusion내부적으로는 Flex의 MXML을 쓴다. 하지만 Flex에서 바로 처리할 수 없는 Database에서의 Query를 Coldfusion은 할 수 있다는 차이점이 있다. 쿼리결과를 바로 Grid에 바인딩이 가능하다.(이 예제에서는 임시로 Data를 CFC로 처리하였다. 계정이 DB를 제공하지 않는 관계로 ㅠㅠ) GRID뿐만 아니라, Text Input, Radio, Checkbox와 같은 Flex에서 쓰는 모든 Form요소를 Flash포맷으로 동적생성이 가능하며, CFML과 간단한 Actionscript으로 제어가 가능하다. 물론 Flex처럼 Component의 Skining도 지원한다. 한가지 더 나아가 이런 FORM요소를 AJAX나 Java Applet로도 동적생성이 가능하다.

Sample 2 : Chart의 표현
예제보기 : http://sandbox.freecoldfusionhosting.com/members/n/nooree/chart.cfm
소스보기 : http://www.nooree.com/samples/coldfusion/chart.html

Coldfusion에서도 동적으로 차트를 생성할 수 있다. 물론 Flex처럼 색상을 바꾸거나, 스킨을 적용할 수 도 있다. 또한 차트에 이벤트를 걸어 다른 URL로 링크를 걸거나 할 수 있다. Flex에서 쓰이는 대부분의 Cahrt를 제공하고 있다. 하지만 역시 CFML만으로 Database에서 데이터를 Select하고 바로 Binding이 가능하다. Flex builder와 PHP 또는 BlazeDS/LCDS를 왔다갔다 할 필요가 없다.

Sample 3 : PDF/FlashPaper의 생성

예제보기 : http://sandbox.freecoldfusionhosting.com/members/n/nooree/pdf.cfm
http://sandbox.freecoldfusionhosting.com/members/n/nooree/flashpaper.cfm
소스보기 : http://www.nooree.com/samples/coldfusion/pdf.html
http://www.nooree.com/samples/coldfusion/flashpaper.html

Coldfusion에서는 별다른 플러그인의 추가없이 태그만으로 동적 문서를 생성할 수 있다. 물론 HTML코드가 적용된 양식문서나, Web Page를 동적으로 생성할 수 있다. (한가지 한국어처리 문제가 있기는 하다. 영문OS나 한국어 Font가 빈약한 Linux시스템에서의 처리에 한국어 표기가 불편하다. 몇가지 추가적인 작업이 필요한데 이 부분은 한국인으로서 Adobe에 대한 영원한 요청사항이 아닐까?)

Sample 4 : FLV의 재생
예제보기 : http://www.nooree.com/samples/cfvideo/player2.cfm
소스보기 : http://www.nooree.com/blog/post.cfm?entry=rialo-cfvideoplayer-flv
Open Bluedragon에서의 예제 : http://cfservice.net/demo/cfvideoplayer.cfm

아직 Adobe Coldfusion에서는 지원하는 기능은 아니지만, Railo/Open Bluedragon에서는 지원하는 <CFVIDEO>태그로 사용자가 동영상을 업로드하면, 동적으로 FLV로 변환하여 재생시켜주는 Youtube와 같은 Application을 쉽게 구현하거나, 동적으로 FLV파일에 대한 재생기를 쉽게 생성할 수 있다. (위 Sample 1~3의 경우는 OpenSource엔진에서는 지원이 불가능하거나 제한적인 부분이 있다. 각 엔진별로 차이점이 조금씩 있다는 점을 알려드린다.)

자, 간단하게나마 Coldfusion도 할 수 있다는 것들에 대하여 알아보았다. 사실 Flex보다 유연한 것은 아니지만, 그렇다고 정형화되어 있는 것도 아니다. 문제는 개발자의 상상이다. Coldfusion의 RIA적인 요소에 대하여 다양한 예제를 보려면 다음의 링크들을 참고해 보길 바란다. Coldfusion이 국내에서 생소하다보니 아마 대부분은 "그렇군.."하면서 한 10여분 재미난 것을 구경하는 것 이외 아무것도 아닐 수 있겠다.

분명히 말씀드리지만 Coldfusion만으로 국내에서는 밥먹기 힘들다. 해외에서는(가까운 일본만 하더라도) 가장 인기있는 웹프로그래밍 종목중에 하나지만 유독 한국에서는 도입이 매우 희박하다. 아마도 비용적인 측면이나 개발자 수급에 어려움이 있어서 그럴 수 있는데, 오히려 나의 경우는 스스로 Coldfusion을 하는 이유는 오히려 국내의 이런 환경때문에 희소가치가 있다고 보기 때문이다.

예를 들어 내가 근무하는 회사에서의 Project에 Coldfusion을 도입하여 본 결과 고객만족도도 높고, 비용도 별반 차이가 없었다.(물론 아직까지는 너무 생소하여 Open Source엔진인 Railo만 적용하고, 개발자가 부족하여 극히 전체 프로젝트의 일부에만 적용하고 있지만..) 더욱이 좋은 점은 PHP등의 전통적 언어에 비하여 비주얼한 환경이 많아서 단가를 높게 받을 수 있으며, 타 경쟁업체에서 전혀 할 수 없는 언어이기 때문에 고객사를 빼앗길 염려가 아직은 없다.

왜 Coldfusion을 하는가? 또는 왜 Coldfusion을 해도 되는가? 라는 질문을 하신다면 나는 이렇게 대답하고 싶다.유일한 존재가 되기위하여 라고..

사실 Coldfusion에 대한 공부를 좀 하였거나 국내자료를 찾다보면 블루마인드커뮤니케이션바닐라로이의 김태식님과 김진욱님, 그리고 강대전, 강정민, 박재현님 등의 기고글, 샘플예제들을 쉽게 찾을 수 있다. 원래 다들 Coldfusion을 하던 분들이다. 물론 개인적인 안면이 있어 왜 Coldfusion을 버렸냐고 물어보지는 않았지만, 아마도 척박한 국내사정상 비지니스가 힘들어서가 아닐까 싶다. 하지만 내 개인적인 생각에는 불과 2~3년전만 하더라도 OpenSource Coldfusion엔진들이 없어 비싼 Adobe Coldfusion외의 대안이 없었지만 지금은 2~3개의 Major급 오픈소스프로젝트들이 있어 Coldfusion을 해도 승산이 있다고 본다.

대한민국 최초 타이틀은 놓쳤지만 유일한 타이틀은 지금 Coldfusion을 시작하는 분들이 가져갈 수 있기 때문에 승산이 있다고 보는 것이다. 아직 변변한 책한권 없는 국내 Coldfusion환경이지만 책 없다고 공부못한다는 것은 인터넷시대에 맞지 않는 핑계요 변명이라고 본다. 그래서는 유일한 존재가 되지 못한다. 당신 혼자 유일한 존재 하세요~ 라고 한다면야 뭐 딱히 대꾸할 말도 없지만, 이글에 한분이라도 Coldfusion에 관심가지고 끝까지 한국의 Coldfusion을 개척하고자 하는 분들이 생기기를 바라면서 마칠까 한다.


About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments