Thymeleaf
[Thymeleaf] 타임리프란?
걸어가는 신사
2022. 1. 24. 15:51
'뷰 템플릿 엔진'으로 벡엔드 쪽에서 클라이언트에게 응답할 브라우저 화면을 만들어 주는 역할을 한다.
1. 타임리프 특징
(1) 서버 사이드 HTML 렌더링 (SSR)
- 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다.
(2) 내추럴 템플릿(Natural Templates)
- 타임리프는 순수 HTML을 최대한 유지하는 특징이 있다.
- 타임리프 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다.
- HTML을 그래로 유지하면서 뷰 템플릿도 사용할 수 있는 타임리프의 특징을 내추럴 템플릿(natural templates)이라 한다.
(3) 스프링 통합 지원
- 타임리프는 스프링과 자연스럽게 통합되고, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다.
2. 타임리프 기본 기능
(1) 타임리프 사용 선언
<html xmlns:th="http://www.thymeleaf.org">
(2) 기본 표현식
• 간단한 표현:
◦ 변수 표현식: ${...}
◦ 선택 변수 표현식: *{...}
◦ 메시지 표현식: #{...}
◦ 링크 URL 표현식: @{...}
◦ 조각 표현식: ~{...}
• 리터럴
◦ 텍스트: 'one text', 'Another one!',…
◦ 숫자: 0, 34, 3.0, 12.3,…
◦ 불린: true, false
◦ 널: null
◦ 리터럴 토큰: one, sometext, main,…
• 문자 연산:
◦ 문자 합치기: +
◦ 리터럴 대체: |The name is ${name}|
• 산술 연산:
◦ Binary operators: +, -, *, /, %
◦ Minus sign (unary operator): -
• 불린 연산:
◦ Binary operators: and, or
◦ Boolean negation (unary operator): !, not
• 비교와 동등:
◦ 비교: >, <, >=, <= (gt, lt, ge, le)
◦ 동등 연산: ==, != (eq, ne)
• 조건 연산:
◦ If-then: (if) ? (then)
◦ If-then-else: (if) ? (then) : (else)
◦ Default: (value) ?: (defaultvalue)
• 특별한 토큰:
◦ No-Operation: _
3. 타임리프 공식 문서
(1) 공식 사이트
(2) 공식 메뉴얼 - 기본 기능
(3) 공식 메뉴얼 - 스프링 통합
반응형