Entries for month: July 2010



문자열에 대한 몇가지 ColdFusion 팁
Category : ColdFusion Comments : 4 Comments Posted by 장창학 at 1:04 AM

사실 팁이라고 하기엔 뭐하지만.. 저 역시 종종 함수를 까먹을때가 있답니다.  다음의 경우엔 특히나 급한데..ㅋㅋ 생각이 안나면 기술문서에서 찾기도 귀찮죠.

연속된 주민등록번호의 구분자(-)를 자동으로 입력하고자 하는 경우

가령, 9910121234567이란 가상의 주민등록번호가 문자열로 있다고 가정하고, 7번째 자리에 -기호를 넣고 싶은 경우라면 어떻게 해야 할까요? 물론 애초에 DB에 문자열을 넣을때 991012-1234567 와 같이 14자리로 입력해 두면 이딴일을 할일이 없어지지만, 생년월일 등을 따로 보관하는 경우 등 상황에 따라 -없이 한줄로 있는 경우라면 말이죠. 다음과 같이 해 볼 수 있습니다.

 

<cfset juminNo = "9910121234567">
<cfoutput>#Insert("-", juminNo, 6)#</cfoutput>

 

자, 이렇게 Insert()함수를 써서 문자열의 특정 위치에 특정 문자열을 삽입할 수 있습니다. 참 쉽죠잉~ㅋ 상황에 따라 전화번호등에서도 응용할 수 있겠죠잉~ㅋ

 

주민등록번호 뒷자리를 숨겨야 하는 경우

이 경우는 REReplace()함수 등으로 일정 자리수를 다른 문자열로 치환해 버리는 수도 있겠지만, 간단하게 다음과 같이 할 수도 있습니다. 어떻게 하느냐? RemoveChars()함수를 써서 문자열의 특정 위치부터를 아예 잘라버릴 수 있겠죠.

 

<cfset juminNo = "9910121234567">
<cfoutput>#RemoveChars(juminNo, 7, 7)#</cfoutput>-*******

 

이렇게, 7번째 자리수의 문자열은 잘라버리고, 강제로 **표시를 해줄 수도 있겠죠잉~ㅋ 참쉽죠잉~ㅋ

 

금액 등의 표시에서 매 3자리마다 ,기호를 넣고자 하는 경우

금액을 표기할때 DB에 넣어진 문자열이 가령 230052000원이란것이 있다고 합시다. 단순히 출력하면 그대로 나와버리죠. 좀더 세련되게.. 매 3자리마다 ,(콤마)기호를 넣으려면 어떻게 해야 할까요? 다음과 같이 해 볼 수 있습니다.

 

<cfset totalMoney = "230052000">
<cfoutput>#NumberFormat(totalMoney, ",")#</cfoutput>원

 

자 이렇게 NumberFormat()함수를 써서 매 3자리마다 기호를 넣을 수 있습니다. 자 어때요? 참 쉽죠잉~ㅋ ColdFusion 참 쉽죠잉~~ㅋㅋ


HTML5 Pack for Dreamweaver CS3, CS4, CS5
Category : HTML5 Comments : 댓글쓰기 Posted by 장창학 at 1:42 PM

Download HTML5 Pack for Dreamweaver CS3 and CS4

Download HTML5 Pack for Dreamweaver CS5

드림위버에서 HTML5문서를 작성할때 코드힌트 등을 지원해 주는 확장팩입니다. Adobe공식 배포판은 CS5용 뿐이지만 Donald Booth라는 사람이 CS3, CS4용 익스텐션을 만들어 배포중입니다. 각자 맞는 버전을 설치하시면 됩니다.


Retrieving resetting ColdFusion admin password - 관리자 패스워드를 분실했을때
Category : ColdFusion , Open Bluedragon , Railo Comments : 댓글쓰기 Posted by 장창학 at 12:44 AM

OpenBD를 사용중인 환경에서 OpenBD 관리자의 패스워드를 분실했을 경우엔 어떻게 찾을 수 있을까요? 우선, FTP나 SFTP 또는 SSH가 가능해야 합니다. 다음의 경로에서 bluedragon.xml 파일을 다운로드하여 수정하거나, 또는 VI등으로 열어보면 패스워드를 알 수 있습니다. 일반적으로 자신의 웹루트에서의 WEB-INF디렉토리에서 다음의 위치를 찾습니다.

OpenBlueDragon Admin : {HOST WEB ROOT}/WEB-INF/bluedragon/bluedragon.xml

