템플릿 프로세서
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
템플릿 프로세서는 데이터 모델, 소스 템플릿, 템플릿 엔진, 결과 문서로 구성된 시스템이다. 템플릿 엔진은 템플릿 언어를 사용하거나 프로그래밍 언어 위에 구축되어, 웹 템플릿, 문서, 소스 코드 생성 등 다양한 분야에서 활용된다. 템플릿 프로세서는 모양과 로직을 분리하고, 팀 개발을 용이하게 하며, 코드 중복을 줄이는 장점이 있다.
더 읽어볼만한 페이지
템플릿 프로세서 | |
---|---|
기본 정보 | |
![]() | |
유형 | 소프트웨어 |
목적 | 데이터와 템플릿을 결합하여 결과 문서를 생성 |
상세 정보 | |
입력 | 템플릿 데이터 모델 |
출력 | 결과 문서 |
기술 | 템플릿 엔진 템플릿 언어 |
예시 | |
종류 | Apache FreeMarker Apache Velocity Jinja Mustache Paiton Python Smarty |
관련 주제 | |
관련 항목 | 웹 템플릿 시스템 문서 생성 |
2. 구성 요소
모든 템플릿 처리 시스템은 최소한 다음과 같은 주요 요소로 구성된다.
- 연관된 '''데이터 모델'''
- 하나 이상의 '''소스 템플릿'''
- 프로세서 또는 '''템플릿 엔진'''
- '''결과 문서''' 형태의 생성된 출력
2. 1. 데이터 모델
데이터 모델은 관계형 데이터베이스, XML과 같은 소스 파일, 플랫 파일 데이터베이스의 대체 형식, 스프레드시트 또는 기타 다양한 사전 형식 데이터 소스일 수 있다. 일부 템플릿 처리 시스템은 사용할 수 있는 데이터 유형이 제한적이다. 다른 시스템은 최대한의 유연성을 위해 설계되었으며 다양한 유형의 데이터를 허용한다. 데이터 모델로는, 관계형 데이터베이스, XML, 플랫 파일 데이터베이스 (예: CSV), 스프레드시트 등 다양한 형식이 고려될 수 있다. 여러 데이터 모델을 지원하는 유연한 템플릿 엔진도 있다.2. 2. 소스 템플릿
모든 템플릿 처리 시스템은 최소한 연관된 '''데이터 모델''', 하나 이상의 '''소스 템플릿''', 프로세서 또는 '''템플릿 엔진''', '''결과 문서''' 형태의 생성된 출력으로 구성된다.소스 템플릿은 일반적으로 다음에 따라 지정된다.
- 기존 프로그래밍 언어
- 특별히 설계된 템플릿 언어
- 호스트 애플리케이션의 기능에 규정되는 것
- 이상의 조합
2. 3. 템플릿 엔진
템플릿 처리 시스템은 최소한 다음과 같은 주요 요소로 구성된다.[4]- 연관된 '''데이터 모델'''
- 하나 이상의 '''소스 템플릿'''
- 프로세서 또는 '''템플릿 엔진'''
- '''결과 문서''' 형태의 생성된 출력
템플릿 엔진은 다음을 담당한다.[4]
또한 일부 템플릿 엔진은 추가 구성 옵션을 허용한다.[4]
'''템플릿 엔진'''은 현대적인 프로그래밍 언어의 주요 특징을 모두 나타내는 특정 종류의 템플릿 처리 모듈이다. "템플릿 엔진"이라는 용어는 템플릿과 데이터를 처리하여 텍스트를 출력하는 것을 주된 또는 유일한 목적으로 하는 프로그래밍 언어에 대한 일반화된 설명으로 진화했다. 이 용어는 특히 웹 개발에서 웹 템플릿 시스템을 사용할 때 적용되며, 다른 맥락에도 적용된다.[4]
2. 4. 결과 문서
서식 지정된 출력인 결과 문서는 문서 전체 또는 일부를 구성한다.3. 특징
템플릿 엔진은 일반적으로 대부분의 고급 프로그래밍 언어에서 공통적으로 사용되는 기능을 포함하며, 특히 일반 텍스트 처리 기능에 중점을 둔다.
이러한 기능에는 다음이 포함된다.
4. 내장형 템플릿 엔진
템플릿 프로세서는 일반적으로 시스템 또는 프레임워크의 일부로 사용되는 별도의 소프트웨어이지만, 간단한 템플릿 언어는 범용 프로그래밍 언어의 문자열 처리 기능과 텍스트 편집기 또는 워드 프로세서와 같은 텍스트 처리 프로그램에 일반적으로 포함되어 있다. 템플릿 언어는 일반적으로 정교한 기능을 갖춘 템플릿 프로세서와는 대조적으로 단순한 치환 전용 언어이지만, 일부 논리를 포함할 수 있다.
간단한 예로는 많은 프로그래밍 언어에서 찾을 수 있는 'printf' 인쇄 형식 문자열과 여러 텍스트 편집기 및 소스 코드 편집기에서 찾을 수 있는 스니펫이 있다. 워드 프로세서에서는 템플릿이 일반적인 기능이며, 템플릿을 자동으로 채우는 것을 종종 메일 병합이라고 한다.
파싱과 템플릿의 상호 보완적인 특성을 보여주는 예는 ed 텍스트 편집기의 검색 및 바꾸기에서 파생된 sed 텍스트 프로세서의 `s`(대체) 명령이다. 대체 명령은 `s/regexp/replacement/` 형식이며, 여기서 `regexp`는 입력을 파싱하기 위한 정규 표현식이고 `replacement`는 문자 `&` (전체 일치) 또는 특수 이스케이프 시퀀스 `\1` ~ `\9` (''n''번째 하위 표현식)를 포함하는 형식 문자열이 있는 리터럴 텍스트 또는 출력을 위한 간단한 템플릿이다. 예를 들어, `s/(cat|dog)s?/\1s/g`는 "cat" 또는 "dog"의 모든 발생을 "cats" 또는 "dogs"로 대체하며, 기존 "s"를 중복하지 않는다. `(cat|dog)`는 정규식의 첫 번째(이자 유일한) 하위 표현식이며, 형식 문자열의 `\1`은 이것을 출력에 대체한다.
5. 활용 분야
템플릿 처리는 다양한 목적으로 여러 컨텍스트에서 사용된다. 특정 목적은 사용하는 소프트웨어 응용 프로그램 또는 템플릿 엔진에 따라 달라진다. 템플릿 처리 시스템은 유연하여 원래 설계자가 의도하지 않은 목적으로도 사용할 수 있다.[4]
5. 1. 웹 템플릿 엔진
웹 템플릿 엔진은 웹 템플릿과 소스 데이터(일반적으로 관계형 데이터베이스에서 가져옴)를 처리하여 하나 이상의 출력 웹 페이지 또는 페이지 조각을 생성한다. 일반적으로 웹 템플릿 시스템 또는 애플리케이션 프레임워크의 일부로 포함된다. 현재, 템플릿 처리 소프트웨어는 웹 개발의 맥락에서 가장 자주 사용된다.[4]웹 템플릿 엔진은 "웹 템플릿"과 소스 데이터(전형적으로 관계형 데이터베이스에서)를 처리하여 웹 페이지 (또는 그 일부)를 생성한다. 웹 애플리케이션·웹사이트 개발에서는 템플릿 엔진 사용이 표준이 되었으며, 웹 애플리케이션 프레임워크의 일부로 포함되는 경우가 많다.
템플릿 엔진에는 자체 템플릿 언어를 채택한 것과 범용 프로그래밍 언어 위에 구축된 것이 있다. 전자의 예는 Velocity·템플릿 툴킷·프리마커·스마트이 등이며, 후자의 예는 JSP·eRuby 등이다.
5. 2. 문서 생성
템플릿 처리 시스템은 유연하여 원래 설계자가 의도하지 않은 목적으로도 기존의 틀을 벗어난 사용이 가능하다. 문서 생성 프레임워크는 일반적으로 문서를 생성하기 위한 핵심 모델로 템플릿 처리를 사용한다.자바독과 같은 소스 코드 내장 문서에서 HTML을 생성하는 시스템도 템플릿 엔진의 일종이다.
5. 3. 소스 코드 생성
소스 코드 생성은 템플릿 엔진 처리 결과로 소스 코드를 출력하는 것을 말한다. 이 경우 데이터 모델로는 UML, 관계형 데이터, 애플리케이션 도메인에 따른 특수한 데이터 저장소 등이 사용된다. 템플릿 처리 시스템은 유연하기 때문에, 본래 설계자가 의도하지 않은 용도로도 사용될 수 있다.6. 장점
참조
[1]
서적
Learning Java
O'Reilly
[2]
서적
Pattern Languages of Program Design 5
Addison-Wesley Professional
[3]
서적
Patterns of Enterprise Application Architecture
Addison-Wesley
[4]
문서
[5]
웹사이트
JavaServer Pages Technology
http://java.sun.com/[...]
2006-10-10
[6]
문서
[7]
서적
Learning Java
https://archive.org/[...]
O'Reilly
[8]
서적
Pattern Languages of Program Design 5
https://archive.org/[...]
Addison-Wesley Professional
[9]
서적
Patterns of Enterprise Application Architecture
https://archive.org/[...]
Addison-Wesley
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com