Entries for month: October 2009



Mango Blog와 Spring Note 연동하기
Category : Mango Blog , Miscellaneous Comments : 댓글쓰기 Posted by 장창학 at 1:36 PM

제가 사용중인 이 블로그 Tool은 Mango Blog라는 외국의 ColdFusion언어로 작성된 텍스트큐브와 같은 설치형 블로그 툴입니다. 아마 한국에서는 ColdFusion을 운영중인 환경이 없어 많이들 사용하지 않을텐데요. 기능상으로는 텍스트큐브보다 뒤쳐지지만, 표준 웹기술로서 외부API는 충실히 지원하여 다양한 외부 서비스와 연동이 가능합니다.

오늘은, NCSoft(오픈마루스튜디오)에서 운영중인 스프링노트(Spring Note)와 연동하는 간단한 방법을 소개합니다. 스프링노트는 위키기반의 지식노트로서 블로그와는 유사하지만 강력한 메모기능 및 아카이브기능을 가지고 있는 서비스입니다. 스프링노트에 가입 또는 기존 가입자의 경우 로그인 한 후 Mangg blog와 연동하려면, 다음과 같이 몇가지 설정만 해주면 됩니다.


Adobe ColdFusion 9의 새로운 태그 2가지 - cfmediaplayer, cffileupload
Category : ColdFusion Comments : 4 Comments Posted by 장창학 at 5:08 AM

Adobe ColdFusion 9에서는 새로운 태그 3가지를 지원하고 있습니다. CFMAP, CFMEDIAPLAYER, CFFILEUPLOAD가 바로 그것입니다. Daniel Vega의 Three new user interface controls in ColdFusion 9 기술문서를 참조하면, 이 세가지 태그에 대한 샘플을 소개하고 있습니다. 오늘 저는 이중에서 한국 개발자가 관심가질만한 CFMEDIAPLAYER와 CFFILEUPLOAD에 대하여 샘플예제를 보여드리고, 활용방법에 대해 소개하고자 합니다.

* Sample Download

CFMEDIAPLAYER는 RailoOpen BlueDragon(Open BD)에서 지원하던 CFVIDEOPLAYER태그에 대응되는 Adobe ColdFusion에서만 지원하는 태그입니다. FLV비디오재생기능에 있어 Railo와 Open BD가 먼저 개념을 정립하고, 신규 태그를 지원했는데 자존심때문인지 Adobe ColdFusion에서는 태그명을 약간 바꾸는(?)방식으로 비슷한 기능을 제공하고 있습니다. 다음과 같이 간단한 태그한줄로 FLV재생기를 동적으로 생성할 수 있습니다. Railo나 Open BD의 동일한 기능과 비교해서 보시면 좋을 듯 합니다. Railo는 JWPlayer, Open BD는 Flow Player를 기본 재생기로 이용하고 있습니다.

cfmediaplayer.cfm

<html>
<head>
	<title>Adobe ColdFusion 9 - CFMEDIAPLAYER</title>
	<script type="text/javascript">
	< !--
	// 재생이 끝난 후 실행할 함수
	function playComplete() {
		alert('재생이 끝났습니다.');
	}
	//-->
	</script>
</head>
<body>

	<cfmediaplayer name="MediaPlayer"
				source="FLV파일 경로"
				hidetitle="true"
				hideborder="true"
				controlbar="true"
				autoplay="true"
				width="640"
				height="480"
				fullScreenControl="yes"
				onComplete="playComplete"
				quality="high"
				wmode="window"
	/>

</body>
</html>

정말 간단하게 FLV재생기를 동적으로 생성할 수 있습니다. 또한 onComplete와 같이 동영상재생 시작, 끝에 Javscript함수를 호출할 수 있어 보다 강력한 제어기능을 제공합니다. fullScreenControl를 이용하여 풀스크린 화면을 쉽게 제어가능합니다. Flash에서나 Flex의 경우 FLV재생기를 만들고, HTML문서에 삽입해야 하는 2번의 과정을 거치게 되지만, ColdFusion을 이용하면, 개발자가 Flash/Flex 디자이너/개발자의 도움없이 CFML코드만으로 생성이 가능한 장점이 있습니다.

자. 또 간단하게 살펴볼 새 태그는 CFFILEUPLOAD입니다. Flash Player 8이 처음 출시되었던시기 가장 이슈되었던 부분은 Flash를 이용한 File 업로드가 아닐까 생각합니다. 당시 Flash, 또는 Flex로 파일업로드 어플리케이션이 많이 만들어졌습니다. 물론 그때도 Flex나 Flash가 PHP가 아닌 ColdFusion을 서버측 언어로 이용하거나, 또는 ColdFusion 독자적으로 CFFORM태그를 이용하여 충분히 Flash 기반의 멋진 파일업로드 어플리케이션을 만들 수 있었습니다. 하지만 조금 긴 (사실 CFFORM을 이용하더라도 기껏해야 30~50줄이내로 끝낼 수 있었지만) 코드길이 때문인지, 아예 한줄로 끝내버릴 수 있는 태그를 제공하는 혁신을 제공하고 있습니다. 다음의 예제를 살펴보시길 바랍니다. 위 Adobe 기술문서 Daniel Vega의 예제를 한국개발자들께서 좋아하시는 Flash 기반 RIA로 다시 만들어 봤습니다.

