Web

Thymeleaf란?

Thymelaf

Thymeleaf는 템플릿 엔진 (Template Engine) 중에 하나로서 서버측 자바 템플릿 엔진(Java Template Engine)이다.

스프링부트(Spring boot)를 보고 있는데 스프링에서 강하게 밀고있는 View 템플릿 엔진이라고 한다.

사실 템플릿 엔진이라는 말도 잘 모르는데 검색 좀 하고 알게됬다.

내가 지금까지 사용한 JSP도 템플릿 엔진 이였던 것 같다.

템플릿 엔진에는 JSP말고도 Java 라이브러리 템플릿 엔진인 Freemarker란 것도 있고 같은 Java 기반 템플릿 엔진인

Velocity 라는 것도 있다. 그리고 Thymeleaf도 템플릿 엔진이다.

Thymeleaf의 장점은 일단 확장자가 HTML이란 점으로서 WAS의 실행 없이도 화면을 확인할 수가 있다.

간단하게 JSP는 WAS를 거쳐서 다시 HTML파일로 재 변환한 후에 웹 브라우저에서 보여지는 것인데 Thymeleaf는 그럴 필요가 없다.

즉 서버상에서 동작하지 않아도 된다는 점이다. 그리고 순수 HTML문서에 HTML5문법으로 서버사이드 로직을 수행하고 적용시킬 수 있다.

또한 태그 라이브러리를 사용하는 JSP에서는 다음과 같은 브라우저로 직접 표시할 수 없는 코드를 포함할 수 있다.

Thymeleaf는 다른 템플릿 엔진처럼 전용 문법을 사용하지 않고 HTML 엘리먼트에 속성을 적어줌으로써 동작하기 때문에

Thymeleaf는 이를 해석해서 View 파일을 만들어주고 브라우저는 모르는 속성은 그냥 무시하므로 브라우저에서도 동작하게 된다.

태그 라이브러리를 사용하는 JSP 코드

1
<form:inputText name="userName" value="${user.name}" />

Thymeleaf 코드

1
<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />

JSP코드는 서버에서 처리를 해주지 않으면 브라우저에 표시조차 되지 않지만 아래 Thymeleaf 코드는 브라우저에 의해 올바르게 표시될 뿐만 아니라 ${user.name}을 읽어오지 못하였더라도 위 경우에서는 James Carrot 이라는 값으로 대체 될 수 있다.

Share