Spring/Spring Thymeleaf

[SpringBoot] 스프링부트 타임리프(Thymeleaf)

s_hoonee 2023. 3. 2. 10:18
반응형

타임리프(Thymeleaf)


Thymeleaf는 Spring Boot에서 가장 많이 사용되는 템플릿 엔진 중 하나이다. Thymeleaf는 자바 객체를 HTML로 변환하는 데 사용할 수 있으며, 단순한 문법을 사용하여 복잡한 기능을 구현할 수 있다. 또한 타임리프는 JSP와 마찬가지로 서버 측에서 렌더링되므로 SEO(Search Engine Optimization)에 유리하다. 그렇다면 타임리프의 특징에 대해 알아보자.

  • 서버상에서 동작하지 않아도 HTML 파일의 내용을 바로 확인이 가능하다.
  • 순수 HTML 구조를 유지한다. -> 내추럴 템플릿이라고도 불림
서버 구동 O  → 뷰 템플릿을 거쳐 동적으로 변경된 HTML 파일을 확인 할 수 있음
    서버 구동 X  → 순수 HTML 파일 확인 가능 ( 개발 툴의 있는 소스코드를 볼 수 있음 )

* JSP 경우는 서버 없이 파일을 열면 JSP코드와 HTML이 섞여 정상적인 확인이 어려움,
즉 오직 서버를 통해 JSP파일을 열어야 JSP 코드를 확인 가능하다.
반면에 타임리프 사용시 화면 구성을 서버 가동없이 쉽게 파악 가능하여 수정시 서버 재가동이 필요 없기 때문에 개발에 용이하다.

 

 

타임리프(Thymeleaf) 문법


Thymeleaf를 사용하기 위해 html 파일에 다음 태그를 추가해준다.

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

 

Thymeleaf는 기본 HTML 문법과 거의 유사하다. 간단한 th의 예제를 들겠다. HTML 속성 내부에 삽입되는 Thymeleaf 표현식은 다음과 같은 형식을 갖다.

<p th:text="${someValue}">Default Text</p>

 

타임리프(Thymeleaf) 사용

1. 의존성 추가 (Maven)

<dependency> 
	<groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

위의 예제에서는 th:text 속성을 사용하여 someValue라는 변수의 값을 출력했다. 이렇게 Thymeleaf는 자체적으로 제공하는 속성들과 표현식을 사용하여 동적으로 HTML을 생성할 수 있다.

 

1. properties추가

# Thymeleaf
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html