Entries for month: November 2009



Railo/OpenBD comparison - URLEncode & URLDecode for Korean
Category : Railo , Open Bluedragon 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도 마찬가지 일 것 같습니다.)


CentOS iptables 설정 쉘스크립트
Category : Securities , Ubuntu & Linux/Unix Comments : 댓글쓰기 Posted by 장창학 at 5:53 PM

제가 사랑하는 Ubuntu Server Edition은 UFW라는 기본 방화벽 설정 Tool이 있습니다. 내부적으로는 iptables로 적용되지만, Rule설정 및 사용법은 쉽게 만든 것인데요. 일반적으로 다음과 같이 쓰입니다.

# 123.456.789.0 아이피만 SSH로 접속가능하게 하려면
sudo ufw allow from 123.456.789.0 to any port 22

이렇게 설정하면 해당 아이피만 22번으로 들어올 수 있고, 나머지는 거부합니다. 물론 UFW는 우분투를 설치 후 자동으로 활성화 되지 않기 때문에 설치 후 맨먼저 sudo ufw enable로 활성화 해준 다음(비활성화하고자 한다면 sudo ufw disable하면됩니다.) Rule를 추가해주면 되고, 설정상황을 보려면 sudo ufw status로 확인할 수 있습니다.(쉘상의 아무곳에서나 설정가능)

하지만, 우분투도 내부적으로는 iptables를 사용하기 때문에 UFW로 Rule을 추가후에 iptables -L해보면 UFW의 Rule이  iptables 형식으로 지정되어 있다는 것을 확인 가능할 것 입니다.

문제는 iptables가 좀 어렵다는 겁니다. 저 역시 아직 머리속에 다 넣지 못하고(사실 아예 넣지 못하고) 있습니다. UFW는 사용법을 아는데 말입니다. 저의 경우 Ubuntu 뿐만 아니라, CentOS도 사용을 하는데 CentOS와 같은 Redhat 계열의 리눅스에서는 UFW가 없으므로 iptables로 방화벽을 설정해야 하는데, 어렵기도 하고 귀찮아서 다음과 같은 쉘 스크립트를 만들었습니다. 적절히 수정해서 ROOT권한으로 실행하세요. 단, 웹디렉토리안에 이 쉘파일이 절대로 있어서는 안됩니다.(초보자가 FTP로 이 쉘을 자신의 홈페이지 루트에 올려 발생하는 모든 일은 본인의 행동을 탓하시길 바랍니다.) 시스템관리자만 사용하세요. 물론 웹호스팅환경에서는 실행도 안되거니와 혹시 실행되었다고 한다면 아마 본인은 해당 웹호스팅사로부터 막대한 피해보상을 청구당할 수 있습니다. (절대 시스템관리자만 사용할것)  

#!/bin/bash
IPTABLES=/sbin/iptables

#Rule정의
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT

#Localhost에서의 Taraffic은 허용
$IPTABLES -A INPUT  -i lo -j ACCEPT
$IPTABLES -A OUTPUT  -o lo -j ACCEPT

#알수 없는 패킷은 거부
$IPTABLES -A INPUT  -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP

#응답이 있었던 접속이나 관련된 접속 허용
$IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

#시스템에서 사용하는 기본 포트설정 :  아이피주소 부분은 원하는 주소로 변경하세요.
#22번은 SSH포트이므로 특정 아이피에서만 접속가능하도록 하는 것이 좋습니다.
#25번 포트는 Sendmail이며, 80은 Web, 53/953번은 DNS서버, 110은 메일수신포트입니다.
$IPTABLES -A INPUT -p tcp -s 아이피주소 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 953 -m state --state NEW,ESTABLISHED -j ACCEPT

#서버로 들어오는 모든 포트 차단
$IPTABLES -A INPUT -p tcp -j DROP

Download


Viviotech - Railo & Open BD Installers
Category : Railo , Open Bluedragon 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/


Railo - CFDOCUMENT pdf font problem (Korean, Japanese)
Category : Railo , ColdFusion Comments : 댓글쓰기 Posted by 장창학 at 2:40 AM

