Entries Tagged as 'Open Bluedragon'



PHP와 Open BD가 설치된 환경에서 그누보드 PDF생성기능 만들기
Category : ColdFusion , Open Bluedragon Comments : 댓글쓰기 Posted by 장창학 at 2:03 AM

국내의 홈페이지에서 가장 많이 쓰이는 오픈소스 게시판 시스템중 하나는 그누보드(http://www.sir.co.kr/)가 아닐까 싶습니다. 가벼우면서도 필요한 기능이 다 들어 있어 인기가 높습니다. 더욱이 라이센스가 GPL를 따르고 있어 제로보드와 다르게 카피라이트를 표기할 의무가 없어 다양한 프로젝트의 일부로 사용할 수 있습니다. 국내의 오픈소스들은 저작자가 대부분 그 자체로만 이용해 주길 바라는 마음이 강해서 인지 뭐든 자기가 배포한 오픈소스에 다 넣으려는 경향이 있고,  공개를 했다고 하더라도 소스의 수정, 다른 상용 프로젝트의 일부로서의 사용은 거의 대부분 금하고 있습니다.

그래서 저는 제로보드(익스프레스엔진 포함), 킴스보드와 같은 프로젝트들은 오픈소스라고 부르지 않습니다. 그냥 제작자가 써보라고 공개한 어정쩡한 라이센스라고 말하고 있습니다. 해외의 경우 대부분 공개한 소스자체로도 사용하기도 하지만 대부분 자신이 진행하는 프로젝트의 일부를 다른 오픈소스 프로젝트를 포함하여 개발하는 경우가 많습니다. 가령, 제로보드의 기본골격은 제로보드에서 배포하지만, 어떤 프로젝트 예를 들어 웹컨퍼런싱 툴의 일부분으로서 제로보드를 사용하는 개념입니다. 물론 제로보드도 모듈을 다른 개발자가 개발하여 공개하기도 하지만 제로보드라는 테두리안에서 배포되기 때문에 사실상 완전한 공개라 볼 수 없습니다. 반드시 저작권을 표기해야 하고, 또 그 모듈을 다른 프로젝트에 쓸 경우 원작자의 동의를 또 구해야 하는 절차가 있기 때문입니다. 

암튼 각설하고, 오늘은 그누보드를 쓰고 있는 환경에서 본문 내용은 인쇄, 파일로 저장하기 위해 PDF를 생성하는 것에 대해 이야기 해 볼려고 합니다.  우선 웹호스팅 환경에서 그누보드를 사용한다면 오늘의 팁은 무의미할 수 있겠네요. 일단 PHP+MySQL만 구동되는 환경에서는 작동이 안되니까요? 왜냐하면, PDF를 생성하는 기본 프로그램이 ColdFusion이기 때문입니다. 사실 ColdFusion이 구동되는 환경이라면 그누보드와 같은 게시판을 아예 ColdFusion으로 개발해 버리면 되지만, 그렇지 못한 경우 PHP+MySQL이 구동되는 웹서버에 ColdFusion엔진만 설치해서 충분히 간단하게 ColdFusion을 사용할 수 있는 환경을 구축할 수 있기 때문입니다. 또, Cafe24의 JSP호스팅처럼 PHP와 Servlet엔진이 동시에 지원되는 환경에서도 가능합니다. Servlet위에서 구동되는 ColdFusion엔진을 쓰면 되니까요.

물론 PHP에서도 PDF를 생성할 수 있지만, 한글 폰트 문제, 성능문제, 복잡한 표나, HTML문서의 레이아웃을 그대로 PDF로 만들기는 매우 힘듭니다.하지만 ColdFusion은 iText, PD4ML, PDFBox 등의 Java PDF Library를 그대로 쓰기 때문에 몇줄의 ColdFusion코드로 쉽게 PDF를 만들 수 있습니다.

예제의 소스 코드는 다음과 같습니다. 그누보드의 글읽기 화면에서 게시판아이디인 bo_table과 게시물아이디인 wr_id를 Get으로 pdf.cfm파일로 전송하면 pdf.cfm파일 내부의 소스에서 이 두 데이터를 기초로  실제 그누보드의 게시판 테이블에 Query하여 해당 게시물의 작성자, 작성일, 이메일주소, 내용을 가져와 PDF로 생성하고 있습니다.

gnu_cfpdf.cfm - Download

<!--- Open BD의 DSN명을 입력합니다.--->
<cfset DSN = "">

<cfparam name="URL.bo_table" default = "">
<cfparam name="URL.wr_id" default = "">

<cfset BO_TABLE = PreserveSingleQuotes(#REReplace(#URL.bo_table#,   "[[:punct:]]", "", "All")#)>
<cfset WR_ID = PreserveSingleQuotes(#REReplace(#URL.wr_id#,   "[[:punct:]]", "", "All")#)>

<cfif #BO_TABLE# EQ "">
	< script>alert('게시판이 선택되지 않았습니다.');</ script>
<cfabort>
</cfif>

<cfif #WR_ID# EQ "">
	< script>alert('게시글 번호가 선택되지 않았습니다.');</ script>
<cfabort>
</cfif>


<cfcontent type="text/html; charset=utf-8">
<cfset setEncoding("URL", "utf-8")>

<cfquery datasource="#DSN#" name="getContents" debug="no">
	SELECT wr_subject, wr_content, wr_name, wr_email, wr_datetime
	FROM g4_write_#BO_TABLE#
	WHERE wr_id=#WR_ID#
</cfquery>

<cfif getContents.RecordCount EQ 0>
	< script>alert('게시물이 없습니다.');</ script>
<cfabort>
</cfif>


<cfdocument format="PDF" pageType="A4">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
< style type="text/css">
< !--
body {
	width:100%;
	font-family:Gulim, Dotum, Arial, Apple Gothic;
	color:#333;
	padding:0;
	margin:0;
	overflow:auto;
}
table, div, span {
	font-family:Gulim, Dotum, Arial, Apple Gothic;
	color:#333;
	padding:0;
	margin:0;
	overflow:auto;
}

-- >
</ style>
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
  <tr>
    <td colspan="2" style="border-bottom: 1px solid #333;" mce_style="border-bottom: 1px solid #333;">
    <cfoutput><h1><strong>#getContents.wr_subject#</strong></h1></cfoutput>
    </td>
  </tr>
  <tr>
    <td width="80"><strong>작성자</strong></td>
    <td>
    <cfoutput>#getContents.wr_name#</cfoutput> (<cfoutput>#getContents.wr_email#</cfoutput>)
    </td>
  </tr>
  <tr>
    <td><strong>작성일</strong></td>
    <td>
    <cfoutput>#DateFormat(getContents.wr_datetime, "yyyy년 mm월 dd일")#</cfoutput>
    <cfoutput>#TimeFormat(getContents.wr_datetime, "HH시 MM분 SS초")#</cfoutput>
    </td>
  </tr>
</table>
<br />
<cfoutput>#getContents.wr_content#</cfoutput>
</body>
</html>
</cfdocument>


Railo/OpenBD comparison - URLEncode & URLDecode for Korean
Category : Open Bluedragon , Railo Comments : 2 Comments Posted by 장창학 at 6:33 AM

우리가 웹 Application을 개발할때, URL변수에 값을 담아 Get방식으로 데이터를 전송할때가 많습니다. 대부분의 경우 영어로 된 변수값인 경우 문제가 발생하지 않지만, 한국어, 일본어 등 2Byte문자가 데이터로 전송될때 문제가 발생합니다. 그래서 구글 등의 검색엔진들은 검색어가 한국어인경우 URL인코딩을 통하여 한국어를 전송하게 되는데, 가령, 구글에서 "콜드퓨전"이라는 검색어를 던지게 되면 URL인코딩된 값은 %EC%BD%9C%EB%93%9C%ED%93%A8%EC%A0%84가 됩니다.

ColdFusion을 개발할때도 이런 문제점을 해결하려면 ColdFusion에서 제공하는 함수인 URLEncodedFormat()과 URLDecode() 함수를 이용해야 합니다. Adobe ColdFusion이나, Railo 또는 Open BD 등의 ColdFusion서버환경에서 이러한 것들을 모두 동일하게 처리해 주냐? 답은 아니다 입니다. Adobe ColdFusion이야 업계표준이기 때문에 지원을 잘 하고 있고, Railo 역시 Adobe ColdFusion의 표준을 충실히 따르는 엔진이므로 정상적으로 지원을 해 줍니다만, Open BD나 BlueDragon에서는 문제가 발생하더군요. 아직, 버그로 처리해야 할 문제가 아닌가 싶습니다.(Open BD 이슈트래커에 등록하려고 합니다만, 늘 고민인것이 하고픈 말을 영어로 쓰기가 참 어렵습니다. ㅠㅠ 가급적 정확한 표현을 하고 싶은데)

Railo URLEncode
<Railo URLEncodedFormat() URLDecode()>
OpenBD URLEncode
<OpenBD URLEncodedFormat() URLDecode()>

다음의 코드를 살펴보시길 바랍니다. 왜 하늘은 파랗지? 라는 문장을 각각 URLEncodedFormat()함수를 써서 URL인코딩 데이터으로 변경하고, 변경된 데이터를 다시 URLDecode()함수로 원래의 데이터로 다시 변환하는 코드입니다. 그런데 값이 동일하지 않습니다. 두 시스템 모두 JDK의 파일 및 데이터처리는 UTF-8포맷으로 지정되어 있습니다. .bash_profile 환경에서 강제로 지정했고, 또 저장된 cfml문서 역시 동일하게, UTF-8인코딩으로 저장되었습니다. 자신의 JDK환경의 시스템 로케일을 ColdFusion으로 알아보려면 다음의 코드를 작성하고 저장한 후 브라우저에서 조회하면 됩니다.

JDK Locale Check

<cfoutput>#createObject( "java", "java.lang.System" ).getProperty( "file.encoding")#</cfoutput>


URLEncodedFormat() / URLDecode comparison

<cfprocessingdirective pageencoding="UTF-8">
<cfset setEncoding("URL", "UTF-8")>

<cfset MyString="왜 하늘은 파랗지?">
<cfset EncodedString=URLEncodedFormat(MyString)>
<cfset DecodedString=URLDecode(EncodedString)>

<cfoutput>
Original String: #MyString#<br>
URL Encoded: #EncodedString#<br>
Decoded: #DecodedString#
</cfoutput>

Open BD에서는 URLEncodedFormat의 Charset를 명시적으로 유니코드로 선언하면 됩니다.(열이아빠님 힌트)

<cfprocessingdirective pageencoding="UTF-8">
<cfset setEncoding("URL", "UTF-8")>

<cfset MyString="왜 하늘은 파랗지?">
<cfset EncodedString=URLEncodedFormat(MyString, "UTF-8")>
<cfset DecodedString=URLDecode(EncodedString)>

<cfoutput>
Original String: #MyString#<br>
URL Encoded: #EncodedString#<br>
Decoded: #DecodedString#
</cfoutput>

결론은 아직 한국적(또는 2Byte 문자권) 상황에서는 Open BD로 개발할때 GET으로 한글데이터를 전송하는데 문제가 있으므로 주의해야 합니다.(아마 POST도 마찬가지 일 것 같습니다.)


Viviotech - Railo & Open BD Installers
Category : Open Bluedragon , Railo Comments : 댓글쓰기 Posted by 장창학 at 10:14 AM

Viviotech에서 편리하게 Windows 환경, Linux환경에서 특별한 환경설정 없이 바로 사용할 수 있는 Installer를 제공합니다. Tomcat 등의 Servlet 및 Apache Httpd의 설치 및 설정 등이 미리된 버전이므로 APM설치 없이 바로 설치하시면 될 것 같습니다. MySQL만 추후 설치하세요. ColdFusion은 JDBC로 DB에 연결되기 때문에 PHP처럼 MySQL연동을 위한 특별한 모듈이 필요하지 않습니다.

시간이 되면, 여기에서 배포하는 인스톨러로 설치하는 방법에 대하여 포스팅해 보겠습니다. 다음의 경로에서 최신 버전을 다운로드 받을 수 있습니다. 다만, Railo나 Open BD의 원본설치 파일이 아니기 때문에 설치경로 및 환경설정이 원하시는 설정이 아닐 수 있으니 미리 테스트해 보시길 바랍니다.

Open BD : http://openbd.viviotech.net/

Railo : http://railo.viviotech.net/


Open BlueDragon 1.2 Released
Category : Open Bluedragon Comments : 댓글쓰기 Posted by 장창학 at 12:48 PM

오랜만에 Open BlueDragon 소식입니다. 지난 봄 1.1버전 이후로 조용하던 Open BD가 1.2로 업데이트 되었습니다. Open BD가 뭐냐구요? Adobe ColdFusion 또는 Railo와 같은 ColdFusion엔진중의 하나입니다. 100% 오픈소스입니다. Railo가 Adobe ColdFusion에서 지원하는 태그와 함수를 충실히 지원하는 반면, Open BD는 조금은 자유분방하게 스스로 갈길을 개척하는 엔진이기도 합니다.

1.2버전의 Release Notes는 여기에서 살펴볼 수 있습니다. 대부분 1.1에서의 Bug fix가 주로 이루어 졌습니다. 추가로 Spreadsheet에 관련한 기능이 보강되어 별도의 플러그인도 배포중입니다.
http://wiki.openbluedragon.org/wiki/index.php/ReleaseNotes_1-2

Open BlueDragon 1.2 Download : http://www.openbluedragon.org/download.cfm


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