프리 정보 컨텐츠

SpringBoot 템플릿 엔진 머스테치 화면 구성 본문

JAVA/Spring

SpringBoot 템플릿 엔진 머스테치 화면 구성

쏜스 2021. 6. 29. 01:27

JSP로만 개발을 해오다가 스프링 부트와 AWS로 혼자 구현하는 웹 서비스라는 책을 보며

JSP외에 Freemarker, Thymeleaf, Mustache 등을 알게되어 머스테치의 개념과 사용법에 대해서 알아보겠습니다.

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

머스테치를 알아보기전에 먼저 템플릿 엔진에 대한 개념에 대해서 알아보고자합니다.

템플릿 엔진의 개념은 지정된 템플릿 양식과 데이터가 합쳐져 HTML문서를 출력하는 소프트웨어를 말합니다.

JSP, Freemarker, React, Vue.js 결과적으로 모두 템플릿이나 서버 템플릿, 클라이언트 템플릿으로 구분합니다.

클라이언트 템플릿 엔진

Server(Java 코드 실행) -> JSON || XML 형식 변환 -> JSON + HTML(JavaScript(VUE, REACT))를 브라우저에서 실행

서버 템플릿 엔진

Server(Java 코드 실행) -> Java 코드 실행값 + HTML(JavaScript문자)를 브라우저에서 실행

 

자바 스크립트는 브라우저 위에서 작동합니다.

즉, 브라우저에서 작동될 때는 서버 템플릿 엔진의 손을 벗어나 제어가 불가능합니다.

 

클라이언트 템플릿 엔진인 요즘 자주 사용하는 리엑트, 뷰를 이용한 SPA는 브라우저에서 화면을 생성하므로,

서버에서 JSON or XML 형식으로만 데이터를 전달하고 클라이언트에서 조립하는 방식입니다.

클라이언트 사이드 템플릿 엔진

 

최근엔 리엑트나 뷰와 같은 자바스크립트 프레임워크에서도 서버 사이드 렌더링을 지원합니다.

이 방식은 프레임워크의 화면 생성 방식을 서버에서 실행할 수 있도록 해줍니다.

(스프링 부트를 사용하여 자바스크립트를 서버사이드에서 렌더링하도록 구현하는 것은 비용이 많이 듬)

서버 사이드 템플릿 엔진

머스테치란???

머스테치는 수많은 언어를 지원하는 심플한 템플릿 엔진입니다. 대부분의 많은 언어를 지원하며 자바에서 사용될 때는 서버 템플릿 엔진으로, 자바스크립트에서 사용될 때는 클라이언트 템플릿 엔진으로 사용가능합니다.

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

머스테치 스타터 의존성을 build.grade에 등록하고 사용합니다.

Comments