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 보다 많이 사용 되고 있어서 배워두면 이직 할때 좋을거 같다.
'인프런 강의 > 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발' 카테고리의 다른 글
일대다(OneToMany)와 다대일(ManyToOne)관계 (0) | 2024.01.19 |
---|---|
JPA주요 관계 매핑 타입 (0) | 2024.01.19 |
Spring-Boot 의존성 라이브러리 종류 (0) | 2024.01.10 |
Gradle란 무엇인가 (0) | 2024.01.10 |
JPA vs MyBatis (0) | 2024.01.10 |