cffileupload

cfupload.cfm

<html>
<head>
	<title>간단한 ColdFusion 업로드</title>
	<script type="text/javascript">
	< !--
	// 업로드 실패시 에러메시지
	function logError(e){
		var status = e.STATUS;
		var message = e.MESSAGE;
		var file = e.FILENAME;

		console.log(status + "/" + message + "/" + file);
	}
	//업로드 후 실행할 페이지 리프레시 함수
	function reFresh(){
		location.reload();
	}
	
//-->
	</script>
</head>
<body>

<!--- 디렉토리내의 모든 파일을 목록화 --->
<cfdirectory action="list" directory="#ExpandPath('./uploads')#" name="uploadedList" sort = "datelastmodified DESC" >

<!--- 파일명, 사이즈, 업로드날짜를 Grid에 바인딩 --->
<cfscript>
	rs = queryNew("filename, size, date");
	for(i=1; i LTE #uploadedList.RecordCount#; i=i+1) {
		queryAddRow(rs);
		querySetCell(rs,'filename', '#uploadedList.NAME[i]#');
		querySetCell(rs,'size', '#uploadedList.SIZE[i]/1000#');
		querySetCell(rs,'date', '#uploadedList.DATELASTMODIFIED[i]#');
	}
</cfscript>

<!--- 파일명, 사이즈, 업로드날짜 Grid --->
<cfform name="getFile" width="410" height="260" format="Flash" timeout="100">
	<cfformgroup type="panel" label="Uploaded Files" width="400" height="250">
		<!--- Grid에서 해당 아이템선택시 새창으로 링크 --->
		<cfgrid name= "uploadIMG"
			    query="rs"
			    onchange="getUrl('./uploads/' + uploadIMG.dataProvider[uploadIMG.selectedIndex]['filename'], '_balnk');">
		<cfgridcolumn name="filename" header="File Name">
		<cfgridcolumn name="size" header="Size (KB)">
		<cfgridcolumn name="date" header="Date">
		</cfgrid>
	</cfformgroup>
</cfform>

<!--- 업로드 --->
<cffileupload
	url="upload.cfm"
	bgcolor="##ffffff"
	onerror="logError"
	oncomplete="reFresh"
	title="Image Uploader"
	addbuttonlabel="Add"
	clearbuttonlabel="Remove"
	deleteButtonLabel="Delete"
	uploadbuttonlabel="Upload"
	maxfileselect="5"
	maxuploadsize="5"
	extensionfilter="*.jpg,*.gif,*.png"
	width="400"
	height="250"
/>

</body>
</html>


upload.cfm
<cffile action="upload" destination="#ExpandPath('./uploads')#" nameconflict="makeunique"/>


cfupload.cfm파일에서는 업로드파일이 저장되는 디렉토리에서 파일목록을 받아와서 동적으로 CFGRID에 Biding하고 있습니다. 또한 cffileupload태그로 파일을 업로드하고, 업로드 후 화면을 한번 Reload하는 Javascript함수를 호출하고 있습니다. upload.cfm파일은 일반적인 cfml에서의 파일업로드 태그이며, nameconflict를 makeunique으로 지정해서, 업로드되는 파일중복을 피할 수 있습니다. 자동으로 파일명이 중복될 경우 파일명뒤에 (1)과 같은 유니크한 텍스트를 붙혀주므로 PHP와 같은 타언어에서 처럼 일일히 중복파일이 있는지 체크하거나, 파일명을 변경하는 코드를 작성할 필요가 없습니다.

오늘은 간단하게 Adobe ColdFusion 9에서 제공하는 세가지 태그 중 2가지에 대하여 알아보았습니다. 앞에서 언급한 Adobe의 공식기술문서를 함께 살펴보시길 바랍니다. 그럼 즐거운 CFML코딩하시길 바랍니다.


Windows Web Server 2008 IIS7에서의 ColdFusion 9
Category : ColdFusion , Windows Comments : 댓글쓰기 Posted by 장창학 at 2:47 PM

MSDN에서 Windows Web Server 2008(이하 Windows 2008)을 다운로드 받고, Adobe에서 ColdFusion 9 Developer Edition을 받아 설치하는데만 한나절이 꼬박들었습니다. Windows 2008은 처음 접해보지만 Windows 2003과 비교하여 별반 다르지 않겠지 했더니만 Vista를 근간으로 만들어서 인지 일단 UI가 낯설어 혼났습니다. 우여곡절끝에 설치를 했습니다. Windows 2008에 Coldfusion 9를 설치하려면, 우선 설치한 운영체제의 아키텍쳐와 같은 버전(32/64비트)을 받습니다.

