카테고리 없음
Thymeleaf
NellKiM
2025. 2. 4. 15:22
Thymeleaf는 Spring Boot와 함께 주로 사용되는 서버사이드 템플릿 엔진입니다. HTML 파일을 기반으로 데이터를 동적으로 렌더링하여 웹 페이지를 생성할 수 있게 해줍니다.
🛠️ Thymeleaf의 주요 특징
- HTML 친화적
- 순수 HTML 문서에 Thymeleaf 태그 속성(th:text, th:if 등)을 추가하여 동적 콘텐츠를 렌더링합니다.
- 브라우저에서도 정상적으로 렌더링되기 때문에 디자이너와 개발자 간 협업이 수월합니다.
- Spring 통합
- Spring MVC와 자연스럽게 통합되어 모델 데이터를 뷰에 전달하는 데 적합합니다.
- 서버사이드 렌더링
- 서버에서 데이터를 채워 클라이언트에 완성된 HTML을 전달합니다.
- 조건부 렌더링, 반복 지원
- 동적으로 HTML 요소를 추가하거나 반복 처리할 수 있습니다.
🌟 기본 사용 예제
1. Controller 예제
java
복사편집
@Controller public class HomeController { @GetMapping("/greet") public String greet(Model model) { model.addAttribute("name", "사용자님"); return "greet"; // greet.html 렌더링 } }
2. Thymeleaf 뷰 (greet.html)
html
복사편집
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Thymeleaf Example</title> </head> <body> <h1 th:text="'안녕하세요, ' + ${name} + '!'" ></h1> </body> </html>
🔧 주요 기능
기능설명예제
텍스트 출력 | 데이터 바인딩 후 출력 | th:text="${data}" |
조건부 처리 | 조건에 따라 렌더링 | th:if="${condition}" |
반복 처리 | 리스트 반복 출력 | th:each="item : ${list}" |
링크 처리 | 동적 URL 생성 | th:href="@{/home}" |
🎯 왜 사용하나요?
- JSP보다 현대적인 방식으로 HTML 친화적입니다.
- Spring Boot 프로젝트에 최적화되어 있고 설정이 간단합니다.
- 프론트엔드 디자이너와 협업하기 쉬운 템플릿 엔진입니다.