정의
Thymeleaf는 자바 기반 애플리케이션에서 서버 사이드 템플릿 엔진으로 사용되는 오픈소스 소프트웨어 라이브러리이다. 주로 웹 애플리케이션의 프레젠테이션 계층(View Layer)에서 동적 HTML 콘텐츠 생성을 위해 활용되며, 스프링 프레임워크와의 통합이 용이하여 스프링 기반 프로젝트에서 널리 사용된다.
개요
Thymeleaf는 HTML, XML, JavaScript, CSS 및 텍스트 형식의 템플릿을 처리할 수 있는 유연한 템플릿 엔진이다. 클라이언트 측에서 정적 프로토타이핑이 가능한 것이 특징으로, 설계자가 별도의 서버 실행 없이도 브라우저에서 템플릿을 확인할 수 있다. 이로 인해 프론트엔드 개발자와 백엔드 개발자 간의 협업이 수월해진다. Thymeleaf는 주로 자바 기반의 웹 프레임워크인 스프링 MVC와 함께 사용되며, 스프링 부트 환경에서도 기본 템플릿 엔진 중 하나로 지원된다.
어원/유래
"Thymeleaf"는 영어 단어인 "thyme"(타임, 허브의 일종)과 "leaf"(잎)의 조합으로 구성된 이름이다. 공식 문서나 개발자 인터뷰 등에서 명확한 명명 의도는 공개되어 있지 않으나, 이름의 자연 친화적인 이미지가 프레임워크의 가볍고 직관적인 특성을 반영하려는 의도로 추정된다. 정확한 유래는 확인되지 않는다.
특징
- 자연스러운 템플릿(Natural Templates): Thymeleaf 템플릿은 유효한 HTML 문서이기 때문에, 서버 없이도 웹 브라우저에서 직접 열어볼 수 있으며, 디자인 검토가 용이하다.
- 서버 사이드 렌더링 지원: 자바 서버에서 데이터를 바인딩하여 동적 페이지를 생성할 수 있다.
- 스프링 프레임워크와의 높은 통합성: 스프링 Expression Language (SpEL)와 원활하게 연동되며, 스프링 시큐리티 등의 기능도 지원한다.
- 유연한 확장성: 사용자 정의 딘션(dialect), 프로퍼티 전처리 기능 등을 통해 기능 확장이 가능하다.
- 여러 마크업 형식 지원: HTML 외에도 XML, 텍스트 등 다양한 형식을 처리할 수 있다.
관련 항목
- 스프링 프레임워크 (Spring Framework)
- 스프링 부트 (Spring Boot)
- 자바 서버 페이지 (JSP)
- 프리마커 (FreeMarker)
- 벨로시티 (Velocity)
- HTML 템플릿 엔진