Adobe ColdFusion과 Railo, Open BD 모두 CFDOCUMENT 태그를 이용하여 동적으로 PDF파일을 생성할 수 있습니다. Adobe ColdFusion과 Open BD는 IText라는 Open Source Java library를 이용하고 있고, Railo는 기본적으로 PD4ML 이라는 상용 library를 이용하고 있습니다. 물론 세가지 제품 모두 PDFBox나 PD4ML을 이용할 수 도 있습니다.

하지만 IText나 PDFBox, PD4ML 등의 Java library는 한글(일본어, 중국어 포함)의 표기에 문제가 있습니다. Encoding이 맞지 않거나, 해당 언어의 서체가 시스템에 설치되어 있지 않는 경우 ????와 같이 글자가 깨져 보이게 됩니다. 이중에서 Adobe ColdFusion의 경우 http://www.nooree.com/blog/post.cfm/coldfusion-cfdocument-pdf에서 처럼 ColdFusion 설치 디렉토리내의 lib 디렉토리의 cffont.properties.ja 파일을 이용해서 cffont.properties.ko을 생성하므로써 한글 표기 문제를 해결할 수 있습니다.

하지만, Railo나 Open BD의 경우 해당 CFML엔진 자체가 Open Source이고, 제작자가 영어권의 개발사이다 보니 2Byte 문자권의 지원이 미비한 것이 사실입니다. 물론 UTF-8과 같은 Unicode환경을 이용하면 어느 정도 해결 가능하지만, JRE의 encoding 설정도 중요한 변수중의 하나입니다. 사실 http://www.nooree.com/blog/post.cfm/railo-cfdocument-double-byte-characters-problem에서 처럼 Railo에서 CFDOCUMENT태그로 PDF를 생성할때 2Byte 언어의 표현에 있어 문제가 있어, 일본의 개발자가 Railo의 유저그룹에 문의를 했지만, 2Byte언어를 쓰지 않는 서구인들에게는 그다지 큰 문제나, 또는 해결방안을 찾는데 있어 약간 어려움이 있는 것도 사실입니다. 

Railo CFDOCUMENT PDF - 2Byte character problem

Railo에서 PDF를 동적으로 생성하기 위해서는 다음과 같은 CFML코드를 쓰게 됩니다. (Adobe ColdFusion이나, Open BD에서도 동일 합니다.)

<cfprocessingdirective pageEncoding="utf-8"> 
<cfdocument format="PDF" pageType="A4"> 
한국어 공부합시다.<br />
日本語を勉強しましょう。
</cfdocument> 

Railo - CFDOCUMENT pdf font problem (Korean, Japanese)

자, 기본적으로 Railo의 Administrator의 Character set을 UTF-8로 지정했다고 하더라도 아마 화면에는 깨져 보이게 됩니다. 물론 Stylesheet를 지정해서 Font를 선택한다고 하더라도, 정상적인 한글, 일본어 표기는 불가능합니다. 사실 이 문제는 동양권 ColdFusion 개발자, 더욱이 Railo를 주로 쓰는 개발자만이 뼈저리게 해결하고 싶은 문제일 것 입니다. 부끄럽지만 저는 오늘 토요일 오후 시간을 다 투자해서 이것을 해결해 보려고 합니다. 사실 방법을 알고 시작한게 아니기 때문에, 찾고나서는 참으로 허탈하였지만, 일단 몇가지 단서를 찾아보기로 했습니다.

우선, Adobe ColdFusion과 Railo, Open BD에서 기본적으로 쓰이는 PDF생성 library를 찾아 보았습니다. 일단 오류가 나더라도, CFDOCUMENT 태그로 PDF를 각각 생성했는데, Adobe ColdFusion과 Open BD의 경우 IText를, Railo는 기본적으로 PD4ML을 쓰고 있었습니다. 이상하게도 상용 서버인 Adobe의 제품과 Open BD는 공개 library를 쓰고 있고, Open Source 엔진인 Railo는 상용 PD4ML library를 쓰고 있네요. PD4ML에서 2Byte 문자를 제대로 표현할 수 없는 2가지 문제는 상용버전인 Pro버전을 쓰지 않는 경우와, 해당 언어를 지원할 Font가 없는 경우 입니다. 결론적으로 Railo에서는 Pro버전인듯 합니다.