그런다음, 우선 Sun JDK나 JRE를 설치해야 합니다. 제일 간편하게 설치하는 방법은 http://www.java.com에서 바로 설치하는 것입니다. 물론 Adobe ColdFusion은 자체적으로 JRE를 내장하고 있어 굳이 설치할 필요는 없다지만 시스템기본 JRE를 이용하면 추후 JRE를 이용하는 프로그램의 설치시 유리해 집니다.(시스템 환경변수 등의 설정을 할 필요가 없어집니다.)

그리고, Windows 2008의 IIS를 설치해 줍니다. Windows 2003과 다른점은 기본적으로 IIS를 서버설치시 같이 설치가 안된다는 점이고, IIS6까지는 서버운영체제에 종속적으로 설치되는 반면(설치 CD가 반드실 필요), IIS7은 IE8과 같이 Microsoft에서 별도로 받아 설치할 수 있다는 점이 달라졌습니다. 서버관리자에서 역할을 추가하시면 자동으로 설치파일을 다운로드하여 설치합니다. Windows 2008에서는 "역할"이란 타이틀이 중요한데, 이것이 서버의 기능을 추가 또는 제거하는 일종의 역할을 말하는 개념입니다. 따라서 IIS나, FTP와 같은 서비스를 제공하려면 이 서버관리자에서 해당 역할을 추가해 주어야 합니다.(사실 쉬운 개념이지만, 용어로 접근하면 좀 어려워지죠.) IIS7이 정상적으로 설치되고, http://127.0.0.1로 접속을 하면 아래의 그림만 나오게됩니다.


Microsoft Technet Subscription 구매
Category : Windows Comments : 2 Comments Posted by 장창학 at 9:59 AM

MS Technet을 거금 25만을 주고 구매했씁니다. 전적으로 Windows 7 때문이였지만, 사실, XP며, Office며 몇몇 소프트웨어의 라이센스도 필요했고, 공부중인 Windows Server 2008이나, SQLServer 2008에 대한 기간제한 없는 평가용 라이센스가 필요해서 입니다. 원래 34만원 정도 하는데, 구글에서 뒤져 25%프로모션 쿠폰을 구해 25만원선에서 결제했네요. 예전 회사에서 MSDN을 구매한 적이 있어, MSDN의 거의 모든 권리를 Technet에서도 이용할 수 있을 거라 생각했는데, 확실히 다르군요. MSDN은 개발자가 개발에 필요한 거의 모든 MS제품을 개발용으로 사용할 수 있지만, Technet은 전산담당자가 서버, 운영체제, 오피스 등을 전사적으로 구매하기전에 평가용으로 구매하는 것이 맞는 거라 할 수 있겠습니다. 따라서 Technet에서는 Visual Studio나 Expression과 같은 개발/디자인 툴은 빠져 있었습니다.(쫌, 아쉽)


Windows 7 설치 및 잡담
Category : Windows Comments : 댓글쓰기 Posted by 장창학 at 3:02 AM

Windows 7 평가판을 받아 설치했습니다. Vista와 비슷한 외모지만 확실한 퍼포먼스의 성능기대 있더군요. 무척 가볍다는 느낌입니다. 아직 호환성 문제때문에 깔리는 무료 백신도 V3Lite만 가능하더군요. 참고로 Adobe CS4 제품군은 잘 설치되고, 잘 구동됩니다. 무척 가지고 싶어서 Technet 구독을 고민하고 있습니다.

사실, 얼마전 WebSiteSpark 프로모션으로 MSDN(다운로드 가능항목은 WebSiteSpark에 제한됨)구독 혜택이 있어, Windows Server 20008 R2의 라이센스가 있기는 한데, 이 녀석은 근본이 일단 Vista라서, Windows 7 비스꼬롬 바꿔주는 R2 라지만, 암튼 Windows 7은 처음으로 제가 MS운영체제 중에 열렬히 원하는 제품임에는 부정할 수 없네요. 30일의 라이센스 유예기간이 지나면, 결정을 해야 하는데, 물론 쉬운 가상바이오스 변경으로 인증을 받아 불법으로도 쓸 수 있겠지만, 인증 뭐 그런거에 일단 귀찮아서.. Technet 구독권 구매를 해야하긴 하겠습니다. ㅠㅠ; 꽁짜로 다 받으려면, 지금부터 블로그에 MS제품자랑과 팁, 열렬한 애정표현을 한 1년간 잘 해서 내년에는 MVP가 되는 꿈을 꾸는게 나을지도 모르겠네요.ㅋㅋㅋㅋ

암튼, Windows 2008은 회사의 업무상의 라이센스이니... Technet 25%할인권 적용 25만원 투자하여 다 갖고 싶네요. ^^


About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments