-
ThymeLeaf vs Mustache vs Groovy vs FreeMarkerSpring Framework 2022. 1. 12. 00:01
저번 시간에는 템플릿 엔진에 대해서 알아봤습니다.
https://junuuu.tistory.com/55?category=968779
스프링부트는 아래와 같은 템플릿 엔진의 자동 환경 설정을 지원한다고 공식문서에 나와있습니다.
4가지의 템플릿 엔진 중에 저희는 Thymeleaf를 선택하여 사용하였습니다.
그러면 4가지의 템플릿 엔진은 어떤 차이점이 있고 어떤 템플릿 엔진을 사용하는 게 좋을까요?
각 템플릿 엔진의 빌드 크기
빌드 크기는 애플리케이션 배포와 관련하여 중요합니다.
빌드 크기가 작을수록 CI 플랫폼에서 프로덕션 서버로 전송하는 것이 더 편안합니다.
빌드된 jar 파일의 크기의 결과를 비교해보겠습니다.
Mustache는 약 16MB의 크기를 가지고 있으며 다음으로는 Thymeleaf가 있습니다.
FreeMarker는 Thymeleaf와 비슷한 크기를 가지지만 Groovy는 21MB의 크기로 뒤쳐져있습니다.
애플리케이션 시작 시간
각 응용 프로그램의 시간 시간은 마이크로서비스의 중요한 측면 중 하나입니다.
각 응용 프로그램의 시작 시간의 결과를 비교해보겠습니다.
위 그래프는 스프링 부트 어플리케이션의 변경에 대한 시작 시간을 보여줍니다.
서로 다른 템플릿 엔진 간의 차이는 약 1초에 불과하지만 실제의 차이는 훨씬 더 클 것입니다.
Mustache는 6초를 벗어나지 않으며 우수한 성능을 보여주며 최악은 Groovy이며 FreeMarker와 Thymeleaf는 비슷한 시간을 보여줍니다.
성능 벤치마크 비교
벤치마크란?
컴퓨터의 부품 등의 성능을 프로그램을 이용하여 비교, 평가하여 점수를 내는 결과
이제 엔진 자체의 성능을 비교해 보겠습니다.(각 템플릿 엔진에서 일정 샘플을 렌더링 합니다)
다른 3개의 엔진은 비슷한 성능을 보이지만 Groovy의 경우는 눈에 띄게 안 좋은 성능을 보여줍니다.
확장성
Thymeleaf가 사용자 정의 측면에서 가장 좋습니다.
templateEngine.addDialect()를 통하여 자신의 Dialect를 제공할 수 있습니다.
FreeMarker 및 Groovy에는 사용할 수 있는 옵션이 많지 않습니다.
Mustache는 복잡한 해결 방법을 희생시키면서 어느 정도 확장선이 있습니다.
지원 및 문서
Thymeleaf는 뛰어난 인기과 훌륭한 문서를 가지고 있으며 다양한 튜토리얼이 제공됩니다.
학습곡선
1위는 FreeMarker로 구문이 읽기 쉬워 HTML을 이해하는 사람은 FreeMarker 템플릿을 이해할 수 있습니다.
2위는 자연어 사용과 다양한 IDE에서 구문 강조 표시에 대한 풍부한 지원으로 thymeleaf입니다.
Mustache는 FreeMarker와 유사하지만 if-else와 같은 자연어 대신 기호를 사용합니다.
Groovy는 완전히 다른 표기법을 사용하여 배우기 어렵습니다.
결론
Groovy 템플릿은 모든 면에서 다른 템플릿보다 거리가 있어 보입니다.(성능 및 학습 관점)
FreeMarker에는 HTML을 생성하는데 필요한 모든 기능이 있으며 배우기 쉽습니다. 따라서 사용하려는 경우 나쁜 생각은 아니지만 템플릿에 사용자 정의 기능을 추가하려면 Thymeleaf를 사용하는 것이 좋습니다.
출처
https://springhow.com/spring-boot-template-engines-comparison/
'Spring Framework' 카테고리의 다른 글
스프링 부트 - 회원 관리 예제 실습(회원 도메인과 리포지토리 생성) (0) 2022.01.26 Thymeleaf란? ( + Thymeleaf 사용법, 문법 맛보기) (0) 2022.01.13 서블렛(Servlet)이란? (0) 2022.01.09 템플릿엔진이란? (0) 2022.01.07 MVC 패턴이란? (스프링 MVC) (0) 2022.01.04