본문 바로가기

ColdFusion9

Adobe ColdFusion Pre-Release Program Closure Adobe는 자사의 SW제품을 출시하기전에 일종의 베타테스트를 위해 특별히 지원한 테스터들에게 출시전 제품을 제공하고 피드백을 받는 프로그램을 운영중에 있습니다. 유명한 포토샵은 물론이거니와 제가 참여하는 Dreamweaver나 서버제품군인 ColdFusion도 운영중인데 엊그제 ColdFusion의 프리릴리즈 프로그램은 종료한다는 메일이 왔네요. 그냥 닫는다는 것인지, 저에게만 닫는다는 것인지. ㅋㅋ 설명도 없고 참 성의없네요. 이유조차 없이 닫는거 보니 그동안 이 프로그램의 성과가 별로 없었나 봅니다. 사실 저 역시 새 릴리즈가 올라오면 깔아서 써보도 열심히 오류나 개선점을 리포트하면 좋은데 단 한번도 ㅋ 영어가 안된다는 이유를 핑계로 한글지원쪽 오류가 아니면 리포트를 해본 적이 없습니다. ㅠㅠ 그래.. 2021. 4. 17.
ColdFusion에서의 QR코드 생성, 그리고 Image Masking ColdFusion(또는 Java)에서 QR코드를 생성하려면 대표적인게 구글의 zxing이 있겠지만 딱 한가지 단점이 있습니다. zxing의 경우 QR코드의 색상은 변경이 가능하지만 배경을 흰바탕으로만 만들어져서 QR코드를 디자인 등에 활용하기에 제약이 있습니다. 반면 주로 PDF의 생성 등으로 활용하는 iText를 이용하면 QR코드의 배경을 투명하게 처리할 수 있는데요, 현재 iText가 버전이 7.X대로 업그레이드 되어 있지만 구버전인 5.X대도 현재의 ColdFusion 서버들 예를 들어 Adobe Coldfusion 2018, Lucee 5.x에서도 그대로 활용가능합니다. 물론 zxing은 QR코드의 해석에도 활용되므로 오늘의 코드에서도 필요한 라이브러리입니다. 오늘은 Adobe ColdFusio.. 2019. 11. 29.
Lucee Server에서 PDF생성 시 한글 폰트(CJK custom font) 사용하기 Adobe ColdFusion(https://www.adobe.com/kr/products/coldfusion-family.html)의 경우 CFML를 작성하여 동적으로 PDF를 생성할때 필요한 서체를 사전에 Administrator환경에서 서버상의 Font 목록을 조회하고 등록하여 쓸 수 있는 있t습니다. 물론 서체가 없는 경우 기본 시스템서체를 활용하여 보여줍니다만 한글서체가 서버에 설치되어 있지 않다면 제대로 표현이 불가능합니다. 마찬가지로 Railo(현재는 Lucee로 Fork)에서도 비슷한 기능을 관리자 기능에서 제공했으나 Lucee(https://lucee.org)에서는 해당기능이 빠져버렸고 PDF엔진 자체도 최근 변경이 되어 fonts.jar 파일에 폰트를 추가하는 방법으로는 해결이 안됩니다.. 2019. 9. 23.
Lucee Server에서 Remote address가 127.0.0.1로만 반환될 때 Lucee ColdFusion Server를 설치 후 CGI.REMOTE_ADDR 변수의 반환 값이 항상 127.0.0.1로만 반환 될 때 Lucee가 Deploy된 Tomcat의 web.xml에 아래의 코드를 추가해야 합니다. Lucee는 Tomcat에 deploy된 상태로 배포되기 때문에 별도의 Tomcat 등의 서버에 웹아카이브(WAR)로 배포하지 않았다면 기본 설치경로 예를 들어 Linux의 경우는 /opt/lucee/tomcat 이 됩니다. /opt/lucee/tomcat/conf/web.xml를 편집기로 열고 맨 마지막 노드 바로 위에 아래의 코드를 추가하시고 Lucee를 재시작하면 됩니다. RemoteIpFilter org.apache.catalina.filters.RemoteIpFilter.. 2019. 9. 3.
JSP와 ColdFusion의 Session 공유 기존에 JSP나 Servlet으로 구축된 어떤 시스템이 있다고 가정해 봅시다. 이 시스템은 워낙 방대하고 복잡해서 전면적인 개편이나 신규구축이 어렵다고 합니다. 그런데 ColdFusion의 강력한 기능과 효율적인 개발환경을 도입하고자 합니다. 상이한 두 환경과 이질적인 웹어플리케이션간의 통합을 어떻게 해야 할까요? 어려 방법이 있겠습니다만, 가장 우선 두 이질적인 웹어플리케이션을 통합하는데 있어 중요한 것은 데이터베이스와 파일의 기본적인 환경 공유와 함께 사용자인증, 어플리케이션 인증 등을 위해 세션(Session)을 공유해야 정확한 의미에서 "통합"이라는 단어를 쓸 수 있겠죠. 가령, PHP로 구축된 어떤 어플리케이션과 ASP로 구축된 어떤 어플리케이션을 단일호스트(웹사이트환경)에서 모두 실행 할 수는.. 2019. 8. 26.
ColdFusion에서 만들어 보는 동적 음성 Captcha ColdFusion에서는 오래전부터 태그를 지원하기 전부터 Java를 응용하여 만들어진 많은 Captcha 소스가 있었습니다. 대부분 쉽게 가져다 쓸 수 있도록 CFC(콜드퓨전컴포넌트)나 UDF(사용자정의 함수) 또는 Custom Tag(사용자정의 태그)로 제공되고 있어서 매우 쉽게 쓸 수 있었습니다. 그러나 Adobe ColdFusion이란 이름으로 Adobe에 인수되어 첫 출시된 버전 8에서는 쉽게 이미지를 핸들링 할 수 있는 태그를 지원하면서 Captcha도 동시에 쉽게 구현되도록 지원되기 시작했습니다. 이후 Railo나 OpenBD도 모두 지원하기 시작했습니다. 따라서 대부분의 ColdFusion서버에는 다음과 같은 단 한줄의 태그로 이미지로 만들어지는 Captcha를 생성합니다. 물론, Adob.. 2019. 8. 26.
CFFTP 연결 후 디렉토리 및 파일명의 한글이 깨져 보일 때 CFFTP태그는 손쉽게 ColdFusion 문서에서 외부의 FTP서버에 연결해서 해당 내용을 가져오거나 파일을 업로드하거나, 다운로드할 수 있는 아주 유용한 태그입니다. 마치 ColdFusion웹문서가 FTP클라이언트처럼 작동하게 해주는 강력한 기능을 제공합니다. 사용방법도 너무 쉬워서 몇줄의 코드로 간단하게 구현할 수 있습니다. 그런데 ASP와 같은 Windows계열의 웹개발언어에서는 CP949와 같은 운영체제의 인코딩과 EUC-KR과 같은 웹페이지 인코딩으로 기본적으로 한글을 사용하기에 매우 편리합니다만, 웹개발시 한글과 영문외의 문자 가령, 일본어 등과 같은 경우엔 별도의 조치를 취해주어야 합니다. 반면 대부분의 Linux환경에서는 UTF-8을 기본 지원하고 있어서 특별히 문자열에 대한 고민을 할 .. 2019. 8. 25.
Adobe ColdFusion Express Edition 다운로드 Adobe ColdFusion은 Trial 버전으로 사용하고 Trial 기간이 끝나면 10개의 Connection으로 제한되는 모든 기능을 사용할 수 있는 Deveolper edtion으로 작동합니다만, Trial을 다운로드하려면 Adobe.com에 반드시 회원가입을 해야 하는 불편함?이 있습니다. 이때 이용할 수 있는 것이 Express edition인데요, 다음의 링크에서 운영체제별로 다운로드 할 수 있습니다. https://www.adobe.com/products/coldfusion-family.html Adobe ColdFusion family ColdFusion Enterprise A platform ideally suited to create scable, high-performing web .. 2019. 8. 25.
ColdFusion에서 Garbage Collection하기 ColdFusion 웹어플리케이션서버들은 JSP등과 마찬가지로 대부분 Java기반 WAS의 JVM메모리의 관리를 받습니다. 문제는 가비지콜렉션을 따로 할 필요까지는 없지만 한정된 자원(메모리)를 사용하는 특성상 메모리 회수가 빠르게 안될 경우 다중사용자가 접속하여 사용하는 웹사이트 등 메모리활용도가 높은 경우엔 서비스에 문제가 발생할 수 있죠. 그렇다면 어떻게 ColdFusion페이지에서 가비지콜렉션을 실행할 수 있을까요? 결론은 JSP 등과 동일하게 실행하면 됩니다. 하지만 일반적으로 가비지콜렉션이나 파이널라이저를 쓰지말도록 권장하더군요. 실행중인 어플리케이션에 문제가 발생할 수 있으니까요. 다만 메모리의 사용량 등을 모니터링해서 적절히 어플리케이션에 필요한 메모리확보 및 시스템 점검을 위한 사전예방은.. 2019. 8. 25.