위 파일의 Server - System의 노드에서 보면 Password항목이 있는데 이 부분이 관리자 패스워드 입니다. 암호화되어 있지 않기 때문에 바로 보거나 수정할 수 있습니다. 그렇다면 Railo의 경우는 어떨까요? Railo와 Adobe ColdFusion의 경우는 암호화되어 기록되기 때문에 분실한 패스워드를 알 수 없지만 다시 설정은 가능합니다. Railo의 경우 Server Admin과 Web Admin의 각각의 다른 관리자모드를 제공하므로 각각의 패스워드를 저장한 위치가 다릅니다.

Railo Server Admin : {railo installation}/railo-server/context/railo-server.xml
Railo Web Admin : {host root}/WEB-INF/railo/railo-web.xml.cfm

위 파일을 각각 열어(Web Admin만 하는 경우 Server Admin파일은 수정할 필요없음) 관리자 패스워드 부분을 삭제하고 공란으로 수정한 뒤 Railo를 재시작하면 관리자 패스워드를 재설정 할 수 있습니다. 그럼 Adobe ColdFusion의 경우는 어떨까요? ColdFusionMX버전 이후의 모든 버전에서는 먼저 ColdFusion데몬(프로세스)를 중지한 후 다음의 파일을 열어 수정한뒤 데몬(프로세스)를 재시작하면 관리자 패스워드를 재설정할 수 있습니다.

Adobe ColdFusion : {Adobe ColdFusion Installation directory}/lib/neo-security.xml

위 파일을 열고 <var name='admin.security.enabled'><boolean value='true'/></var> 부분의 False부분을 True 바꾼뒤 ColdFusion을 재시작하면 관리자 패스워드를 재설정할 수 있습니다.


Ubuntu, CentOS에 ColdFusionMX버전을 설치 후 구동실패
Category : ColdFusion , Ubuntu & Linux/Unix Comments : 댓글쓰기 Posted by 장창학 at 5:48 PM

ColdFusion MX버전은 2002년에 출시된 구버전의 ColdFusion입니다만, 가끔 예전에 만들어진 시스템의 유지보수 등의 이유로 설치가 필요한 경우가 있습니다. 대부분 당시의 운영체제, DB서버 등을 그대로 셋팅하길 권장하지만 사실 이제와서 Solaris 8이나, Redhat 9와 같은 구형 리눅스를 구하기도 힘들 뿐 더러 하드웨어 지원드라이버의 부재등으로 사실상 설치 시 부터 머리가 아파옵니다.

얼마전 ColdFusion MX 6.01 Linux버전을 설치할 일이 있었는데요. 실행OS는 Ubuntu 8.04를 택했습니다. 결과적으로 Ubuntu는 올바른 선택이 아님을 알았죠. 권한문제 및 ColdFusionMX와 Apache2와의 연동문제 등 실제 설치 및 구동에 문제가 있었습니다. 우선 설치 후 libc.so.6 의 링크를 찾을 수 없어 구동할 수 없다는 오류는 ColdFusion 실행스크립트의 다음 부분을 주석처리하여 구동할 수 있습니다.

가령 리눅스에서 기본 설치경로로 설치했다면 /opt/coldfusionmx/bin 에 구동스크립트인 coldfusion이 있습니다. 일반적으로 우분투에서는 sudo ./coldfusion start와 같이 실행합니다. 실행이 libc.so.6의 문제로 안된다면 sudo vi coldfusion 하시어 xport LD_ASSUME_KERNEL 라는 문자열을 찾아 주석처리하시고 저장한 후 다시 실행해 보시면 됩니다.

그런데 문제는 wsconfig와 같은 웹서버 연동 기능에 문제가 있는건지 우분투의 httpd.conf에 jrun모듈을 로드하는 스크립트를 정상적으로 기입하지 못하여 Apache에서 cfm파일을 호출하면 전부 바이너리파일로 다운로드 시켜버리는 문제가 있습니다.

 결론은 Radhat 9을 하나쯤 장만하여 갖고 있어야 한다는것.. ㅠㅠ  우분투 등 ColdFusionMX 당시에는 없던 리눅스 배포판은 사용에 주의할것이란점.. 그리고 최신 JDK나 JRE에서도 문제가 있다는 것 등등..가벼움을 위해 구버전 쓰신다면.. Railo를 대신 사용하실 것을 추천해 드립니다.


OpenCFML 위원회에서의 Adobe의 탈퇴? 그리고 붉어지는 CFML엔진들의 갈등
Category : ColdFusion , Open Bluedragon , Railo Comments : 댓글쓰기 Posted by 장창학 at 4:44 PM

