Template Engine(템플릿 엔진), Thymeleaf(타임리프)란?

Jinny·2023년 3월 27일
0

Spring

목록 보기
1/10

현업에서는 Json으로 데이터를 주고받기 때문에
Template Engine에 대해 깊게 알 필요 없다는 조언을 많이 들었지만

Spring 강의로 유명한 김영한님의 강의에서
프로젝트가 템플릿 엔진을 기반으로 진행되기 때문에
이에 대한 이해없이 스프링의 동작 방식을 이해하는 것이 다소 힘들었다.

그래서 한번 정리해보았다.

🍃 Template Engine

  • 정적 페이지를 동적 페이지로 만들어주는 엔진으로 이해했다.
  • 지정된 양식과 데이터를 합쳐 HTML을 웹에다 쏴(?)준다.
  • 서버 사이드 Template Engine과 클라이언트 사이드 Template Engine이 있다.
  • 본문에서는 서버 사이드 Template Engine만 다룰 예정이다.

서버 사이드 템플릿 엔진(SSR)

SSR: 서버 사이드 HTML 랜더링

  • DB 혹은 API에서 가져온 데이터를 미리 정의된 템플릿(Template)에 넣어 클라이언트에 전달한다.
  • 다음과 같은 순서로 동작한다.
  1. 클라이언트의 요청을 받는다.
  2. 필요한 데이터를 DB 혹은 API에서 가져온다.
  3. 미리 정의된 템플릿에 데이터를 배치한다.
  4. 서버에서 데이터가 반영된 Template으로 HTML을 그린다.
  5. 해당 HTML을 클라이언트에 전달한다.
  • 자주 사용하는 엔진으로 Groovy, Thymeleaf, Velocity, Freemarker 등이 있다.

사용하는 이유

  1. 많은 코드를 줄일 수 있다.
    템플릿 엔진은 HTML에 비하여 간단한 문법을 사용하여 코드를 훨씬 간결하게 작성할 수 있다.

  2. 재사용성이 높다.
    웹 페이지는 비슷한 디자인에 데이터만 바뀌는 경우가 많다.
    Template Engine을 사용하면 미리 템플릿을 만들어 놓고 데이터만 갈아 끼우면 된다.

  3. 유지보수에 용이하다.
    미리 정의된 템플릿을 사용하기 때문에 각각의 HTML 페이지를 관리하는 것보다 훨씬 효율적이다.


profile
공부는 마라톤이다. 한꺼번에 많은 것을 하다 지치지 말고 조금씩, 꾸준히, 자주하자.

0개의 댓글