어도비 콜드퓨전

**어도비 콜드퓨전**(Adobe ColdFusion)은 1995년 제레미 앨라이어와 조셉 앨라이어가 만든 상업적인 RAD 플랫폼이다. 최초 개발 의도는 간단하게 데이터베이스와 HTML 페이지를 연동하기 위해 설계되었는데 2.0버전부터는 IDE(통합개발환경)와 스크립트 언어를 포함한 개발 플랫폼으로 거듭나게 되었다. 어도비 시스템즈에서 제공하고 있는 현재 버전의 콜드퓨전은 기업업무시스템과 RIA 개발을 위한 통합된 기능을 제공하고 있다. 콜드퓨전은 주로 PHP와 ASP와 비교되곤 한다.

## 개요
콜드퓨전은 1995년 얼래어(Allaire)의 제품으로 조셉과 제레미 형제에 의해 발표되었다. 2001년 앨라이어는 매크로미디어와 합병되었고 다시 2005년 어도비 시스템즈로 인수되었다.

콜드퓨전 MX 7 엔터프라이즈 에디션부터는 게이트웨이 인터페이스를 통해 SMS나 인스턴트 메신저와 같은 비동기 이벤트처리가 다룰 수 있는 기능이 추가되었다.

콜드퓨전은 주로 웹사이트나 인트라넷에서 데이터처리를 위해 사용되며 SOAP이나 웹 서비스, 플래시 리모팅과 같은 원격 서비스를 생성하기 위해 사용되기도 한다. 특히 클라이언트에서 사용하는 플렉스기술과 잘 어울리는 서버 쪽 기술이다.

## 주요 기능
다음과 같은 기능을 제공한다.
* 쉽고 간단한 데이터베이스 접근
* 클라이언트와 서버 캐시 관리
* GUI 위젯폼과 검증기능을 통해 클라이언트에서 사용할 코드를 생성
* HTML을 PDF나 FlashPaper로 쉽게 변환
* 액티브 디렉터리나 LDAP, SMTP, POP, HTTP, FTP, 마이크로소프트 익스체인지 서버와 같은 기업용 시스템 데이터나 RSS나 Atom과 같은 일반적인 데이터 형식을 다룬다.
* 베리티(Verity)의 검색엔진 K2를 기반으로 파일 인덱스처리나 검색 서비스 제공
* GUI 관리자 화면
* Server, application, client, session, request에 대한 변수의 유효범위를 가진다.
* XML 해석, 질의(XPath,XML Path Language), 데이터 검증, 변환(XSLT,Extensible Stylesheet Language Transformations)
* 서버 클러스터링
* 태스크 스케줄링
* 그래픽과 리포팅 처리
* 래스터 그래픽스나 자동가입방지(CAPTCHA), 압축파일과 같은 파일을 손쉽게 처리
* cfmediaplayer 태그로 비디오 조작 기능 추가(Railo와 Open BD에서는 cfvideoplayer)
* 간단한 웹 서비스 구현(서비스를 생성하고 처리하기 위해 WSDL 생성과 SOAP 변환이 자동으로 지원된다.)
*: 
```cfm
<CFINVOKE WEBSERVICE="http://host/tempconf.cfc?wsdl" METHOD="Celsius2Fahrenheit" TEMP="#tempc#" RETURNVARIABLE="tempf">
```


## CFML
콜드퓨전의 특징적인 기능 중 하나가 스크립트 언어인 CFML(ColdFusion Markup Language)이다. CFML은 ASP나 JSP, PHP와 기능적으로 비교되곤 하는데, 문법적인 측면에서는 HTML에 가까운 언어이다. "콜드퓨전"은 "CFML"을 같은 의미로 인식되곤 하지만 콜드퓨전 외에도 추가적인 CFML 애플리케이션 서버가 제공되고 있다.
CFML의 다른 기능은 닷넷 프레임워크 환경이나 이미지 처리에서 유사하거나 좀 더 강력하게 동작한다.

HTML의 각 요소에 대응되는 콜드퓨전 태그는 "CF"를 접두어를 추가하고 HTML에서 해석될 내용을 표기한다.

### [[Hello world 프로그램]]
&lt;cfoutput&gt; 는 변수나 다른 컨텐츠를 외부로 출력하는 시작 태그이다.

```cfm
<cfset example = "Hello World!">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
 <html>
   <head>
    <title>Hello World Example</title>
   </head>
   <body>
    <cfoutput>#example#</cfoutput>
   </body>
 </html>
```

## CFScript
콜드퓨전은 CFML뿐 아니라 액션스크립트나 자바스크립트처럼 사용할 수 있는 내장된 스크립트 언어인 CFScript도 사용할 수 있다.

핵심 엔진을 비롯한 기본 기능과 내장된 스크립트 언어(CFScript)는 C를 기반으로 작성되었고 플러그인 모듈은 자바로, 문법은 HTML과 유사하게 만들어졌다.
## 개발 이력
* **1995** : 앨라이어 콜드 퓨전 버전 1.0
* **1996** : 앨라이어 콜드 퓨전 버전 1.5
* **1996** : 앨라이어 콜드 퓨전 버전 2.0
* **1997-6월** : 앨라이어 콜드 퓨전 버전 3.0
* **1998-1월** : 앨라이어 콜드 퓨전 버전 3.1
* **1998-11월** : 앨라이어 콜드퓨전 버전 4.0 (콜드와 퓨전사이에 공백이 삭제되어 콜드퓨전으로 명명되었다)
* **1999-11월** : 앨라이어 콜드퓨전 버전 4.5
* **2001-6월** : 매크로미디어 콜드퓨전 버전 5.0
* **2002-5월** : 매크로미디어 콜드퓨전 MX 버전 6.0 (build 6,0,0,48097), Updater 1 (build 6,0,0,52311), Updater 2 (build 6,0,0,55693), Updater 3 (build 6,0,0,58500)
* **2003-7월** : 매크로미디어 콜드퓨전 MX 버전 6.1 (build 6,1,0,63958), Updater 1 (build 6,1,0,83762)
* **2005** : 매크로미디어 콜드퓨전 MX 7 (build 7,0,0,91690), 7.0.1 (build 7,0,1,116466), 7.0.2 (build 7,0,2,142559)
* **2007-7월 30일** : 어도비 콜드퓨전 8 (build 8,0,0,176276)
* **2009-5월 4일** : 어도비 콜드퓨전 8.0.1 (build 8,0,1,195765)
* **2009-10월 5일** : 어도비 콜드퓨전 9 (build 9,0,0,251028)
* **2010-7월-13일**: 어도비 콜드퓨전 9.0.1 (빌드 9,0,1,274733)
* **2012-5월-15일**: 어도비 콜드퓨전 10 (빌드 10,0,0,282462)

## 버전
### 콜드 퓨전 3.1
버전 3.1에서는 솔라리스 운영체제도 지원되기 시작했다. 콜드 퓨전 스튜디오는 화면미리보기 기능과 HTML문법검사기능이 추가되었다.

### 콜드퓨전 4
"콜드 퓨전"의 명칭이 간단하게 "콜드퓨전"으로 변경되었다. 아마도 저온 핵융합 방식을 나타내는 Cold fusion과 구분하기 위함이기도 했다.
이때부터 콜드퓨전은 인트라넷 개발 등 해외에서 많이 사용되었다.

### 콜드퓨전 4.5
버전 4.5부터는 자바 객체를 직접 호출하는 기능이 추가되어 시스템 명령을 실행하고 J2EE 서버와 직접 통신할 수 있게 되었다.

### 콜드퓨전 5
앨라이어를 매크로미디어에서 인수한 이후 첫 번째 출시한 제품이다. The last to be legacy coded for a specific platform.

