웹(WEB)/spring-boot

[Template Engine] 타임리프(Thymeleaf)

고품격미식가 2019. 10. 16. 02:22

템플릿 엔진이란?

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

자료(Data)를 결합하여 페이지를 만들어 내기도 하고 많은 양의 컨텐츠 정보를 표현하는 것을 도와준다.

 

 

템플릿 엔진의 종류

흔히 사용되는 서버사이드 템플릿 엔진으로는 JSP, 타임리프 등이 있으며, 스프링부트 2.0버전에서 지원하는 템플릿 엔진으로는 타임리프, 프리마커, 무스타치, 그루비템플릿 등이 있다. 이 중 어떠한 템플릿 엔진을 사용해도 상관이 없다.

다만, 스프링부트에서는 타임리프의 사용을 권장하며, 국내에서는 대중적으로 타임리프를 많이 사용하고 있다고 한다.

 

이러한 서버사이드 템플릿 엔진은 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어 html을 그려서 클라이언트에 전달해주는 역할을 한다. 즉, HTML 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 동적으로 생성되는 부분만 템플릿 특정 장소에 끼워넣는 방식으로 동작할 수 있도록 해준다.

 

동작하는 과정은 다음과 같다.

  1. 클라이언트의 요청을 받는다.
  2. 필요한 데이터(DB에서 가져오거나 API에서 가져오거나)를 가져온다.
  3. 미리 정의된 Template에 해당 데이터를 적절하게 넣는다.
  4. 서버에서 HTML(데이터가 반영된 Template)을 그린다.
  5. 해당 HTML을 클라이언트에 전달한다.

템플릿 엔진의 필요성

  1. 대부분의 Template Engine은 기존의 HTML에 비해서 간단한 문법을 사용한다.
  2. 웹페이지를 만들 때 똑같은 패턴에 보이는 데이터만 바뀌는 경우가 굉장히 많은데, 템플릿엔진을 사용하면 간단하게 반복되는 패턴을 표현할 수 있어 코드의 경량화에 도움이 된다.
  3. 하나의 Template을 만들어 여러 페이지를 렌더링하는 작업은 유지보수에 용이하다. (ex.include)