T4 텍스트 템플릿으로 코드 자동화하기
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
.NET 개발자, 특히 C#을 사용하는 프로그래머
핵심 요약
- T4 Text Templates는 Visual Studio 및 JetBrains Rider에서 지원하는 코드 생성 도구로, 반복적 코드 작성을 자동화하여 생산성을 향상시킴
- 디자인 패턴 구현과 리포지토리/팩토리 클래스 자동 생성에 유리하며, .tt 확장자 파일을 통해 C# 코드와 텍스트 혼합 구조로 작성 가능
- 디자인 시간 템플릿과 런타임 템플릿 두 가지 유형을 지원하며, 디렉티브, 표준 텍스트, 제어 코드, 표현식으로 구성됨
섹션별 세부 요약
1. T4 Text Templates 개요
- T4 Text Template Transformation Toolkit은 Microsoft Visual Studio와 JetBrains Rider에 내장된 동적 텍스트 파일 생성 도구
- 주요 활용 사례: C# 클래스, SQL 스크립트, 구성 파일, 문서 자동 생성
- 반복 코드 제거, 오류 감소, 생산성 향상, 커스터마이징 가능 등 주요 장점
2. T4 템플릿 구조
- .tt 확장자 파일로 구성됨
- 디렉티브(
<#@ ... #>
): 메타데이터, 임포트, 파일 형식 정의 - 표준 텍스트: 정적 콘텐츠
- 제어 코드(
<# ... #>
): 동적 콘텐츠 생성을 위한 C# 로직 - 표현식(
<#= ... #>
): 출력 생성을 위한 내장 표현식
3. 실무 예시: 리포지토리 및 팩토리 클래스 생성
- 리포지토리 자동 생성:
```csharp
namespace DataAccess
public class <#= ClassName #>Repository
public IEnumerable<<#= ClassName #>> GetAll()
return new List<<#= ClassName #>>();
```
- ClassName 변수를 통해 ProductRepository 등 다양한 클래스 생성 가능
- 팩토리 클래스 자동 생성:
```csharp
namespace FactoryPattern
public static class <#= ClassName #>Factory
public static <#= ClassName #> Create()
return new <#= ClassName #>();
```
- UserFactory 등 복수 팩토리 클래스 생성에 유리
4. T4 도구 사용 방법
- Visual Studio:
- 프로젝트 우클릭 → Add → New Item
- Text Template 선택 후
.tt
파일 생성 - 템플릿 편집 후 저장하여 자동 생성
- JetBrains Rider:
- T4 Support Plugin 설치
.tt
파일 생성 및 템플릿 작성- 프로젝트 빌드 시 자동 생성
5. T4 템플릿 최적화 팁
- 모듈화: 복잡한 로직은 재사용 가능한 컴포넌트로 분리
- 파라미터화: 동적 입력을 통해 템플릿 유연성 확보
- 부분 클래스 활용: T4로 생성한 코드와 수동 작성 코드 통합
- 자동 실행: 빌드 이벤트 또는 스크립트로 템플릿 재생성 자동화
- 버전 관리: T4 생성 코드를 추적하여 일관성 유지
결론
- T4 Text Templates는 .NET 개발자에게 반복적 코드 자동화, 디자인 패턴 구현 가속, 생산성 향상에 효과적인 도구
- Visual Studio와 JetBrains Rider에서 내장 또는 플러그인 설치로 쉽게 통합 가능하며, 모듈화 및 파라미터화를 통해 유연한 활용이 가능
- 리포지토리/팩토리 클래스 생성 등 실무 적용 예시를 통해 시간 절약 효과 입증