Spring과 Template Engine, 현업에서는 어떻게 사용하나요?

2014-10-01 13:48

Spring 학습중에 Template Engine에 대한 의문이 들어서 질문드립니다.

개인적으로 경험한 첫번째 Template Engine은 올해 초 간단한 스프링 프로젝트를 진행하면서였고, 리드프로그래머인 친구가 HTML에서 상속개념을 적용할 수 있다는 점과, 편리한 서버데이터 사용법 등의 이유로 Jade를 사용하자! 라고해서 처음 접하게 되었습니다. 새로운 문법이나 생김새, Indent 등이 많이 어색했지만, 조금만 익숙해지니 태그를 닫지 않는 특성이나 수정의 용이함, extends를 통한 html 상속등이 마음에 들더군요.

최근들어 Spring을 본격적으로 공부하면서 Freemarker나 Velocity, Sitemesh 등 스프링에서 많이 사용하는 Template Engine에 대해 듣게 되었습니다.

제가 이해한바로는 위에 언급한 Template Engine의 종류는 Sitemesh와 같은 Layout Template Engine 과 Freemarker와 같은 Text Template Engine으로 나뉘고,두가지를 혼합해서 사용한다고 들었습니다.

사용법으로는 Sitemesh와 같은 경우에는 보통 XML 설정을(sitemes###xml) 통해 URL 별 decorate component를 맵핑시키며, Freemarker는 JSP의 JSTL과 비슷한 형태의 문법이 제공되는것으로 파악했습니다.

인터넷 블로그나 관련 Article을 찾아보면, 이 외에도 여러가지 Template Engine 에 대한 이야기를 볼 수 있었는데, 대부분 마지막에 "요즘 Jade4j라는걸 보는게 좋아보인다. 지켜보고 있다"와 같이 jade Template에 대해 호의적인 반응인것 같더라구요.

저같은 경우에는 Jade만 사용해봐서 그런지, Sitemesh의 예제코드를 작성해봐도 편하다는 생각이 좀처럼 들지 않습니다.

jade의 경우 layout, text template의 역할을 모두하고 있다고 생각되는데 굳이 각각의 template engine을 사용해야하는지, 사용해야 한다면 왜 그래야 하는지 궁금합니다.

선배님들의 생각은 어떠신지요?!

(참고링크 : http://www.javajigi.net/display/OSS/SiteMesh)) (참고링크 : http://freemarker.org/docs/dgui_template_overallstructure.html)) (참고링크 : http://wiki.sitemesh.org/)) (참고링크 : https://github.com/neuland/jade4j))

2개의 의견 from SLiPP

2014-10-15 11:45

저희는 jade4j를 사용해보려 하다가 handlebars.java(http://jknack.github.io/handlebars.java/)로로) 최종결정해서 사용하고 있습니다. sitemesh, freemarker는 너무 구식이고.. jade4j는 dom으로 레이아웃 구성하다보면 오히려 답답한 부분이 많았습니다. handlebars.java를 사용하면서 mustache의 문법 + 최소한의 헬퍼와 template inheritance를 적극 활용합니다.

의견 추가하기