Thymeleaf란?

JSP를 사용하여 웹 개발을 한다면, JSP 소스코드와 html이 혼재되어 있어 파일을 웹 브라우저에서 열게 되면 정상적인 확인이 어렵다. 서버를 통해 열어야 정상적으로 확인할 수 있는데, 순수 html을 유지하면서 뷰 템플릿도 사용할 수 있는 Thymeleaf를 통해 이 문제를 해결할 수 있다. 물론 웹 브라우저에서 바로 열게 되면 html 마크업 언어가 어떻게 되는지 확인할 수 있지만 동적인 결과 렌더링은 되지 않는다.

타임리프는 Spring Boot에서 공식적으로 지원하는 뷰 템플릿 엔진이다. JSP나 Freemaker와 같이 서버에서 db 혹은 api에서 가져온 데이터를 동적으로 생성하여 클라이언트에게 응답할 브라우저 화면을 만들어주는 역할을 한다. 타임리프는 JSP와 달리 html 확장자를 가지고 있으며, 백엔드 서버에서 html을 동적으로 렌더링한다. → 서버 사이드 렌더링

다음과 같은 특징으로 Spring Boot와 타임리프를 함께 사용하는 것을 권장하고 있다. Dependency를 추가하는 간단한 작업으로 타임리프를 사용할 수 있다.

기본 설정

  1. 타임리프를 사용하려면 maven의 경우 pom.xml에, gradle의 경우 build.gradle에 다음 코드를 추가한다.

    //maven의 경우
    <dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    
    //gradle의 경우
    dependencies {
    		implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    }
    
  2. 그리고 타임리프를 적용할 문서 최상단에 네임스페이스를 추가한다.

    <html xmlns:th="<http://www.thymeleaf.org>">
    

Thymeleaf 기본 문법

이외에도 다양한 타임리프 문법들을 공식 사이트에서 확인할 수 있다.