본문 바로가기
법, 용어/용어

개발_웹개발_타임리프 Thymeleaf 개요

by 3604 2023. 4. 11.
728x90

📌 타임리프(Thymeleaf) 개요

출처: [Thymeleaf] 타임리프 (velog.io)

📖 정의

✍ 타임리프(Thymeleaf) 소개

타임리프(Thymeleaf)는 자바 라이브러리이며, 웹과 환경 양쪽에서 TEXT, HTML, XML, Javascript, CSS를 생성할 수 있는 템플릿 엔진이다.
스프링 MVC와의 통합 모듈을 제공하며, 애플리케이션에서 JSP로 만든 기능들을 완전히 대체할 수 있다.
즉, 타임리프(Thymeleaf)는 View Templete Engine으로 JSP, Freemarker와 같이 서버에서 클라이언트에게 응답할 브라우저 화면을 만들어주는 역할을 한다.

📖 목표

✍ 타임리프(Thymeleaf) 목표

타임리프(Thymeleaf)의 주요목표는 세련되고 잘 다듬어진 템플릿을 제공하는 것이다. 이는 유지관리 및 확장이 쉽도록 하는 것을 말한다.
↳ Natural Templates : 기존 HTML 코드와 구조를 변경하지 않고 덧붙이는 방식이다.
↳ Standard + SpringStandard를 통한 템플릿 생성, dialect를 통한 타임리프 확장.

📖 장점

✍ 타임리프(Thymeleaf) 장점

 

  • 코드를 변경하지 않기 때문에 서버팀과 퍼블팀 간의 협업이 편해진다.
  • 비즈니스 로직과 분리되어 View에 집중할 수 있다.
  • 서버상에서 동작하지 않아도 되기 때문에, 서버 동작 없이 화면을 확인할 수 있다. (서버가 구동하지 않는 경우 정적 컨텐츠)

 

📎 Spring Boot에서 Thymeleaf

✍ 타임리프(Thymeleaf)에서 SpringBoot를 권장하는 이유

↳ Spring Boot에서는 JSP 설정과 관련하여 자동 설정을 지원하지 않는다.
그에 반해 타임리프는 Dependency만 추가하면 자동으로 설정되어 간편하게 사용할 수 있다.

📌 타임리프(Thymeleaf) 적용

📖 의존성 추가

 gradle
 build.gradle파일에 아래의 내용을 추가한다.
 org.springframework.boot:spring-boot-starter-thymeleaf

// 코드중략
dependencies {
  // 코드중략
  compile "org.springframework.boot:spring-boot-starter-thymeleaf"
  // 코드중략
}
// 코드중략

 Maven
 pom.xml파일에 아래의 내용을 추가한다.

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

📖 Template file 위치

 src/main/resources/tempalte 하위에 기능에 따라 directory 구성
✍ 정적인 자원은 src/main/resources/static 에 구성
✍ 공통으로 사용되는 template fragment들은 layout, commons 혹은 fragments를 만들어서 구성

📖 HTML에 네임스페이스(Namespace) 추가

✍ HTML문서에 네임스페이스 추가 방법

xmlns:th="http://www.thymeleaf.org"  HTML에 추가한다.

<!DOCTYPE html>
<!-- namespace 추가 -->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    
</body>
</html>

개인적으로 공부하며 기록한 내용으로, 틀린 내용이 있는 경우 덧글을 달아주시면 감사하겠습니다. 😍

728x90

'법, 용어 > 용어' 카테고리의 다른 글

용어_나라장터_계약체결 방식_2단계경쟁, 협상에 의한 계약  (0) 2023.04.25
프로그램 용어  (0) 2023.04.12
'등' 이라는 단어 해석  (0) 2023.03.31
개발 프로그래밍 용어  (0) 2023.03.15
Lessons Learned  (0) 2023.02.27