자, 이제 하나씩 해결해 보기로 합니다. 우선 Railo의 lib 디렉토리안에 보면, fonts.jar 파일이 있습니다. 이 파일을 Consol창에서 압축을 풉니다. (JRE의 명령서 jar를 씁니다. 아래와 같이 명령어를 쓰지 안않고 흔한 7zip, 알집 등으로 풀어도 됩니다.)

jar xvf fonts.jar

그러면 해당 디렉토리안에 다음의 폰트와 정의 파일인 pd4fonts.properties가 있습니다. Adobe ColdFusion의 cffont.properties와 같은 기능을 하는 파일입니다. Railo는 Adobe ColdFusion이나 Open BD와 같은 Font Manager가 없기 때문에 font의 추가가 좀 고생스럽습니다.

 Railo - CFDOCUMENT pdf font problem (Korean, Japanese)

pd4fonts.properties의 내용은 다음과 같습니다.

#this is an autogenerated file. please remove manually any references to copyrighted fonts
#Fri Apr 17 20:00:52 CEST 2009
Arial=arial.ttf
Arial\ Bold=arialbd.ttf
Arial\ Bold\ Italic=arialbi.ttf
Arial\ Italic=ariali.ttf
Courier\ New=cour.ttf
Courier\ New\ Bold=courbd.ttf
Courier\ New\ Bold\ Italic=courbi.ttf
Courier\ New\ Italic=couri.ttf
Times\ New\ Roman=times.ttf
Times\ New\ Roman\ Bold=timesbd.ttf
Times\ New\ Roman\ Bold\ Italic=timesbi.ttf
Times\ New\ Roman\ Italic=timesi.ttf

여기에 새로운 서체를 추가해 줍니다. 물론, 한국어 서체, 일본어 서체 등을 추가해야 합니다만, 흔히 한글 Windows환경에서 쓰이는 굴림(Gulim), 돋움(Dotum) 등의 서체는 ttf가 아닌 ttc포맷이고, 또 라이센스 문제가 발생합니다만, 이렇게 할 수 있다 정도로만 봐 주세요. 네이버의 나눔고딕이나, 나눔명조와 같이 공개된 서체를 이용해도 됩니다. 다만, 꼭 Windows기본서체인 굴림과 같은 ttc폰트를 이용해야 하는 경우 반드시 먼저 ttc폰트를 ttf로 풀어줘야 합니다. MS-DOS 응용프로그램중에 Breakttc.exe라는 것이 있는데 구글에서 검색해 보면 사용법과 프로그램을 구할 수 있습니다. 이 부분의 설명을 생략하겠습니다.

pd4fonts.properties의 내용을 다음과 같이 임의 변경합니다. 아래의 서체지정은 가장 기본적인 Windows의 맑은고딕체, 굴림, 돋움, 궁서, 바탕, Century Gothic, Tahoma, Verdana과 함께 공개 서체인 나눔고딕, 나눔명조, 다음고딕, 그리고 일본어와 중국어를 위한 MS Mincho 등의 서체를 간략하게 지정한 것입니다. = 기호를 중심으로 왼쪽은 CSS에서 쓸 서체명이고, 오른쪽은 fonts.jar로 패키지할 실제 ttf폰트 파일명입니다. 정확하게 지정해야 서체를 쓸 수 있습니다. 

