템플릿 엔진(Template Engine)
템플릿 엔진이란 템플릿 양식과 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어를 말한다.
그 중 웹 템플릿 엔진은 브라우저에서 출력되는 문서를 위한 소프트웨어이다.
- 고정적으로 사용될 부분을 템플릿을 미리 작성해 놓고
- 동적으로 변경될 데이터 부분만 필요시 결합하여
- 화면(문서)을 완성한다.
어디서 결합하냐에 따라 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 분류할 수 있다.
-
서버 사이드 템플릿 엔진 서버에서 데이터와 미리 정의된 템플릿으로 HTML을 완성하여 클라이언트에게 전달한다.
Freemarker, Thymeleaf, Handlebars(Handlebars.java), JSP 등 -
클라이언트 사이드 템플릿 엔진
데이터와 템플릿을 합쳐 클라이언트에서 HTML을 완성한다.
서버는 api 콜에대한 응답데이터만 제공하면서 화면 랜더링은 클라이언트가 담당하는 구조가 가능하다.
Handlebars(Handlebars.js), EJS(Embedded Javascript Templates) 등
클라이언트 사이드 템플릿 엔진의 필요성
- 계속해서 페이지를 이동하면서(서버에 데이터를 요청하면서) 화면이 변경되는 것이 아니라, 단일 화면에 특정 이벤트에 따라 화면이 변경되어야 하는 경우 javascript로 html을 변경해야 한다.
- 조작해야할 코드량이 많아지면 관리가 어려우므로 직접 javascript로 DOM을 제어하는 대신에 클라이언트 사이드 템플릿 엔진을 이용하면 좋다.