### 콜드퓨전 MX (버전 6)
2000년 이전부터 앨라이어는 코드네임 "Neo"를 시작했다. 이 프로젝트는 콜드퓨전 서버를 자바 기반으로 다시 작성하는 것이었다. 자바 런타임 환경에서 동작하기 때문에 이식성과 서버상 보안을 강화할 수 있었다. 지금은 어도비 라이브사이클 개발팀에 있고 당시 소프트웨어 개발책임자였던 Damon Cooper(http://www.dcooper.org)가 프로젝트 초기 책임을 맡았다.

2001년 1월 16일 앨라이어는 매크로미디어의 합병소식을 전했다. 매크로미디어에서 개발팀을 이어받아 콜드퓨전 5.0을 발표했다. 버전 5까지는 "콜드퓨전"의 이름을 유지했다. 2002년 매크로미디어는 자사 브랜드를 강조하며 조금 달라진 이름의 제품으로 콜드퓨전 MX(6.0)을 발표했다. 콜드퓨전 MX는 완전하게 J2EE 플랫폼을 기반으로 다시 만들어졌다. 콜드퓨전 MX는 또한 플래시 리모팅을 바탕으로 매크로미디어 플래시와 통합된 개념으로 설계되었다.

콜드퓨전 MX의 출시와 함께 CFML도 객체 지향 프로그래밍 기반으로 변모하게 되었다.

### 콜드퓨전 MX 7
2005년 2월 7일 콜드퓨전 7.0이 출시되면서 제품명을 "매크로미디어 콜드퓨전 MX 7"으로 바꾸었다. CFMX 7에는 플래시 기반과 XForm 기반, 웹폼과 리포트 빌더가 추가되어 PDF뿐 아니라 FlashPaper, RTF, Excel로 변환을 지원하였다. 어도비 PDF 출력기능을 바탕으로 어떤 HTML 페이지라도 프린트에 적합하게 변환하는 기능을 제공하게 되었다. 엔터프라이즈 에디션에는 게이트웨이가 추가되어 IM, SMS, 파일변경검사(Directory Watcher), 비동기 실행 등 HTTP 요청 외의 서비스에 대해 인터랙션이 가능하게 되었다. XML에 대한 지원을 바탕으로 네이티브 스키마 검사 기능을 포함할 수 있게 되었다.

코드명 "Mystic"이었던 콜드퓨전 MX 7.0.2에서는 어도비 플렉스 2와 협업할 수 있는 기능이 추가되었다.

### 어도비 콜드퓨전 8
2007년 7월 30일 어도비 시스템즈에서는 기존 제품명에서 "MX"를 뺀 **콜드퓨전 8**을 공개했다. 코드명 "Scorpio"(황도십이궁에서 8번째 별자리로 콜드퓨전 제품의 여덟 번째 버전이라는 의미)라는 이름으로 베타 테스트를 진행하였으며 어도비 시스템즈에서 기대했던 5,000명보다 훨씬 많은 전 세계 14,000여명의 개발자가 테스터로 참여하였다. 콜드퓨전 개발팀은 보스톤과 매사추세츠, 인도의 방갈로르 개발자로 구성되었다.

추가된 기능으로 어도비 어크로뱃 폼과 통합된 기능을 제공하는 CFPDFFORM 태그를 비롯해 이미지를 조작하는 기능과 닷넷 프레임워크와 통합된 기능, 이전에 매크로미디어 브리즈로 알려졌던 웹 기반 협업 솔루션인 Adobe Acrobat Connect를 이용해 동적인 프레젠테이션을 만들어낼 수 있는 CFPRESENTATION 태그가 추가되었다. 그리고 엔터프라이즈 에디션 버전에서는 서버 모니터링 기능이 내장된 콜드퓨전 관리자가 추가되었다. 콜드퓨전 8은 리눅스, OS X, 윈도우 서버 2003등 다양한 운영 체제에서 사용할 수 있었다.

콜드퓨전 8에 추가된 다른 기능으로는 Ajax 위젯, 파일 압축 조작(CFZIP), 마이크로소프트 익스체인지 서버 통합기능(CFEXCHANGE), 자동가입방지(CAPTCHA) 생성기능을 포함한 이미지 조작(CFIMAGE), 멀티 쓰레딩, 개별 애플리케이션 설정, Atom이나 RSS 피드에 대한 지원, 리포팅 기능 강화, 강력한 암호화 라이브러리, 배열 및 구조 향상, 향상된 데이터베이스 인터랙션, 성능 향상, PDF 조작 및 병합 기능(CFPDF), 디버깅, 아파치 더비와 같은 내장 데이터베이스 지원, ECMA스크립트에 좀 더 충실해진 CFSCRIPT와 같은 것들이 포함되었다.

콜드퓨전 애플리케이션 개발을 위해서는 주로 어도비 드림위버 CS4나 매크로미디어 HomeSite 5.x, CFEclipse, 이클립스등 다양한 도구를 사용할 수 있다. 새로운 콜드퓨전 8의 기능을 위한 패치를 제공하고 있다.

### 어도비 콜드퓨전 9
콜드퓨전 9(코드명 Centaur)는 2009년 10월 5일 출시되었다. CF9의 새로운 기능은 다음과 같다.
* 사용자가 사전에 정의한 함수(User Defined Function, UDF)와 콜드퓨전 컴포넌트(CFC)를 CFScript에서 사용할 수 있다.
* 명확한 "로컬" 변수의 유효범위를 사용해 더 이상 함수의 앞부분에서 로컬 변수를 요청할 필요가 없다.
* CFC를 위해 암시적인 게터/세터 구현.
* "init"나 CFC에서 동일한 이름의 함수를 호출해서 암시적인 생성자를 만든다.
* 예외 처리를 위해 추가된 CFFinally 태그와 흐름 제어를 위한 CFContinue 태그.
* 하이버네이트를 기반으로 객체 관계 매핑(Object-relational mapping,ORM) 데이터베이스 통합 지원.
* Server.cfc 파일에 onServerStart, onServerEnd 메소드 적용.
* 어도비 플렉스와 어도비 에어와 긴밀한 통합 지원.
* 마이크로소프트의 주요 제품인 워드, 엑셀, 셰어포인트, 익스체인지, 파워포인트와의 통합 지원.
* 메모리 관리자나 가상 파일 시스템을 통해 메모리상에서 컨텐츠를 다룰 수 있는 기능 제공.
* 공개된 서비스에 대해 접근 제어, 보안, 서버내부 함수처리 등을 통한 보호기능 제공.

#### 어도비 콜드퓨전 빌더
어도비 콜드퓨전 빌더(코드명 "Bolt")는 콜드퓨전 애플리케이션을 만들기 위해 활용할 수 있는 새로운 이클립스 기반 개발 IDE이다. 현재 버전 1.0 출시되고 있으며 이후 업데이트 버전이 추가적으로 배포되었다.

이 도구에 포함된 기능은 다음과 같다.

* 객체 관계 매핑(ORM) 자동 설정
* 애플리케이션 코드 생성
* 서버 관리
* 이클립스 프레임워크를 쉽게 확장
* CFML, HTML, Javascript, CSS 구문 하이라이트 기능 지원
* 태그, 함수, 변수, 컴포넌트에 대한 코드 힌트 기능 지원
* 코드 접기
* 코드조각(Snippet) 등록/관리
* 아웃라인 보기 지원
* 파일과 데이터베이스에 대한 RDS 탐색기
* 라인단위 디버깅

## 같이 보기
* 프로그래밍 언어의 비교
* 4세대 프로그래밍 언어

## 각주


## 외부 링크
* Adobe ColdFusion 및 ColdFusion Builder 
* Adobe ColdFusion 및 ColdFusion Builder 
* CFFaq.com 
* ColdFusion 기술문서 
* NewAtlanta BlueDragon  
* Commercial Railo 
* OpenSource Railo 
* Open BlueDragon 
* ColdFusion Resource Portal 

### 커뮤니티 사이트
* 네이버 오픈 콜드퓨전 카페 
* 한국콜드퓨전사용자그룹 

분류:어도비 소프트웨어
분류:CFML 컴파일러
분류:매킨토시용 소프트웨어
분류:HTML 편집기
분류:JVM 프로그래밍 언어
분류:스크립트 언어
분류:웹 개발 소프트웨어
분류:매크로미디어 소프트웨어