목차
1. T4란 무엇일까요?
2. 편리한 작업 환경 구성
3.
첫 예제 구현
4.
이미 있는 T4 Template 수정해보기 예제 (MVC Scaffolding에 나만의 주석달기)
5.
라이브러리 참조하여 사용하기와 디버깅하기
6.
매개변수를 위한 UI 구성
7.
코드 생성 툴로써 실행해보기
8.
VS와 연결하기
1.
T4란 무엇일까요?
Text Template Transformation Toolkit의
준말 TTTT의 다시 준말이 바로 T4입니다.
확장자는 .tt로 사용합니다.
텍스트 파일을 generation(생성)해줄수 있는 도구입니다.
다시 말해서 그 파일명이 무엇이냐에 따라 HTML, JavaScript,
ASP, C#, PHP, C, JAVA 등의 파일을 program으로 생성해줄 수 있도록
하는 도구(toolkit)입니다.
그리고 사용되어지는 언어는 닷넷에서 제공되어지는 C#, VB.net 등입니다.
사용하는 방법에 따라서 프로그램을 만들때 (design time)에
도움을 받을 수도 있을 것이고, HTML, 도움말 Text등을
프로그램 실행중에 생성할 수도 있을 것입니다.
간단하게 생각해보아도
일정주기 DB에 있는 내용을
HTML생성하여 사용하기
회사 ERP에서 매번 새로 만들어지는 테이블에 맞게 Copy and paste해서 조금 조금만 바꾸어서 사용한다면 패턴화해서 테이블만 입력하면 사용자 단 까지 뼈대를
한번에 만들기
등등 활용방법에 따라 폭넓고 유용한 도구이라는 것을 짐작할 수 있을 것입니다.
하지만 이번 강좌에서는 주로 entity framework이나 MVC Scaffolding처럼 코딩 중에 도움을 받을 수있는 작업을 예로 해서 진행합니다.
개인적으로 C#언어를 선호하므로 예제는 모두 C#으로 작성되었습니다.
해당 언어를 잘 구사할 수 있고 닷넷 개발 경험이 있으시다면 수월하게 따라 하실 수 있습니다.
2.
편리한 작업 환경 구성
T4 Template을 만들거나 수정하려고 마음을 먹었다면 가장
문제가 되는 부분이 바로 IDE환경에서 거의 Text파일
편집할 때와 마찬가지라는 점이다.
다시 말해, Visual studio IDE에서 적응되어져 있는
문법의 색상입혀 주기, 속성, 매서드, 하위 개체등을 편리하게 찾을 수 있는 intellsense 등이
현재까지는 tt파일에 관해서는 적용이 되지 않는 다는 점이다.
새 아이템 추가를 해서 [General]분류에 “Text Template”을 추가한다.
추가되면서 동시에 해당 tt가 실행되면서 경고창이 나온다.
이렇게 간단한 형태의 tt 파일을 확인한다.
솔루션 탐색기 화면에서 해당 TextTemplate1.tt파일의
앞의 ▷버튼을 클릭하여 추가되면서 생성된 빈 text파일인
TextTemplate1.txt파일을 확인할 수 있다.
처음을 확인하였던
tt파일을 다시 확인해보면 아래와 같이 흑백화면임을 알 수 있다.
이미 거론한 바와 같이 문법에 관한 색상 등 Visual studio가 제공해주는 editor환경의 혜택을 하나도
볼 수가 없다.
결국 메모장으로
T4 template을 작성해야하는 것이다.
아마도 아직까지는
visual studio에서 해당 환경을 지원하고 있지 않는 듯하다.
그래서 3rd
party 프로그램을 찾아봅니다.
[tools]-[extension
manager]로 이동합니다.
[Online Gallery]에서 “t4 template editor”라고 검색을 합니다.
다행히 현재(2012-04-09)기준으로 3개의 editor가 보입니다.
그 중에서 가장 많이 사용되었고 평가도 좋고 흔히 인용되어지고 사용되어지는
tangible T4 editor를 download합니다.
참고로 해당 소프트웨어는 free버젼과 pro 버젼이 있다고 합니다.
그리고 modeling 툴이 같이 포함되어져 있습니다.
다운로드를 클릭하고 실행합니다
환영메세지를 확인하고 다음을 클릭합니다.
설치폴더를 지정하고 다음을 클릭합니다.
원하는 features를 선택하고 다음을 클릭합니다.
조금 과하게 친절해서 설치확인화면이 나옵니다. 확인을 하고 다음을
클릭합니다.
라이센스가 있는 소프트웨어니 만큼 꼼꼼히 살핍니다. 그리고 동의를
합니다.
여기서 동의하지 않으실 분은 메모장에서 코딩하듯 계속 그렇게 하십니다.
저는 동의하고 다음을 클릭하였습니다.
설치가 진행되고 기다립니다.
설치가 완료되었습니다. 닫기를 클릭합니다.
Visual studio를 돌아 옵니다. 여전히 흑백화면임을 확인합니다.
종료 후 다시 시작합니다.
OMG!! 여전히 흑백화면입니다.
해당 tt파일을 닫았다가 다시 열어줍니다.
컬러가 되었습니다. 그리고 원하는 IDE의 기능도 있습니다. 올레~~!!
Comment 3
-
유스
2012.04.17 13:27
-
한머리
2012.04.18 09:13
유스님의 관심덕분에 다시 강좌를 올리게 되었는데 감사드린다는 말을 먼저 달지 못했네요. ^^*
근데 AOP를 이해를 잘하지 못해서 해당 방법론에서 T4 나 ORM이 뭔가 도구로써 내지 어떤 연관성이 있는 건가요?
T4와 ORM이라고 하면 대부분의 ORM 이 기본적으로 custom code generator를 포함하고 있는 걸로 아는데 그래서 연관성이 있을 것 같은데..
AOP에 관한 확실한 관념이 부족한 저로써는 연관성을 끌어내기 쉽지 않네요. ^^*
궁금해져서요. 혹시나 기회되시고 첨언 부탁드리겠습니다.
-
유스
2012.04.18 11:27
저도 닷넷2.0으로 프로그램을 짜다가,
새로 들어간 프로젝트를 다른 협력업체와 함께 진행중입니다.
근데 그쪽이 프레임워크부터 시작해서 최신기술들을 많이 끌어다 쓰는 것 같더군요..
저도 대충 이런게 있다라는것만 알고 있다가..
설명하고 소스를 봤는데..
T4와 AOP(그중에서도 PostSharp)를 이용해서 코딩양을 많이 줄여서 사용중이라고 하길래.. 뭔가 하고 들여다 보는중이죠..
어쨋든 T4도 그렇고, AOP도 그렇고 반복 코딩의 양을 줄이고, 확장성이 있으면서 유지보수를 쉽게 하자는데 목적이 있다고 보이거든요..
기존에 코딩하던 방식하고 많이 틀려서 어렵네요..
관심 많습니다~ 회사에서 갑자기 T4에 ORM에 AOP 이야기가 계속 나오네요..
닷넷2.0으로 작업하다가 4.0으로 하려니..
아.. 죽겠...