웹 템플릿 시스템

Web template system
서버측 웹 템플릿 시스템의 기본 프로세스인 컨텐츠(데이터베이스에서)와 "프레젠테이션 사양"(웹 템플릿에서)은 (템플릿 엔진을 통해) 결합되어 웹 문서를 대량 생산합니다.

웹 게시의 웹 템플릿 시스템은 웹 설계자 및 개발자가 웹 템플릿과 함께 작업하여 검색 결과와 같은 사용자 정의 웹 페이지를 자동으로 생성할 수 있도록 합니다.이렇게 하면 웹 요청 매개변수를 기반으로 동적 요소를 정의하면서 정적 웹 페이지 요소를 재사용합니다.웹 템플릿은 정적 컨텐츠를 지원하여 기본 구조와 외관을 제공합니다.개발자는 컨텐츠 관리 시스템, 웹 애플리케이션 프레임워크HTML 편집기에서 템플릿을 구현할 수 있습니다.

개요

웹 템플릿 시스템은 다음과 같이 구성됩니다.

템플릿과 컨텐츠 리소스는 템플릿 엔진에 의해 처리되고 조합되어 웹 문서를 대량 생산합니다.이 문서의 목적을 위해, 웹 문서는 HTTP, HTTPS 또는 다른 인터넷 프로토콜을 통해 웹을 통해 전송하기 위한 다양한 출력 형식을 포함합니다.

템플릿 엔진

템플릿 엔진의 기본 구성 요소 및 처리 흐름을 모두 나타낸 도면입니다.
템플릿 프로세서(template processor)는 템플릿을 데이터 모델과 결합하여 결과 문서를 생성하도록 설계된 소프트웨어입니다.[2][3][4]템플릿이 작성되는 언어를 템플릿 언어 또는 템플릿 언어라고 합니다.이 문서의 목적상 결과 문서는 문서, 웹 페이지 또는 소스 코드(소스 코드 생성 시)를 포함한 형식화된 출력물의 전체 또는 조각입니다.템플릿 엔진은 일반적으로 웹 템플릿 시스템 또는 응용 프로그램 프레임워크의 일부로 포함되며, 전처리기 또는 필터로도 사용될 수 있습니다.

모델이 일반적으로 관계형 데이터베이스에 보관되어 있는 경우, MVC 아키텍처의 나머지 구성 요소는 제어 및 뷰입니다.가장 간단한 시스템에서는 이 둘이 분리되지 않습니다.그러나 관심사 분리 원칙을 적용하면 관계를 완전히 분리할 수 있습니다.

예를 들어, 보기 템플릿은 다음과 같습니다.

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml "> <head> <title>사이트</title></head><body><h1 data-xp="title"><!-- 자리지킴이 --></h1></body></html>

그런 다음 제어 템플릿은 뷰를 로드한 다음 XPath 주소[original research?] 지정을 사용하여 데이터베이스에서 구성 요소를 삽입합니다.

