🍏 개발일기

Thymeleaf

보배 진 2026. 4. 1. 10:29

Thymeleaf는 자바 웹 개발에서 많은 쓰는 서버 사이드 템플릿 엔진

쉽게 말하면 "HTML에 데이터를 넣어서 화면을 만들어주는 도구"라고 보면 된다

 

Thymeleaf란?

Thymeleaf는 HTML 파일을 그대로 유지하면서 동적으로 데이터를 바인딩할 수 있는 템플릿 엔진이다

특징은 "HTML을 깨지 않고 그대로 사용 가능"하다는 점이다

 

 

왜 사용하는가

기존에는 JSP 같은 걸 많이 썼는데 요즘은 Spring Boot + Thymeleaf 조합이 많이 사용된다

이유는 

🔹HTML 파일을 그대로 열어도 화면이 깨지지 않음

🔹유지보수 쉬움

🔹프론트/백 협업 편함

 

 

기본 구조 (Spring 기준)

흐름은 이렇게 보면 된다

Controller ➡️ Model에 데이터 담기 ➡️ Thymeleaf ➡️ HTML 렌더링

 

 

 

 

예시 : 

@GetMapping("/hello")
public String hello(Model model) {
    model.addAttribute("name", "유진");
    return "hello";
}

🔼 Controller

 

<p th:text="${name}"></p>

🔼 HTML (Thymeleaf)

 

결과 : 유진

 

 

 

 

핵심 문법

<span th:text="${name}"></span>

🔼 값 출력

 

<li th:each="item : ${list}" th:text="${item}"></li>

🔼 반복문

 

<p th:if="${age > 20}">성인</p>

🔼 조건문

 

<a th:href="@{/home}">홈</a>

🔼 링크

 

<input type="text" th:value="${name}">

🔼 입력값 바인딩

 

 

 

 

장점

🔹HTML 그대로 사용 가능 (디자이너 친화적)

🔹Spring과 궁합 좋음

🔹문법이 직관적

 

단점

🔹JSP보다 초기 학습 필요

🔹복잡한 로직은 불편

🔹프론트 분리(React 등)에서는 잘 안씀

 

 

 

 

 

항목 JSP Thymeleaf
문법 Java 코드 섞임 HTML 기반
가독성 낮음 높음
유지보수 어려움 쉬움
최신 트렌드