템플릿 프로세서

Template processor
템플릿 엔진의 모든 기본 요소와 처리 흐름을 나타내는 다이어그램입니다.

템플릿 프로세서(템플릿 엔진 또는 템플릿 파서라고도 함)는 템플릿을 데이터 모델과 결합하여 결과 [1][2][3]문서를 생성하도록 설계된 소프트웨어입니다.템플릿이 작성되는 언어를 템플릿 언어 또는 템플릿 언어라고 합니다.이 문서의 목적상 결과 문서는 문서, 웹 페이지 또는 소스 코드(소스 코드 생성 시)를 포함한 모든 형식의 출력입니다(전체 또는 단편).템플릿 엔진은 보통 웹 템플릿시스템 또는 애플리케이션 프레임워크의 일부로 포함되어 프리프로세서 또는 필터로도 사용할 수 있습니다.

일반적인 기능

템플릿 엔진에는 보통 대부분의 고급 프로그래밍 언어에 공통되는 기능이 포함되어 있으며, 일반 텍스트를 처리하는 기능에 중점을 둡니다.

이러한 기능은 다음과 같습니다.

  • 변수와 함수
  • 텍스트 치환
  • 파일 포함(또는 변환)
  • 조건부 평가 및 루프

임베디드 템플릿엔진

템플릿 프로세서는 일반적으로 시스템 또는 프레임워크의 일부로 사용되는 별도의 소프트웨어이지만 단순한 템플릿 언어는 범용 프로그래밍 언어의 문자열 처리 기능, 텍스트 처리 프로그램, 특히 텍스트 편집기 또는 워드 프로세서에 일반적으로 포함됩니다.템플릿 언어는 일반적으로 단순한 대체 전용 언어이며, 완전한 템플릿프로세서의 보다 고도의 기능과는 대조적입니다만, 몇개의 논리가 포함되어 있을 가능성이 있습니다.

간단한 예로는 많은 프로그래밍 언어에서 볼 수 있는 'printf' 인쇄 형식 문자열과 여러 텍스트 편집기와 소스 코드 편집기에서 볼 수 있는 스니펫이 있습니다.워드 프로세서에서 템플리트는 일반적인 기능이지만 템플리트의 자동 입력은 종종 메일 병합이라고 합니다.

해석과 템플릿 작성의 상호 보완적인 성질의 예시는ssed 텍스트 프로세서의 명령어(ed 텍스트에디터의 검색 및 치환에서 발신).대체 명령어는 다음과 같습니다.s/regexp/replacement/,어디에regexp는 입력 해석용 정규 표현입니다.replacement는 출력용 단순한 템플릿으로 리터럴텍스트 또는 문자를 포함하는 형식 문자열 중 하나입니다.&특별한 이스케이프 시퀀스에 대해 \1통해.\9n번째 서브 표현에 사용됩니다.예를들면,s/(cat dog)s?/\1s/g는 기존 "s"를 복제하지 않고 "cat" 또는 "dog"를 "cat" 또는 "dog"로 바꿉니다.(cat dog)regexp의 첫 번째(및 유일한) 서브 표현입니다.\1형식 문자열에서 이 값을 출력에 대입합니다.

시스템 요소

모든 템플릿 처리 시스템은 적어도 다음 주요 요소로 구성됩니다.

  • 관련 데이터 모델
  • 하나 이상의 소스 템플릿
  • 프로세서 또는 템플릿엔진
  • 결과 문서 형식으로 생성된 출력입니다.

데이터 모델

이것은 관계형 데이터베이스, XML 의 소스 파일, 플랫 파일 데이터베이스의 대체 형식, 스프레드시트 또는 미리 포맷된 데이터의 기타 다양한 소스일 수 있습니다.일부 템플릿 처리 시스템은 사용할 수 있는 데이터 유형에 제한이 있습니다.그 외의 것은, 최대한의 유연성을 실현하도록 설계되어 다양한 타입의 데이터를 사용할 수 있습니다.

소스 템플릿

소스 템플릿은 전통적으로 다음과 같이 지정되었습니다.

  • 기존 프로그래밍 언어에 따라
  • 특별히 정의된 템플릿 언어에 따라
  • 호스팅 소프트웨어 애플리케이션의 기능에 따라 또는
  • 위의 일부 또는 모든 하이브리드 조합에 따라 달라집니다.

템플릿 엔진