<? $doc = 신규 DOM 문서; $doc->화이트스페이스를 보존합니다. = 거짓의; $doc->로드('view. html'); $타이틀 노드 = $doc->TextNode("이렇게"); $xpath = 신규 DOMX 경로($doc); $xpath->registerNamespace("h", http://www.w3.org/1999/xhtml);  달러 = "//h:*[@data-xp='title']/댓글 ()"; 달러 = $xpath->문의하다(달러); 각개별로 (달러 ~하듯이 $엔트리) {     $엔트리->부모 노드->차일드 교체($타이틀 노드, $엔트리); } 메아리를 치다 $doc->saveXML(); ?> 

템플릿 시스템의 종류

웹 브라우저와 웹 서버는 클라이언트-서버 아키텍처입니다.또한 사이트는 성능 향상을 위해 웹 캐시를 사용하는 경우가 많습니다.실제 내용으로 자리 표시자를 교체하고 페이지를 조립할 때를 기준으로 다섯 가지 템플릿 시스템 유형이 분류됩니다.

  • 서버측 - 웹 서버에서 런타임 대체가 발생합니다.
  • 클라이언트 측 - 웹 브라우저에서 런타임 대체가 발생합니다.
  • 엣지 사이드 - 웹 서버와 브라우저 사이의 프록시에서 런타임 대체가 발생합니다.
  • 외부 서버 - 정적 웹 페이지가 오프라인으로 생성되어 웹 서버에 업로드되며, 런타임 대체 없음
  • 분산 - 여러 서버에서 런타임 대체 발생

템플릿 언어는 다음과 같습니다.

  • 내장형 또는 이벤트 중심형입니다.
  • 간단하고, 반복 가능하며, 프로그래밍 가능하거나, 복잡합니다.
  • 컨소시엄에 의해 정의되거나, 비공개로 정의되거나, 오픈 구현에 의해 사실상 정의됩니다.소유권은 규격의 안정성과 신뢰성에 영향을 미칩니다.그러나 대부분의 관할권에서 언어 사양은 저작권을 가질 수 없기 때문에 제어가 절대적인 경우는 거의 없습니다.

템플릿 엔진의 소스 코드는 고유 소스 또는 오픈 소스일 수 있습니다.

많은 템플릿 시스템은 더 큰 프로그래밍 플랫폼 또는 프레임워크의 구성 요소입니다.이들은 "플랫폼의 템플릿 시스템"이라고 불립니다.일부 템플릿 시스템에는 다른 템플릿 언어나 엔진을 대체할 수 있는 옵션이 있습니다.[citation needed]

언어 지원

, 루비, C, 자바와 같은 프로그래밍 언어는 템플릿 처리를 네이티브로 지원하거나 추가 라이브러리와 모듈을 통해 지원합니다.JSP(JavaServer Page), PHPActive Server Page(VBScript, JScript 또는 기타 언어가 포함된 ASP)는 웹 템플릿 엔진의 예입니다.이러한 기술은 일반적으로 서버측 템플릿 시스템에서 사용되지만 "엣지측" 프록시에서 사용하거나 정적 페이지 생성을 위해 적용될 수 있습니다.

정적 사이트 생성기

정적 사이트 생성기는 마크다운아시독과 같은 플랫 텍스트 입력 파일을 사용하여 정적페이지를 생성하는 엔진입니다.그 예로는 지킬(리퀴드, 루비), 휴고(바둑 템플릿), 펠리컨(진자2, 파이썬) 등이 있습니다.

정적 HTML 편집기

외부 서버 템플릿 시스템 아키텍처.

HTML 편집자는 정적 웹 페이지만 생성하기 위해 종종 웹 템플릿 시스템을 사용합니다.이러한 웹 디자인은 "쿠키 커터" 웹 사이트를 대량 생산하여 신속하게 배포하는 데 사용되는 기성 웹 디자인으로 볼 수 있습니다.CSS 스타일 대신 테마도 포함하는 것이 일반적입니다.일반적으로 템플릿 언어는 편집기의 소프트웨어로만 사용됩니다.[5]

FrontPageDreamweiver는 한때 템플릿 하위 시스템을 가진 가장 인기 있는 편집기였습니다.플래시 웹 템플릿은 Macromedia Flash를 사용하여 시각적으로 상호 작용하는 사이트를 만듭니다.

많은 서버측 템플릿 시스템에는 서버에 출력 페이지를 게시할 수 있는 옵션이 있으며, 여기서 게시된 페이지는 정적입니다.이는 Vignette와 같은 콘텐츠 관리 시스템에서 일반적으로 사용되지만 서버 외부 생성으로 간주되지는 않습니다.대부분의 경우, 이 "게시 옵션"은 템플릿 시스템을 방해하지 않으며, Wget과 같이 외부 소프트웨어에 의해 이루어질 수 있습니다.

서버측 시스템

서버측 템플릿 시스템

사람들은 이 작업에 적응된 기존 소프트웨어가 있는 템플릿에서 생성된 서버측 동적 페이지를 사용하기 시작했습니다.이 초기의 소프트웨어는 CGI에서 실행되는 웹 용도에 적합한 전처리기와 매크로 언어였습니다.다음으로, SSI를 시작으로 확장 모듈에서 직접 실행되는 간단하지만 관련성이 있는 기술이었습니다.

많은 템플릿 시스템은 일반적으로 서버측 템플릿 시스템으로 사용됩니다.

시스템라벨/명 플랫폼/프레임워크 메모들
칼날 PHP 공공. 라라벨의 일부
치타 템플릿 파이썬 대중적이고 복잡한 언어가 내장되어 있습니다.
장고 파이썬 장고 템플릿 언어를 사용합니다.
프리마커 자바 일반의.
페이스릿 자카르타 EE 공용. Jakarta Server Faces
겐시 파이썬 일반의
루비 또는 기타 일반의.
햄릿 자바 일반의.
진자2 파이썬 대중적이고 복잡한 언어가 내장되어 있습니다.
키드 파이썬
라소 라소소프트, LLC 사유지.통역프로그래밍 언어서버
콧수염 액션스크립트, C++, Clojure, CoffeeScript, ColdFusion, D, Erlang, Fantom, Go, Java, 서버측 자바스크립트, Lua,NET, Objective-C, ooc,[6] Perl, PHP, Python, Ruby, Scala, Tcl 일반의.
기본 서버측 포함(SSI) 기본 지침은 "표준"을 고칩니다. 포함된 간단한 언어(제외된 경우)exec지시의
스마티 PHP 대중적이고 복잡한 언어가 내장되어 있습니다.
템플릿 툴킷 대중적이고 복잡한 언어가 내장되어 있습니다.
템플릿 속성 언어(TAL) Zope, Python, Java, Perl, PHP, XSLT 공용; ZPT(Zope Page Templates); TAL 표현식 구문(TALS), 매크로 확장 TAL(METAL) 참조
타일 자바 Public. 다양한 프레임워크(서블릿, 포틀렛, 스트럿, 스프링)의 여러 템플릿 언어(JSP, Velocity, Freemarker, Beauthet)를 지원합니다.
타임리프 자바 일반의.
탑사이트 파이썬 공개 "2008-02-20 현재프로젝트는 더 이상 활발하게 개발되지 않고 있습니다."[7]
잔가지 PHP
PHP lib PHP lib 공용어입니다. 내장된 읽을 수 있는 언어입니다.
웹 매크로 자바 공용어입니다. 내장된 읽을 수 있는 언어입니다.
웹 개체 자바 WebObjects Builder를 엔진으로 사용합니다.
속도 자바 공용. VTL - Velocity Template Language를 사용합니다.
비네트 사유지. 상용 솔루션.내장된 복잡한 언어.
XSLT(표준어) XSLT 파서가 있는 Any 표준.이벤트 기반 프로그래밍 가능 언어.
XQuery(표준 언어) XQuery 파서가 있는 Any 표준.프로그램 가능한 언어가 내장되어 있습니다.

기술적으로, HTML(또는 XML 등) 내에 프로그래밍 언어를 내장하는 방법론은 많은 "서버측 포함 스크립트 언어"에 사용되는 템플릿이기도 합니다.모두 임베디드 복합 언어입니다.

시스템라벨/명 메모들
활성 서버 페이지(ASP) 독점(Microsoft 플랫폼).참고 항목: ASP용 VB스크립트, 자바스크립트, 펄스크립트 등 확장.
에루비 공용(Ruby).
콜드퓨전 마크업 언어 공용(루시, 라일로, 오픈BD).독점(Adobe ColdFusion).
자카르타 서버 페이지(JSP) 퍼블릭, 자카르타 EE.
액티브 펄 일반의.
PHP 일반의.
오픈 ACS 공개(Tcl).

서버측 템플릿 엔진으로 사용되는 전처리기도 있습니다.예:

전처리기 메모들
C 전처리기 공용어입니다. 내장된 읽을 수 있는 언어입니다.
M4 대중적이고 복잡한 언어가 내장되어 있습니다.

가장자리측 시스템

에지-사이드 템플릿 및 포함 시스템."Edge-side"는 클라이언트(브라우저)와 발신 서버 사이의 공간에 있는 웹 서버를 말합니다.흔히 이러한 서버를 "역프록시" 서버라고 부릅니다.이러한 서버는 일반적으로 이미지 및 페이지 조각과 같은 컨텐츠를 캐싱하여 효율적인 방식으로 브라우저에 전달함으로써 원본 서버의 부하와 트래픽을 줄이는 역할을 수행합니다.

ESI(Basic Edge Side Inclues)는 SSI와 유사한 언어입니다.ESI는 컨텐츠 전달 네트워크를 위해 구현되었습니다.ESI 템플릿 언어는 자바스크립트와 Ajax를 사용하는 웹 브라우저나 "플러그인" 브라우저를 통해 구현될 수도 있습니다.

클라이언트측 시스템

클라이언트 측 및 분산형(분산형) 템플릿 시스템.

많은 웹 브라우저는 데이터를 XHTML 문서로 변환하는 XSLT 스타일시트를 XML 데이터에 적용하여 브라우저 자체에 템플릿 기능을 제공할 수 있습니다.
다른 시스템들은 자바스크립트나 다른 클라이언트측 스크립팅 언어를 사용하여 브라우저에 템플릿 기능을 구현합니다.

분산형 시스템

가장 간단한 형태는 트랜스클루전(HTML 프레임)입니다.다른 경우에는 동적페이지가 필요합니다.

예:

참고 항목

개념: 표준:
  • IMT2000 3GPP - UIML 사용자 인터페이스 마크업 언어
  • XSLT(확장 가능한 스타일시트 언어 변환)
소프트웨어:

참고문헌

  1. ^ "Template engine". phpwact.org wiki. Archived from the original on December 4, 2012. Retrieved 7 January 2013.
  2. ^ Niemeyer, Patrick (2002). Learning Java. Sebastopol: O'Reilly. ISBN 0-596-00285-8.
  3. ^ Manolescu, Dragos (2006). Pattern Languages of Program Design 5. Reading: Addison-Wesley Professional. ISBN 0-321-32194-4.
  4. ^ Fowler, Martin (2003). Patterns of Enterprise Application Architecture. Boston: Addison-Wesley. ISBN 0-321-12742-0.
  5. ^ MacDonald, Matthew (2015). Creating a Website: The Missing Manual. Chapter 8 > Putting the Same Content on Multiple Pages > Web Templates > Note box: O'Reilly Media, Inc. ISBN 9781491936177. Retrieved 19 January 2016.{{cite book}}: CS1 메인 : 위치 (링크)
  6. ^ "{{mustache}}". Retrieved 15 October 2013.
  7. ^ jodyburns. "Topsite Templating System". Retrieved 15 October 2013.

9. 무료 전자상거래 웹사이트 테마 MG Technologies 블로그 및 웹사이트 테마의 정보 포털.

외부 링크