머스테치

박찬미·2021년 10월 12일
0

Spring Boot

목록 보기
8/17

템플릿 엔진 : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어
ex) JSP, Freemarker(서버 템플릿 엔진) -> React, Vue(클라이언트 템플릿 엔진)

만약 자바스크립트에서 JSP를 쓴다면??

  • 서버 템플릿 엔진
    서버에서 Java 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달
    즉, HTML을 만드는 과정에서 JSP 자바코드 실행

  • 클라이언트 템플릿 엔진
    자바스크립트는 브라우저 위에서 작동
    즉, 브라우저에서 작동될 때는 서버 템플릿 엔진의 손을 벗어나 제어할 수 없다.

서버에서는 Json 혹은 Xml 형식의 데이터만 전달하고 클라이언트에서 조립한다.

예외로 서버 사이드 렌더링(자바스크립트 프레임워크 화면 생성 방식을 서버에서 실행)도 존재

머스테치란?

머스테치
수많은 언어를 지원하는 가장 심플한 엔진(루비, 자바스크립트, 파이썬, PHP, 자바, 펄, Go 등)
=> 자바에서 사용될 때는 서버 템플릿 엔진으로, 자바스크립트에서 사용될 때는 클라이언트 템플릿 엔진으로 모두 사용 가능

  • 머스테치의 장점
    문법이 다른 템플릿 엔진보다 쉽다.
    로직 코드를 사용할 수 없어 View 역할과 서버 역할이 명확하다.
    Mustache.js와 Mustache.java 2가지가 다 있어, 하나의 문법으로 클라이언트/서버 템플릿 모두 사용 가능하다. p.129



머스테치 기본 페이지 만들기

  • 플러그인을 설치하고 의존성 추가한다.

  • 머스테치 기본 경로에 파일 생성

  • URL 매핑할 Controller 생성

머스테치 스타터로 인해 컨트롤러에서 문자열을 반환할 때 앞의 경로와 뒤의 파일 확장자는 자동으로 지정된다.
앞 : src/main/resources/templates
뒤 : .mustache

위 코드를 보면 /(가장 상위) url로 접근할 때 index를 반환하므로 전체 경로는
src/main/resources/templates/index.mustache로 전환되어 View Resolver가 처리하게 된다.

  • IndexControllerTest
    테스트 해본다.

0개의 댓글