티스토리 뷰
Velocity란 무엇인가?
Velocity는 자바 기반의 템플릿 엔진이다.
Velocity는 웹 페이지 디자이너들이 자바 코드안에서 정의된 메소들에 접근하는 것을 도와준다. 이것은 웹 페이지 디자이너들이 자바 개발자들과 함께 Model-View-Controller(MVC) 아키텍쳐에 따른 웹 사이트를 각자의 영역에서 최선의 결과를 가져오도록 도와준다는 것을 의미한다.
Velocity는 웹 페이지로부터 자바 코드를 분리할 수 있고, 웹사이트를 계속 오랫동안 유지할 수 있으며, 자바 서버 페이지(JSP)의 실용적인 대안을 제공한다.
Velocity로 무엇을 할 수 있나?
당신이 진흙(Mud)을 판매하는 "온라인 진흙 가게"의 페이지 디자이너 이라고 가정해보자. 그리고 고객들은 다양한 종류와 많은 수량의 진흙을 주문하여 당신의 가게는 날로 번성하고 있다.
고객들은 사용자 이름과 패스워드를 입력하고 당신의 사이트에 로그인하여 자신이 이전에 주문했던 주문목록을 조회하고, 또 다른 진흙을 살 수도 있다. 모든 고객에 관한 정보는 당신의 데이타 베이스안에 저장되고 있다.
데이타 베이스에 따르면 특별히 설악산에서 만든 진흙이 매우 인기가 좋으며, '설악산 진흙'보다 인기가 덜 한 일본산 빨간 진흙도 정기적으로 일본에서 수입하고 있다.
그러던 어느날 당신은 왜 '설악산 진흙'에 흥미를 느끼는 수많은 고객들과의 특별한 거래를 찾는데 Velocity를 사용하지 않는 지에 대한 의문을 갖게된다.
Velocity는 웹페이지를 통한 당신의 온라인 방문객들에게 진흙 판매를 쉽게 해준다. 진흙 가게의 웹사이트 디자이너인 당신은 고객이 웹 사이트 로그인 후에 보게 될 특별한 웹 페이지를 원하고 있다.
명심하라. 당신은 개발자들이 데이터베이스에서 필요한 정보를 어떻게 추출하는지에 대해 걱정할 필요가 없다. 당신은 단지 그것이 올바르게 작동한다는 것만 기억하면 된다. 그렇게 되면 당신은 당신만의 페이지 디자인을 하게 되고, 개발자들은 그들만의 일을 하게 된다.
이런 결과로, 당신은 로그인한 사용자에게 나타낼 동적인 정보를 아래와 같이 velocity Template Language(VTL) 문장을 사용해 웹페이지에 넣을 수 있게 된다.
Hello, $customer.Name! <br> $flogger.getPromotion( $mud )
$customer는 현재 로그인한 사용자에 대한 정보를 가지고 있고, $promotion은 로그인한 고객별로 데이타 베이스를 조회에 해당 고객에 맞는 추천 상품을 소개하는 일을 한다.
그래서 '설악산 진흙'을 오랫동안 구입해온 기록을 가진 고객이 로그인 했을 때 '설악산 진흙 현재 대폭 세일중!!' 이라는 메시지를 정면에서 보게 될 것이다.
Velocity의 힘과 유연함은 이렇게 VTL 레퍼런스와 함께 당신에게 제공된다.
VTL (Velocity Template Language)
VTL은 Velocity에서 템플릿 개발에 사용되는 언어로 레퍼런스(Reference), 디렉티브(Directive), 그리고 주석(Comment)으로 구성된다.
레퍼런스 | ${variable} | 컨텍스트에서 제공되는 변수에 대한 레퍼런스 |
${variable.property} | 속성에 대한 레퍼런스 | |
${variable.method(args)} | 메소드 대한 레퍼런스 | |
디렉티브 | #set | 레퍼런스의 값을 설정 |
#if #elseif #else | 조건문 제어 | |
#foreach | 반복문 제어 | |
#include | 파싱되지 않는 로컬 파일 출력 | |
#parse | 파싱되는 로컬 템플릿 출력 | |
#stop | 템플릿 엔진의 동작 정지 | |
#macro | 반복적으로 사용될 매크로 정의 | |
주석 | ## | 한 줄짜리 주석 |
#* .... *# | 여러 줄에 걸친 주석 |
VTL은 위 표에서 정리한 것처럼 너무나 단순하기 때문에 흔히 성냥갑 표지에 다 적을 수 있을 만큼 작은 API라고 불려진다.
이는 뷰 작업을 개발자와 디자이너가 함께 진행해 나간다는 점을 감안하면 매우 바람직한 일이라고 볼 수 있다.
VTL을 통해 작성된 벨로시티 템플릿(vm 파일)은 다음과 같은 패턴을 통해 처리 된다.
// 벨로시티 템플릿 엔진의 초기화 |
템플릿 엔진이 동작하는 방식을 정리해 보면, 개발자는 사용자에게 보여 질 디자인을 위해 VTL을 이용한 템플릿 파일을 작성하고, 그 처리를 위한 코드를 개발한다.
자바 코드와 템플릿 간의 필요한 정보 전달은 컨텍스트 객체를 통해 이루어진다.
이러한 2개의 파일을 입력받아 벨로시티는 템플릿을 토대로 렌더링한 결과 페이지를 출력하게 되는 것이다.
템플릿에 어떤 내용이 담겨 있느냐에 따라 결과 페이지는 일반 텍스트가 될 수도 있고, HTML이나 SQL, PostScript, XML 등도 될 수 있다.
출처.. intranet.traniz.com
'WEB > WEB Etc' 카테고리의 다른 글
FreeMarker(프리마커) 문법 (0) | 2011.10.11 |
---|---|
자카르타 톰캣 과 아파치 는 왜 설치 해야하는걸까?! (0) | 2011.10.11 |
WAS(Web Application Server)란? (0) | 2011.10.11 |
02 - iBATIS - Map Type, namespace (0) | 2011.10.11 |
xml 특수문자처리 (0) | 2011.10.11 |
- Total
- Today
- Yesterday
- 자바정의
- jason maraz
- eclipse svn
- dom vs sax
- Marry You
- 체크박스
- 타루 예뻐할께
- 스크린세이버
- javascript강의
- MySQL
- sax vs dom
- jason marz im yours
- 불독맨션 좋아요
- Split
- This Android SDK requires An...e ADT to the latest version
- 갈릴레오 svn
- java파일삭제
- 펌방지해제
- bruno mars marry you
- marry you 프로포즈
- 자바 객체
- java 인스턴스
- eclipse 단축키
- java파일복사
- java 객체
- Mysql명령어
- lol 서포터
- 문자열자르기
- 자바스크립트강의
- 이클립스 단축키
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |