[Thymeleaf] 스프링에 타임리프 연동하기

매우 쉽습니다. ViewResolver만 바꿔주면 됩니다. 기존에 JSP뷰를 사용하고 있었다면 InternelResourceVewResolver를 사용해서 JSTL뷰를 설정한 다음 prefix와 suffix 정도를 설정해서 사용하고 있으실텐데요.

ThymeleafViewResolver로 바꿔주시면 됩니다. 그리고 ThymeleafViewResolver가 필요로하는 빈도 몇개 등록해야되구요. 아.. 그전에 메이븐 의존성부터 추가하셔야겠군요. 저는 스프링 자바 설정을 사용했는데 코드 보시면 XML 설정으로도 쉽게 설정하실 수 있으실 겁니다.

좋아~ 이제야 드뎌 서버 띄우지 않고 html만 작업하면서 뷰를 만든다음 서버 띄우고나서도 계속 사용할 수도 있겠군요.

Thymeleaf 죽이네.

“백리향 잎사귀”

http://www.thymeleaf.org/doc/Natural%20Templating%20in%20Spring%20MVC%20with%20Thymeleaf%2020120217.pdf

뭔지 알고싶다면 위에 있는 발표자료를 쭉 훑어보시면 됩니다.

일단.. 저는 뷰 만들 때 프리마커나 벨로시티같은 템플릿 엔진을 쓰지 않습니다. 그냥 JSP + JSTL + Spring Tags를 사용합니다. 사이트매쉬나 타일즈같은 레이아웃 엔진도 쓰지 않습니다. 그냥 JSP 태그파일을 씁니다. 랜더링 속도가 전체 앱 성능에 얼마나 영향을 준다고 그 불편한 문법과 설정을 적용하며 애플리케이션에 덕지 덕지 붙이지 싫습니다. 성능이 문제면 차라리 varnish 같은걸 추가해서 캐싱을 하죠 뭐. 잡다구리한걸 잔뜩 붙이고 싶지 않아요.

그런데 진짜 괜찮은 템플릿 엔진이 있군요… 타임리프라.. 캬.. JSP 개발도 마찬가지고 프리마커나 벨로시티를 쓸때도 마찬가지인데.. 뭐냐면..

보통 뷰 만들 때 HTML로 프로토타입을 만들기 나름이죠. 이때는 편하게 HTML로 만들어서 서버를 띄우지 않고 브라우저에서 바로바로 확인하면서 HTML/CSS/JS 코딩을 합니다. 어느정도 됐다 싶으면 그걸 JSP로 변경합니다. 그럼 이제부턴 지옥입니다. 매번 서버를 실행해야지만 뷰를 변경할 수 있죠. 이게 아주 짜증입니다. 그런데 타임리프는 안그래요. 일단 파일을 변경할 필요없이 HTML 그대로 두면 되고 그 상태 그대로 서버를 띄우고 보면 템플릿이 적용되고, 서버를 띄우지 않고 웹 브라우저에서 그냥 열어도 작업이 가능한 HTML 그대로 보여줍니다. JSP나 프리마커 뷰로 바꾼뒤부터는 그렇게 안되기 때문에 거기에 비해서 타임리프 뷰는 개발이 훨씬 편하겠죠.

어떻게 그런지는 안갈쳐 드리죠. 위에 있는 PDF를 보세요. 이 기능을 이름하여 내츄럴 템플릿이라고 하더군요. 이름 참 잘 지었네요.

추가로..

  • 스프링 바인딩 지원
  • 스프링 PE 지원
  • 스프링 EL 지원
등 스프링과 아주 합이 잘 맞는 템플릿 엔진인듯 합니다.

앞으론 이걸 한번 써봐야겠습니다.