서버 템플릿 엔진과 머스테치 소개

템플릿엔진이란 지정된 템플릿 양식과 데이터가 합쳐져 HTML문서를 출력해내는 소프트웨어를 이야기함

서버 템플릿 엔진 vs 클라이언트 템플릿 엔진

서버 템플릿 엔진을 이용한 화면 생성은 서버에서 Java코드로 문자열을 만든뒤 이 문자열을 HTML로 변환하여 브라우저로 전달

클라이언트 템플릿 엔진은 브라우저에서 코드가 실행되게 됨. 자바스크립트 코드.

Vue.js React.js를 이용한 SPA(Single page Application)은 브라우저에서 화면을 생성함

즉, 서버에서 이미 코드가 벗어난 경우임.

이때 서버에서는 Json, xml형식의 데이터만 전달하고 클라이언트에서 이를 받아 조립함

최근엔 리액트나 뷰 같은 자바스크립트 프레임워크에서도 서버사이드 렌더링을 지원하는 모습을 보임.

머스테치란?

JSP와 같이 HTML을 만들어 주는 템플릿엔진임. 루비, 자바스크립트, 파이썬, 자바, 펄, Go 등 현존하는 대부분 언어를 지원함. 그러다보니 자바에서 사용될때는 서버템플릿엔진으로, 자바스크립트에서 사용될때는 클라이언트 템플릿엔진으로 모두 사용될수있음

자바 진영에서는 JSP, Velocity, Freemarker, Thymeleaf등 다양한 서버 템플릿 엔진이 존재함. 근데 왜 머스테치냐?

문법이 심플함. 로직코드를 사용할 수 없어 View의 역할과 서버의 역할이 명확하게 분리됨

템플릿엔진은 화면 역할에만 충실해야한다는 생각! 너무 많은 기능을 제공하면 API와 템플릿엔진, 자바스크립트가 서로 로직을 나눠갖게 되어 유지보수가 어려워짐

기본 페이지 만들기

Handlebars/Mustache 플러그인 설치

그리고 라이브러리 다운받기. build.gradle에 의존성 추가

compile('org.springframework.boot:spring-boot-starter-mustache')