Backend/SpringBoot

템플릿 엔진(Template Engine)

둥둥 2022. 2. 28. 17:25
728x90
Template Engine


템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어 또는 소프트웨어 컴포넌트

동적 콘텐츠를 생성하는 방법으로 주로 view를 만드는 데 사용하지만, view를 만드는데만 사용하는 것이 아니라 여러 가지 용도(code generation, email 등)로 사용할 수 있다.

 

기본적인 템플릿은 같지만 거기에 들어가는 값들에 따라 달라진다.

따라서 정적인 컨텐츠를 생성할 수 없고 동적으로 컨텐츠를 생성해서 제공해야 한다.

※ 정적 컨텐츠콘텐츠 VS 동적 콘텐츠

 

  • 웹 템플릿 엔진(web template engine)

: 웹 문서가 출력되는 템플릿 엔진
 웹 템플릿과 웹 콘텐츠 정보를 처리하기 위해 설계된 소프트웨어
view code(html)과 data logic code(db connection)을 분리

※ 참조 블로그 : https://nesoy.github.io/articles/2017-03/web-template


템플릿 엔진(Template Engine)의 필요성

1. 많은 코드를 줄일 수 있다. : 기존의 html에 비해 간단한 문법을 사용

2. 높은 재사용성 : 똑같은 디자인의 페이지에 보이는 데이터만 바뀌는 경우 활용 가능

3. 유지보수에 용이 : 하나의 Template을 만들어 여러 페이지를 렌더링 하는 작업에 이점이 있음


Spring MVC 템플릿 엔진 VS Spring Boot 템플릿 엔진

Java Object에서 데이터를 생성하여 Template에 넣어주면 템플릿 엔진에서 Template에 맞게 html 파일을 생성

 


Spring Boot가 자동 설정을 지원하는 템플릿 엔진
  • FreeMarker
  • Groovy
  • Thymeleaf ( 추천 ) : Spring은 thymeleaf를 밀고 thymeleaf도 Spring과 관련된 많은 기능들을 지원
  • Mustache
* Spring Boot는 JSP를 권장하지 않음
: JAR패키징을 할 수 없고(WAR 패키징) 의존성 문제도 발생할 수 있음

 

※ JAR 패키징(WAR 패키징) : https://hye0-log.tistory.com/27


※ 참조 블로그 
https://velog.io/@max9106/Spring-Boot-%ED%85%9C%ED%94%8C%EB%A6%BF-%EC%97%94%EC%A7%84-Thymeleaf
https://gmlwjd9405.github.io/2018/12/21/template-engine.html



 

728x90