개발의 시작과 끝
2023.09.19 / 템플릿 엔진, 타임리프 본문
템플릿 엔진
- 템플릿 양식(HTML)과 데이터 모델(DB)에 따른 입력 자료를 결합하여 문서를 출력하는 소프트웨어.
- View를 담당하는 HTML코드와 DB 로직 코드를 따로 분리해서 합쳐주는 기능.
- 데이터와 템플릿을 결합하여 사용자에게 동적 콘텐츠를 제공.
- 동적 웹 애플리케이션에서 정적 템플릿과 데이터를 결합하여 최종 웹 페이지 생성.
- 주요 역할
- 데이터와 템플릿 결합 : 데이터(서버정보)와 템플릿(HTML)을 결합해 최종 HTML문서 생성.
- 동적 콘텐츠 생성 : 동적으로 콘텐츠 생성 (ex. DB 정보 표시)
- 반복문과 조건문 : 제어 구조 템플릿 내에 포함.
- 템플릿 재사용 : 웹 페이지 일부분을 템플릿으로 분리하고 재사용 가능.
▶ 서버사이드 템플릿 엔진(Server-Side Template Engine)
- 서버에서 웹 페이지를 동적으로 생성하는 방식
- 클라이언트(웹 브라우저)는 정적 HTML 요청하고 서버는 템플릿 엔진을 사용해 원하는 데이터를
HTML에 삽입 후 동적 페이지를 클라이언트에게 반환. - 장점
- SEO(검색 엔진 최적화) : 서버사이드 렌더링된 콘텐츠를 쉽게 색인화.
- 보안 : 클라이언트에게 노출되지 않는 데이터 및 비즈니스 로직을 안전하게 처리 가능.
- 주요 사용 사례 : 스프링과 같은 백엔드 프레임워크
- 전통적인 멀티페이지 애플리케이션에 적합
▶ 클라이언트 사이드 템플릿 엔진 (Client-Side Template Engine)
- 서버에서는 정적 HTML만 전송하고, 클라이언트(웹 브라우저)에서 동적으로 페이지를 생성하는 방식.
- 서버는 JSON 또는 데이터 API를 통해 데이터를 클라이언트에게 전달,
해당 데이터를 사용하여 동적 페이지를 생성, - 장점
- 사용자 경험 향상: 페이지 일부분만 업데이트하므로 사용자 경험이 빠르고 부드럽게 개선.
- 서버 부하 감소: 서버는 데이터만 전송하고 페이지 렌더링을 클라이언트에게 위임하므로 서버 부하가 줄어듦.
- 주요 사용 사례
- JavaScript 프레임워크 및 라이브러리(예: Angular, React, Vue.js)와 함께 사용
- 주로 싱글 페이지 애플리케이션(SPA) 개발에 적합
- 빠른 사용자 경험을 제공하는 현대적인 웹 애플리케이션에 적합
타임리프(Thymeleaf)
- 웹 애플리케이션 개발을 위한 서버 측 템플릿 엔진.
- HTML, XML, JavaScript, CSS 및 일반 텍스트와 같은 다양한 종류의 템플릿을 처리.
- 주로 스프링 프레임워크와 통합하여 사용.
- 스프링 기반의 웹 애플리케이션에서 사용하기 적합.
- 스프링부트와 같은 스프링 프레임워크 기반의 웹 애플리케이션 개발에서 많이 사용.
- 서버 측에서 렌더링 되므로 검색 엔진 최적화(SEO)에도 도움.
- 스프링부트와 궁합이 굉장히 잘 맞음.
- 서블릿으로 변환되지 않다보니 비지니스 로직이 완전히 분리됨.
JSP와 Thymeleaf 차이
- JSP : JAR 패키징 불가능, WAR 패키징만 가능.
- Thymeleaf : JAR 패키징 가능. WAS 없이도 브라우저에 직접 띄울 수 있어 훨씬 편리.
참고
'IT 용어' 카테고리의 다른 글
2023.09.18 / 자바 스트림 (0) | 2023.09.18 |
---|---|
2023.09.18 / JPA, Hibernate, Spring Data JPA 차이 (0) | 2023.09.18 |
2023.09.16 / ORM (0) | 2023.09.16 |
2023.09.16 / API, 라이브러리, 프레임워크 (0) | 2023.09.16 |
2023.09.15 / 스프링 시큐리티(Spring Security) (0) | 2023.09.15 |