• [개념] MVC환경에서 템플릿

    2021. 8. 11.

    by. 휘현아빠

    템플릿?

    주로 MVC 환경에서 프로그램과 디자인을 분리하여 동적데이터를 처리하기 위한 간결한 인터페이스를 제공한다. 

     

    * MVC [ Model-View-Controller ]

    소프트웨어 설계에서 세 가지 구성 요소인 모델(Model), 뷰(View), 컨트롤러(Controller)를 이용한 설계 방식.

    모델은 소프트웨어 내에서 데이터를 의미하고, 뷰는 사용자에게 보이는 화면 내용을 의미한다. 이러한 모델과 뷰의 상호 작용을 관리하는 것이 컨트롤러이다.

    예를 들어, 사용자의 입력이 컨트롤러로 들어오면 컨트롤러는 모델에서 데이터를 불러오고, 해당 데이터를 뷰를 통해 화면으로 출력한다. 모델, 뷰, 컨트롤러가 기능별로 독립적으로 분리되어 있어서 여러 명의 개발자가 동시에 각각의 기능을 개발할 수 있고, 일부 기능이 추가될 경우도 기존의 구성 요소를 재사용할 수 있어 코드 재사용성이 향상된다.

    노르웨이 컴퓨터 과학자인 트리베 린스카우그(Trygve Reenskaug)가 1970년대에 최초로 MVC 개념을 제안하였다. 당시에는 PC용 소프트웨어를 개발하기 위한 모델로 제시되었지만, 현재는 웹 애플리케이션을 개발하는 데에도 상당히 많이 사용된다.

    MVC 모델을 웹 애플리케이션에 쉽게 적용할 수 있는 라이브러리로는 앵귤러자바스크립트(AngularJS), 엠버자바스크립트(EmberJS), 자바스크립트엠브이시(JavaScriptMVC), 백본자바스크립트(BackboneJS) 등이 있다.

    MVC의 변형 형태로 모델 · 뷰 · 프리젠터(MVP: Model-View-Presenter), 모델 · 뷰 · 뷰모델(MVVM: Model-View-ViewModel) 등이 있다. MVC 유형에서 뷰와 모델은 정확히 분리되지만, 컨트롤러가 뷰의 구성에 상당 부분 관여하는 경우가 있어 각각의 독립성이 다소 떨어지는 문제가 발생할 수 있다. 이를 해결하기 위해 컨트롤러의 뷰 구성 기능은 모두 뷰 자체에 맡기고 프리젠터(presenter)가 모델과 뷰 사이의 인터페이스 역할만을 하도록 하는 것이 MVP이고, 데이터 바인딩 기반으로 뷰가 뷰모델과 인터페이스하도록 제한을 두는 것이 MVVM이다.

     

    템플릿 태그

    템플릿 태그는 템플릿 파일내에서 템플릿엔진이 해석할 위치를 표시한다. 
    해석할 내용이 변수이든 제어명령이든 관계없이 { } , <!--{ } , { }--> , <!--{ }--> 모두가 유효한 템플릿 태그이다. 

     

    템플릿 변수출력

    변수를 출력할때는 " = " 를 이용하며  " =템플릿변수명 " 과 같이 사용한다.

    {=템플릿변수명}  혹은 {템플릿변수명} 과 같이 사용한다. 

     

    루프구문 표현 

    @ 루프의 시작 > { @ loop_id }

    :   루프가 돌지 않았을 때 > { : }

    /  루프의 끝 > { / }

     

    중첩     최상위 루프변수이면  { .변수명 }, 중첩루프의  변수이면 { ..변수명 }

    index_   0부터 시작, 루프가 반복될때 1씩 증가

    size_     루프의 전체 반복횟수

    key_      루프로 할당된 배열의 키

    value_   루프로 할당된 배열의 값

     

    분기구문 표현

    ?      if  { ? 구문 }

    :       elseif, else (옵션)   { : 구문 }, { : }

    /       endif    { / }

     

    주석

    //     꼬리말형, 태그내 이하문자  { any_template_code // any_string }

    *      블럭형, 변환파일에서 삭제  {* any_string *}

    {* *} , <!--{* *} , {* *}--> , <!--{* *}--> 모두 유효한 템플릿 주석

    댓글