본문 바로가기
인프런 강의/실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

Thymeleaf란 무엇인가

by 해삼2 2024. 1. 10.
728x90
반응형

 

Thymeleaf

 

Thymeleaf이란 

 

Thymeleaf(타임리프)는 Java 웹 애플리케이션에서 서버 측 템플릿 엔진으로 사용되는 오픈 소스 

프로젝트입니다. 

HTML, XML, JavaScript, CSS 등의 마크업 언어를 처리할 수 있으며, 

특히 서버 측 및 클라이언트 측 렌더링을 모두 지원하는 것이 특징입니다.

Thymeleaf는 주로 스프링 프레임워크와 통합되어 사용되며, 

스프링 애플리케이션에서 동적인 웹 페이지를 만들 때 HTML 템플릿을 작성하는 데 도움이 됩니다. Thymeleaf는 자연스러운 문법을 사용하여 템플릿을 정의하고,

서버 측 데이터를 템플릿에 삽입하여 동적인 콘텐츠를 생성할 수 있습니다.

 

Thymeleaf 주요 특징

 

자연스러운 문법: 

일반적인 HTML 문법과 유사하며, 템플릿 코드를 자연스럽게 통합할 수 있습니다.

서버 측 및 클라이언트 측 렌더링: 

버에서 데이터를 템플릿에 주입하여 동적으로 페이지를 생성할 수 있으며, 

클라이언트 측에서도 사용할 수 있습니다.

다양한 스프링 통합 기능: 

스프링의 다양한 기능과 원활하게 통합되어 스프링 애플리케이션에서 쉽게 사용할 수 있습니다.

템플릿 캐싱: 

템플릿 캐싱을 통해 성능을 최적화할 수 있습니다.

다국어 지원: 

다국어 처리를 지원하여 다양한 언어로 콘텐츠를 표현할 수 있습니다.

Thymeleaf는 다른 웹 프레임워크에서도 사용될 수 있지만, 주로 스프링 생태계에서 인기를 얻고 있습니다.

 

Thymeleaf 문법

 

변수 표현식

<p>Hello, <span th:text="${username}">Guest</span>!</p>
${username}은 서버에서 전달된 username 변수의 값을 표시합니다.

 

반복문

<ul>
    <li th:each="item : ${items}" th:text="${item}">Item</li>
</ul>
${items}는 서버에서 전달된 리스트나 배열의 각 항목을 반복하여 출력합니다.

 

조건문

<p th:if="${isAdmin}">Welcome, Admin!</p>
<p th:unless="${isAdmin}">Welcome, User!</p>
th:if는 조건이 참일 때만 해당 요소를 렌더링하고, th:unless는 조건이 거짓일 때만 렌더링합니다.

 

속성 값 설정

<a th:href="@{/home}">Home</a>
th:href는 링크의 href 속성을 설정하는데 사용되며, 스프링의 경로 매핑과 함께 사용될 수 있습니다.

 

템플릿 레이아웃

<div th:replace="fragments/header :: header"></div>
<div th:include="fragments/footer :: footer"></div>
th:replace 및 th:include는 템플릿의 일부를 다른 파일로부터 가져와서 사용하는 데에 쓰입니다.

 

이러한 기본적인 Thymeleaf 문법을 사용하여 서버에서 전달된 데이터를 템플릿에 동적으로 표시하고, 조건문 및 반복문을 사용하여 페이지의 구조를 제어할 수 있습니다.

 

최근에는 JSP 보다 많이 사용 되고 있어서 배워두면 이직 할때 좋을거 같다.

 

 

728x90
반응형