[Spring]

[Spring] 템플릿 엔진 Mustache의 장점

danhan 2023. 1. 17. 00:58

Template Engine

템플릿 엔진은 지정된 템플릿 양식과 데이터를 합쳐 HTML 문서를 출력하는 소프트웨어이다. 웹사이트 화면을 어떤 형태로 만들지 도와주는 양식이라고 할 수 있다.

템플릿 엔진을 사용하면 하나의 템플릿으로 여러 페이지를 렌더링할 수 있기 때문에 재사용성이 높고 유지보수가 용이하다. 템플릿 엔진은 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 나눌 수 있다.

Server Side Template Engine

서버 사이드 템플릿 엔진은 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 템플릿에 넣어 HTML을 그린 뒤 클라이언트에 전달해주는 역할을 한다. HTMl 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 동적으로 생성되는 부분만 템플릿 특정 장소에 끼워 넣는 방식으로 동작한다.

서버에서 HTML 결과를 다 만든 뒤에 브라우저에 전달하기 때문에 화면 이동이 많은 곳에서 주로 사용된다.

Mustache

Mustache는 Logic-less template Engine로 가장 심플한 템플릿 엔진이다.

Mustache의 장점은 문법이 쉽고 View와 서버의 역할이 명확하게 분리된다는 것이다.

이전 프로젝트에서 사용해 봤던 템플릿 엔진인 Thymeleaf는 HTML 태그에 속성으로 템플릿 기능을 사용하는 방식으로 문법이 어렵다. 그에 반해 Mustache는 문법이 쉽다.

Mustache는 logic-less이다. 즉 클라이언트단에는 로직을 제외한 데이터만 전달한다. 일반적으로 view에 비지니스 로직을 가져가게 되면 코드가 복잡해지고 서버와 클라이언트 코드가 뒤섞여 유지보수가 어려워진다. Mustache를 사용하면 로직 코드를 사용할 수 없어 view의 역할과 서버의 역할를 명확하게 분리할 수 있는 장점이 있다.

또 Ruby, JavaScript, Python, Java 등 대부분의 언어를 지원하는 장점이 있다. 자바에서는 서버 템플릿 엔진으로, 자바스크립트에서는 클라이언트 템플릿으로 사용할 수 있다. 즉, 서버/클라이언트 템플릿 엔진으로 둘 다 사용할 수 있다.

소소하게는 스프링 부트에서 공식 지원하는 템플릿 엔진이기 때문에 의존성 추가만 하면 추가 설정 없이 바로 사용할 수 있다.

 

참고