템플릿 엔진은 다음 작업을 수행합니다.

  • 데이터 모델에 연결
  • 소스 템플릿에 지정된 코드 처리
  • 출력을 특정 파이프라인, 텍스트 파일 또는 스트림으로 보냅니다.

또한 일부 템플릿엔진에서는 추가 설정 옵션을 사용할 수 있습니다.

결과 문서

이것들은 문서 전체 또는 문서 조각으로 구성될 수 있습니다.

사용하다

템플릿 처리는 다양한 목적으로 다양한 컨텍스트에서 사용됩니다.특정 용도는 일반적으로 사용 중인 소프트웨어 애플리케이션 또는 템플릿엔진에 따라 달라집니다.그러나 템플릿 처리 시스템의 유연성은 원래 설계자가 의도하지 않은 목적을 위한 비상식적인 사용을 가능하게 한다.

템플릿 엔진

템플릿 엔진은 현대 프로그래밍 언어의 주요 기능을 모두 보여주는 특정 종류의 템플릿 처리 모듈입니다.템플릿 엔진이라는 용어는 템플릿과 데이터를 처리하여 텍스트를 출력하는 것을 주된 목적으로 하는 프로그래밍 언어의 일반적인 설명으로 발전했습니다.이 용어의 사용은 웹 템플릿 시스템을 사용하는 웹 개발에 가장 두드러지게 적용되며 다른 컨텍스트에도 적용됩니다.[4]

문서 생성

문서 생성 프레임워크는 일반적으로 문서 생성을 위한 중앙 모델로 템플릿 처리를 사용합니다.

소스 코드 생성

소스 코드 생성 도구는 특정 응용 프로그램 도메인, 특정 조직 또는 컴퓨터 프로그래머의 생산 프로세스를 단순화할 때 추상 데이터 모델(UML, 관계 데이터, 도메인별 엔터프라이즈 데이터 저장소 등)에서 소스 코드를 생성할 수 있도록 지원합니다.

소프트웨어 기능

템플릿엔진은 웹 템플릿 및 소스 데이터(일반적으로 관계형 데이터베이스)를 처리하여 하나 이상의 출력 웹 페이지 또는 페이지 조각을 생성합니다.일반적으로 웹 템플릿 시스템 또는 응용 프로그램 프레임워크의 일부로 포함됩니다.현재 템플릿 처리 소프트웨어는 웹 개발의 맥락에서 가장 많이 사용되고 있습니다.

비교

XSLTW3C에 의해 설계된 템플릿 처리 모델입니다.주로 XML 데이터를 문서 또는 기타 출력으로 변환하기 위해 설계되었습니다.

Perl, Python, PHP, Ruby, C#, Java, Go같은 프로그래밍 언어는 네이티브 또는 애드온 라이브러리와 모듈을 통해 템플릿 처리를 지원합니다.JavaServer [5]Pages, Active Server Pages,[6] Genshi(Python용) eRuby는 웹 애플리케이션 개발을 위해 특별히 설계된 템플릿엔진의 예입니다.

게다가 템플릿 처리는, 텍스트 에디터, IDE, 관계형 데이터베이스 관리 시스템등의 소프트웨어 패키지의 서브 기능으로서 포함되는 경우가 있습니다.

템플릿 엔진 사용의 이점

  • 운영상 구별되는 계층에 소스 코드를 정리하도록 권장한다(: MVC 참조).
  • 불필요한 작업의 재현을 줄임으로써 생산성을 향상시킵니다.
  • 스킬 세트(예: 예술적 대 기술적)에 근거해 업무를 분리할 수 있도록 함으로써 팀워크를 강화한다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Niemeyer, Patrick (2002). Learning Java. Sebastopol: O'Reilly. ISBN 0-596-00285-8.
  2. ^ Manolescu, Dragos (2006). Pattern Languages of Program Design 5. Reading: Addison-Wesley Professional. ISBN 0-321-32194-4.
  3. ^ Fowler, Martin (2003). Patterns of Enterprise Application Architecture. Boston: Addison-Wesley. ISBN 0-321-12742-0.
  4. ^ (예: Velocity, Template 참조)툴킷, 프리마커)
  5. ^ JavaServer Pages는 Java 프로그래밍 언어로 사용하기 위해 Sun에서 출시한 기술입니다."JavaServer Pages Technology". 2006-10-10. Retrieved 2006-10-10.
  6. ^ ASP 1.0은 원래 Microsoft VBScript 및 JScript에서 사용하기 위해 출시되었습니다.Microsoft IIS의 확장판입니다.

외부 링크