#this is an autogenerated file. please remove manually any references to copyrighted fonts
#Fri Apr 17 20:00:52 CEST 2009
Arial=arial.ttf
Arial\ Bold=arialbd.ttf
Arial\ Bold\ Italic=arialbi.ttf
Arial\ Italic=ariali.ttf
Arial\ Unicode=ARIALUNI.TTF
Batang=Batang.TTF
Batangche=Batangche.TTF
Courier\ New=cour.ttf
Courier\ New\ Bold=courbd.ttf
Courier\ New\ Bold\ Italic=courbi.ttf
Courier\ New\ Italic=couri.ttf
Daum_Regular=Daum_Regular.ttf
Daum_SemiBold=Daum_SemiBold.ttf
Dotum=Dotum.TTF
Dotumche=Dotumche.TTF
Century\ Gothic=GOTHIC.TTF
Century\ Gothic\ Bold=GOTHICB.TTF
Century\ Gothic\ Bold\ Italic=GOTHICBI.TTF
Century\ Gothic\Italic=GOTHICI.TTF
Gulim=Gulim.TTF
Gulimche=Gulimche.TTF
Gungso=Gungso.TTF
Gungsoche=Gungsoche.TTF
Malgun=MALGUN.TTF
Malgun\ Bold=MALGUNBD.TTF
MS\ Gothic=MSGothic.TTF
MS\ Mincho=MSMincho.TTF
MS\ PGothic=MSPGothic.TTF
MS\ PMincho=MSPMincho.TTF
MS\ UI\ Gothic=MSUIGothic.TTF
Yahei=MSYH.TTF
Yahei\ Bold=MSYHBD.TTF
Nanum\ Gothic=NanumGO.ttf
Nanum\ Gothic\ Bold=NanumGOBold.ttf
Nanum\ Gothic\ Extra\ Bold=NanumGOExtraBold.ttf
Nanum\ Myongjo=NanumMJ.ttf
Nanum\ Myongjo\ Bold=NanumMJBold.ttf
Nanum\ Myongjo\ Extra\ Bold=NanumMJExtraBold.ttf
SimHei=SIMHEI.TTF
SimSun\ Bold=SIMSUNB.TTF
Tahoma=TAHOMA.TTF
Tahoma\ Bold=TAHOMABD.TTF
Times\ New\ Roman=times.ttf
Times\ New\ Roman\ Bold=timesbd.ttf
Times\ New\ Roman\ Bold\ Italic=timesbi.ttf
Times\ New\ Roman\ Italic=timesi.ttf
Trebuchet\ MS=TREBUC.TTF
Trebuchet\ MS\ Bold=TREBUCBD.TTF
Trebuchet\ MS\ Bold\ Italic=TREBUCBI.TTF
Trebuchet\ MS\ Italic=TREBUCIT.TTF
Verdana=VERDANA.TTF
Verdana\ Bold=VERDANAB.TTF
Verdana\ Italic=VERDANAI.TTF
Verdana\ Bold\ Italic=VERDANAZ.TTF

