상세 컨텐츠

본문 제목

Mustache Template

개인 공부/Frontend

by 카페코더 2020. 6. 24. 17:20

본문

반응형

HTML + Mustache Template

 

 

템플릿 엔진

일반적으로 웹 개발에 있어 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 말한다.

JSP, Freemarker, React, Vue 등을 떠올릴 수 있다.

모두 결과적으로 지정된 템플릿과 데이터를 이용하여 HTML을 생성하는 템플릿 엔진이다.

참고로, JSP, Freemarker는 서버 템플릿 엔진, React, Vue는 클라이언트 템플릿 엔진이다.

 

Mustache

수많은 언어를 지원하는 가장 심플한 템플릿 엔진이다.

루비, 자바스크립트, 파이썬, PHP, 자바, 펄, Go, ASP 등 현존하는 대부분 언어를 지원한다. 이런 이유로 필자는 SpringBoot 개발 시 머스태치 템플릿 엔진을 사용한다.

물론 자바 진영에서는 JSP, Velocity, Freemarkerm Thymeleaf 등 다양한 템플릿 엔진이 존재한다.
모두 장, 단점이 있지만, 머스테치 템플릿 엔진이 사용하기 가장 쉽고, 자바스크립트 역시 지원한다는 점이 주로 사용하게 된 계기가 되었다.

이동욱 개발자가 생각하는 JSP, Velocity, Freemarker, Thymeleaf의 단점

  • JSP, Velocity: 스프링 부트에서는 권장하지 않는 템플릿 엔진이다.
  • Freemarker: 템플릿 엔진으로는 너무 과하게 많은 기능을 지원한다. 높은 자유도로 인해 숙련도가 낮을수록 Freemarker내 비지니스 로직이 추가될 확률이 높다.
  • Thymeleaf: 스프링 진영에서 적극적으로 밀고 있지만, 문법이 어렵다. HTML 태그에 속성으로 탬플릿 기능을 사용하는 방식이 기존 개발자분들께 높은 허들로 느껴지는 경우가 많다. 실제로 사용해 본 분들은 자바스크립트 프레임워크를 배우는 기분이라고 후기를 이야기 했다. 물론 Vue.js를 사용해 본 경험이 있어 태그 속성 방식이 익숙한 분이라면 Thymeleaf를 선택해도 좋다.
  • 템플릿 엔진은 화면 역할에만 충실해야 한다고 생각한다.
  • 너무 많은 기능을 제공하면 API와 템플릿 엔진, 자바스크립트가 서로 로직을 나눠갖게 되어 유지보수하기가 굉장히 어렵다.

이동욱 개발자가 생각하는 Mustache의 장점

  • 문법이 다른 템플릿 엔진보다 심플하다.
  • 로직 코드를 사용할 수 없어 View의 역할과 서버의 역할을 명확하게 분리한다.
  • Mustache.js와 Mustache.java 2가지가 다 있어, 하나의 문법으로 클라이언트/서버 템플릿을 모두 사용 가능하다.

 

반응형

관련글 더보기

GitHub 댓글

댓글 영역