OpenCFML(http://www.opencfml.org)위원회는 ColdFusion Markup Language의 표준을 정하는 비공식 단체입니다만, 사실 ColdFusion의 모든 특허, 저작권은 Adobe Systems에게 있기 때문에 사실상 위원회의 위원들이 Adobe사와 직간접적을 관련이 있는 사람들이여서 결론적으론 Adobe의 영향력이 가장 많이 미치는 단체이기도 합니다.

이런 단체를 만든 이유는 사실 Adobe사외에 BlueDragon과 같은 경쟁 엔진들 그리고 Railo나 Open BlueDragon과 같은 공개용 엔진들이  등장하면서 서로 다른 태그 및 함수, 그리고 기능을 하나로 규격해 보고자 함이 가장 큰 목적입니다. 여러 엔진을 대표하는 위원들이 모여서 다음번 버저에서 이 태그는 서로 공동으로 채택하자 등등의 일들을 벤더에게 조언하는것이죠. 여기에는 Ben Forta나 Ray Camden, Rob brooks Bilson과 같은 친 Adobe개발자도 있고, Sean Corfield 과 같은 Railo진영, Matt Woodward와 같은 친 OpenBD진영의 사람도 있죠.

그런데 어제 저도 놀라는 포스트를 보고 말았는데 Adobe가 이 위원회에서 손을 뗀다는 것이였습니다. Adam Lehman의 블로그(http://www.adrocknaphobia.com/post.cfm/adobe-no-longer-part-of-opencfml)에서 해당 내용이 처음 언급된거 같은데요. 사실 실제 Adobe가 위원회에서 탈퇴한다는 말이 아니라.. Adobe진영의 위원들이 이 조직에서 손을 뗀다는 말이 맞겠네요.

요약하자면 위원회의 노력에도 불구하고 표준으로 정한 ColdFusion의 스펙이 각각의 엔진별로 따로 구현되고 있고, 태그나 함수도 각각 다른 길로 가는것도 문제고, 더욱이 표준으로 정해서 복제엔진들(Adobe의 입장에서는 Railo나 OpenBD는 그저 자사의 제품을 복제한 복제품에 불과합니다.)로 고객이 이탈하는 것을 조장하는 꼴이 되는것이 아니냐.. 그래서 결론은 Adobe가 피해를 보는것이 아닌가? 뭐 이런 이야기 같습니다. 결국 이는 많은 ColdFusion 커뮤니티나 개발자에게 피해가 고스란히 간다..뭐 이런 이야기죠.

특히 Adobe ColdFusion의 스팩을 충실히 따르는 Railo와는 달리 BlueDragon진영은 거의 따로 놀고 있어 표준 CFML로 만들어도 작동이 안되거나 어떤 함수와 태그는 서로 호환도 안되어서 문제가 발생한다는 겁니다. 그런데 문제를 바라보는 시각은 각각 다른가 봅니다.

표준엔진인 Adobe엔진이 있는데 왜 복제엔진들이 나와서 설치느냐 하는 부류와 너네껀 너무 비싸고 비효율적이야 하는 부류.. 두 부류의 감정싸움이 서서히 나타나고 있는 것 같습니다. 대부분은 복제엔진의 등장에 원인이 있고 문제가 있으니 너네가 잘못이다.. 이런 시선이 강한것도 사실인거 같습니다만, 그러나 사실.. Java나 다른 언어를 보더라도 표준과 제정은 Sun이 하지만 Java를 하는 업체는 많다는 것을 보면 Adobe진영의 주장도 그리 논리적이질 못합니다. 즉, 스스로 ColdFusion의 주인으로서 보다 저렴하고 강력한 제품을 출시하고, 업계 및 개발자의 지원에 보다 적극적이였다면 복제엔진의 등장이 없었을 지도 모르겠습니다. 대부분의 복제엔진들의 등장의 이면에는 가격적인 측면, 새로운 태그와함수의 추가를 원하는 커뮤니티의 의견이 제때 반영되지 않는 느린 출시속도.. 등등 Adobe가 해결해 주지 않으니까 우리가 직접 한다는 식의 주장도 있는 걸 보면 이런 표준기관의 등장도 참으로 안타까울 뿐인데 더욱이 이번 소식은 이런 조직의 갈등?이라니..

암튼 각각의 엔진별로 따로 함수나 태그를 지원하기 시작한다면, 결국은 아이폰이나 안드로이드냐의 문제보다 더 복잡한 같은 언어인데 서로 다른 비극이 생기지 않을까 걱정입니다. 좋은 언어임에는 분명한데 제 개인적인 생각으로는 주인들을 잘못 만나 성장하지 못함이 아쉽기만 합니다. Railo나 OpenBD가 등장할때 적극적으로 가격인하, 성능개선 등등의 무기로 적극적인 대응을 하거나, 아니면 이들 엔진을 인수합병하거나 하는 방법도 있을 텐데 말입니다.

점점 OpenBD와 Railo 그리고 Adobe ColdFusion이 달라지기 시작해서 걱정입니다.  


About me

Categories

Monthly Archives

Links

Recent Posts

Recent Comments