자, pd4fonts.properties를 UTF-8형식으로 저장하고, ttf폰트 파일 준비가 끝났다면 다시 Consol에서 jar파일을 패키징 해 합니다. 패키징은 알집 등과 같은 Window용 압축프로그램을 이용할 수 없으므로, Windows환경이라면 DOS Consol에서 Linux라면 Shell Consol상태에서 명령어를 입력하여 패키징 합니다. (이 부분은 설명 대상이 본 글과는 좀 거리가 있기 때문에 검색 등을 하여 별도로 찾아 보세요. 참고 : http://uniksy1106.tistory.com/76) 임의 디렉토리인 fonts안에 기본서체와 본인이 추가하고자 하는 서체들을(모두 ttf 일이여야 합니다.) 복사하고, fonts 폴더안의 모든 서체와 pd4fonts.properties파일을 하나의 jar 파일로 재 패키징합니다. 쉽게 말해 원래 Railo안의 fonts.jar 파일안에 한글, 일본어지원 서체가 없으므로 한글서체, 일본어서체 등을 넣고, pd4fonts.properties에 재정의하여 다시 fonts.jar 파일을 만든다고 보시면 되겠습니다.

jar cvf fonts.jar fonts/*

패키징된 fonts.jar 파일을 Railo의 lib안의 원본 fonts.jar을 덮어씁니다. 그런 다음 Resin 또는 Tomcat등 Railo의 기반 Servlet엔진 자체를 재시작해 줍니다. 자, 이제 정상적으로 나타나는지 테스트 해 볼 까요? 다음의 코드를 작성하고, cfdocument.cfm파일로 저장한 후 브라우저에서 요청해 봅시다. 한글과 일본어가 잘 표시 되지요?

<cfdocument format="PDF" pageType="A4">
< style type="text/css">
< !--
.font_korean {
	font-family: "Batang";
}

.font_japanese {
	font-family: "MS Mincho";
}

-- >
</style >
<div class="font_korean">
신속하게 인터넷 애플리케이션 구축, 배포 및 유지 관리<br /><br />
Adobe® ColdFusion®을 사용하면 개발자는 강력한 엔터프라이즈용 인터넷 애플리케이션을 신속하게 구축하고 배포 및 유지 관리할 수 있습니다. 최근에 출시된 ColdFusion 9를 사용하면 복잡한 비즈니스 로직을 매우 적은 코드로 간결하게 작성할 수 있습니다. 이와 함께 사용할 수 있는 ColdFusion Builder는 컨셉 설정에서부터 배포에 이르는 ColdFusion 애플리케이션 개발 과정을 효율적으로 관리할 수 있는 Eclipse 기반의 IDE로서 Adobe Labs에서 다운로드할 수 있습니다. 이 두 제품의 완벽한 툴과 서비스를 사용하여 강력한 리치 인터넷 애플리케이션을 개발할 수 있습니다.
</div>

<br /><br />

<div class="font_japanese">
インターネットアプリケーションをすばやく開発、デプロイ、管理<br /><br />
Adobe® ColdFusion®は、パワフルなエンタープライズインターネットアプリケーションの迅速な開発、デプロイ、管理をサポートします。最新リリースのColdFusion 9を使用すれば、複雑なビジネスロジックを少ないコードに凝縮できます。また、コンセプトからデプロイに至るまでColdFusionアプリケーションを効率良く管理するためのEclipse™ベースのIDEであるAdobe ColdFusion Builder™をColdFusion 9とともに提供。Adobe Labsで公開しています。ColdFusionとColdFusion Builderを組み合わせれば、リッチでパワフルなインターネットアプリケーションを作成するためのツールとサービスがすべて揃います。
</div>

</cfdocument>

Sample view : http://www.nooree.com/samples/railopdf/cfdocument_pdf.cfm

Railo - CFDOCUMENT pdf font problem (Korean, Japanese)

사실 이 문제는 Railo 그룹스에 알려야 할 문제이지만, Font 등의 라이센스 문제때문에 사실상 한글 서체를 Railo에서 미리 내장할 수 있을지는 미지수 입니다. 일단 패키지화 해서 배포하려면 정식으로 라이센스를 구매해야 합니다. 일반적으로 굴림체와 같은 Windows서체는 흔히 복사하고 배포하고 있지만, 사실은 Microsoft사의 고유 저작권이 있고, 또 49달러나 하는 비교적 비싼 서체라는 것을 아는 분은 거의 없을 듯 합니다. 따라서 Railo의 fonts.jar파일에 안에 패키징 할 서체는 정식으로 라이센스가 확보된 서체만 패키징해서 써야 합니다. Microsoft의 서체목록을 보시려면 http://www.microsoft.com/typography/fonts/family.aspx을 방문하세요.

pd4fonts.properties sample


I already have this book. But I bought this book again today.
Category : ColdFusion , Tech books , Miscellaneous Comments : 댓글쓰기 Posted by 장창학 at 2:07 AM

Programming ColdFusion MX 2/EColdFusion 서적에 대하여 한국어 버전의 책은 하나 밖에 없습니다. 예전에 소개한 바로 이 책인데요. 대부분 영어로 된 원서를 가지고 공부할 수 밖에 없는데, 사실 원서를 가지고 공부할 수 밖에 없을 만큼 절박한 상황의 ColdFusion개발자는 40,000,000명 중 1명정도 밖에 안되는 상황을 생각한다면 앞으로 10년안에 한국어 책이 나올 가능성은 장담하건데 없다고 생각합니다. 

여러 이유가 있겠지만 가장 큰 이유는 아직 덜 이슈화된 언어적 특성도 있겠지만, 용기있는 저자나 역자가 나타난다고 하더라도 종이책을 서점에서 볼 수 있는 것은 사실상 불가능해 보입니다. 바로 출판사의 영리이해 때문인데요, 오늘 제가 이미 가지고 있는 책임에도 또 구매한 이 책 "Programing ColdFusion MX 2/E" 역시 Adobe ColdFusion의 버전 업그레이드에 따라 지속적으로 출판되지 못한 이유는 저자의 블로그에서 보듯 출판사인 O'reilly의 영리이해 타산에 맞지 않아서 입니다.

해외에서도 PHP등의 다른 언어에 비해 ColdFusion의 서적은 턱 없이 부족한데, 이유는 여럿 있겠지만, 우선 배우기 쉬운 언어적 특성때문에 굳이 비싼 책이 필요없다는 것도 있을 수 있겠고... 대부분의 저자가 Adobe의 기술문서에서 충분히 친절한 기고를 많이 하고 있어 사실상 장사가 안된다는 것이 있을 수 있겠습니다만, 아무튼 Ben Forta의 서적도 무척 좋지만 저는 Rob Brooks Bilson의 이 책이 더 낫다고 봅니다.

이 책은 Ben의 책에 비해 좀 어렵습니다. 따라서 전혀 CodlFusion이란걸 모른 상태에서는 안보는게 나을 지 모릅니다. Ben의 책이 찬찬히 CFML이나, ColdFusion을 소개하고 짚어 준다면, 이 책은 뭐랄까 좀 아는 사람(?)을 위한 것이기 때문입니다. 그런데 좀 안다는 것이 CFML을 좀 안다는 것이 아니라, 웹프로그래밍을 좀 안다는 것에 촛점이 맞춰져 있습니다. 비록 ColdFusion의 예전 버전(2002년 출시된 MX6.1기준)에 맞춰지고 있지만, CFML의 기본 문법, HTML의 기본 FORM요소와 CFML의 통합 등 이후 버전에서 추가된 새로운 Flash/PDF관련태그, SWF동적생성기능, Chart/Media기능에 대한 부분을 제외한 정말 기초적인 CFML의 세련된 사용법을 알려주는 책입니다. 처음 출간되었을 때, 관련 레퍼런스 중에 최고라는 찬사를 괜히 받은 책이 아니니까요. 그래서 이 책을 왜 또 샀냐? 하시겠죠? 집과 회사에서 기초중의 기초를 잊지 않고 빠르게 찾아 보려고 합니다. 저도 ColdFusion을 야매(?)로 배워서 인지 문법적 기초가 늘 아쉽거든요. 특히 웹프로그램의 기본에 대해서요.

Programming ColdFusion MX, 2/E Programming ColdFusion MX, 2/E
<2003년에 구매해서 가지고 있는 책입니다. 부끄럽지만 이렇게 공부했더랍니다.>

사실 이 책은 Amazon에서 쉽게 구할 수 있지만, 점점 재고가 바닥나고 있어 향후 1~2년안에는 정말 구할 수 없을 책이 될 것 입니다. 물론 독자는 Rob에게 최신판의 새로운 서적을 집필해 달라고 여전히 그의 블로그에서 요청하고 있지만, 아쉽게도 아직 계획이 없어 보입니다.

암튼 이 책을 구하시려면 국내 해외서적 판매 사이트(강컴, 인터파크, 티메카, 교보문고 등등)에서는 이제 구할 수 없고, Amazon에서만 구매가능할 것 같습니다. 제가 여러군데 문의한 결과 구매불가라는 답변만 왔거든요. Amazon에서 직접 구매하면 더 저렴하지만, 영어가 어려운 분은 구매대행(지오패스, 위즈위드 등) 사이트에서 구매대행을 이용할 수 는 있습니다. 좀 비싸다는 단점이 있지만 안전하죠.

사실 구매하지 않더라도 해외의 Ebook을 공유하는 웹사이트 등에서도 쉽게 chm파일로 된 이 책을 다운로드 해 볼 수 있습니다.(어디냐고 묻지는 마세요. 좀 찾으면 금방 찾을 수 있습니다. 적어도 Google에서는 말이죠.^^)

원서의 공식판매처 : http://oreilly.com/catalog/9780596003807
원서의 Amazon구매처 : http://www.amazon.com/Programming-ColdFusion-2nd-Rob-Brooks-Bilson/dp/0596003803


About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments