[JAVA] 템플릿 엔진에 대한 설명과 JSP, Thymeleaf과의 관계

2023. 1. 24. 15:52JAVA

템플릿 엔진(Template Engine)


템플릿 엔진은 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어이다.  
(웹사이트 화면을 어떤 형태로 만들지 도와주는 양식)

 

웹 템플릿 엔진은 view code(HTML)와 data logic code(DB connection)을

분리해주는 기능을 가지고 있다.

 

 

이제 템플릿 엔진의 종류를 알아보자!!!

이모티콘

 

템플릿 엔진의 종류

 템플릿 엔진은 서버 사이드 템플릿 엔진과

클라이언트 사이드 템플릿 엔진으로 나눌 수 있다.

 


1. 서버 사이드 템플릿 엔진 (Server Side Template Engine) 

 

서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어 Html을

그려서 클라이언트에 전달해주는 역할


HTMl 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 

동적으로 생성되는 부분만 템플릿 특정 장소에 꺼워 넣는 방식으로 동작할 수 있도록 해줍니다.

 


[1] 동작 과정
1) 클라이언트의 요청을 받는다.
2) 필요한 데이터 DB나 API에서 가져온다.
3) 미리 정의된 Template에 해당 데이터를 배치한다.
4) 서버에서 HTML(데이터가 반영된 Template)을 그린다.
5) 해당 HTML을 클라이언트에 전달한다.
6) 서버에서 최종 html 결과를 만들어서 브라우저에 전달하기 때문에 주로 화면 이동이 많은 곳에서 사용됩니다.

대표적인 서버 사이드 템플릿 엔진 : Thymeleaf, JSP, Freemarker

 

 

2. 클라이언트 사이드 템플릿 엔진 (Client Side Template Engine) 

 

HTML 형태로 코드를 작성할 수 있으며 동적으로 DOM을 그리게 해주는 역할


데이터를 받아서 DOM 객체에 동적으로 그려주는 프로세스를 담당하고 있습니다.


- DOM(Document Object Model)

: 문서 객체 모델, DOM은 넓은 의미로 웹 브라우저가 HTML 페이지를 인식하는 방식

   

                                       
[1] 동작 과정
1) 클라이언트에서 공통적인 프레임을 미리 Template로 만든다.
2) 서버에서 필요한 데이터를 받는다.
3) 데이터를 Template에 배치하고 DOM 객체에 동적으로 그려준다.
4) URL이 바뀌어도 HTML을 다시 내려받지 않고 클라이언트에서 알아서 그리기 때문에 주로 단일 화면에서 화면이 변경되는 경우에 사용됩니다.

대표적인 클라이언트 사이드 템플릿 엔진 : Mustache, Squirrelly, Handlebars

 

 

3. 필요성

1) 많은 코드를 줄일 수 있다.
==> 대부분의 템플릿 엔진은 기존의 HTML에 비해 간단한 문법을 사용한다.
2) 재사용성이 높다.
==> 똑같은 디자인의 페이지에 보이는 데이터만 바뀌는 경우가 많다
3) 유지보수에 용이하다.
==> 하나의 템플릿을 만들어 여러 페이지를 렌더링한다

 

 

 

 위에 나오는 JSP, Thymeleaf에 대해서 더 알고 싶다면 아래의 블로그로 들어가보자!!!

 

[WEB] JSP, 서블릿(Servlet), 타임리프(Thymeleaf)란 무엇인가?

1. JSP (JavaServer Pages ) : HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다. JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작되면

monetization-web.tistory.com