Thymeleaf
타임리프는 뷰 템플릿 엔진으로 JSP 와 같이 백엔드 쪽에서 클라이언트에게 응답할 웹 브라우저 페이지를 만들어주는
역할을 한다. 뷰 템플릿 엔진이지만 기존 템플릿 엔진과는 차별점이 있다.
- 순수 HTML 파일 구조를 유지하기 때문에 서버상에서 동작하지 않아도 된다.
기존의 템플릿으로는 항상 서버를 구동시켜 결과물을 확인해야 하지만 타임리프의 경우 순수 HTML 이기 때문에
브라우저에서 바로 확인할 수 있다.
이러한 이유는 타임리프가 HTML 의 속성(Attribute)을 기반으로 작성되기 때문에 기존의 HTML 구조를 건드리지 않기
때문이다.
이러한 순수 HTML을 유지하기 때문에 Natural Template(내츄럴 템플릿)이라고 불린다.
타임리프는 th:xxx 처럼 HTML 태그 속성 값으로 들어가 값을 치환해준다.
<div th:text="${data}">치환데이터</div>
위 코드처럼 div 태그를 사용하면서 th:text를 사용하여 치환데이터라는 문자열을 서버에서 넘어온 ${data} 값으로 치환해준다.
JSP
SP는 JavaServer Pages의 약자로 Java 언어를 기반으로 하는 Server Side 스크립트 언어이다.
HTML 코드에 Java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구
* 웹 어플리케이션(Web Application)
어플리케이션이란 사용자가 컴퓨터로 원하는 작업을 할 수 있도록 만들어진 소프트웨어 또는 사용자와 상호 작용이 가능한 프로그램이라고 한다.
그럼 웹 어플리케이션은 사용자와 상호작용을 하기 위한 웹이라고 할 수 있다.
별도의 응용 소프트웨어(어플리케이션)를 설치하지 않아도 웹 브라우저를 통해 응용 소프트웨어의 기능을 이용할 수 있도록 만든 웹서비스가 웹 어플리케이션이다.
JSP는 실행 시 실제 연산을 수행하는 Servlet으로 변환된다.
JSP가 실행되면 자바 서블릿으로 변환되며 웹 어플리케이션 서버(WAS)에서 동작되면서 필요한 기능을 수행하고
그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
자세한 내용은 아래 내용을 참고하세요
https://okimaru.tistory.com/215
Thymeleaf 와 JSP 차이
1. 비즈니스 로직 분리 및 무게감
JSP는 서블릿이라는 형태로 변환되어 실행된다. JSP는 WAS에서 자바코드로 변환되어 사용되어지기 때문에 JSP에서 자바코드가 사용 가능하지만 사용자에게 보여지는 View에 비즈니스 로직이 포함되므로 복잡하고 무거워진다.
반면에 타임리프는 서블릿으로 변환되지 않고 순수 HTML로만 하기 때문에 비즈니스 로직이 완전히 분리해진다.
2. 패키징 차이
JSP는 배포시 JAR 패키징이 불가능하고 WAR 패키징만이 가능하다. 이유는 JSP는 동적인 웹 페이지를 만들기 위해 WAS 안의 서블릿으로 변환되어 처리한다고 했다. 그러므로 웹서버나 WAS가 필요한 WAR 파일로 패키징 해야한다.
Thymeleaf는 순수 HMML이므로 웹서버나 WAS가 필요 없는 JAR 로 패키징 하기 때문에 훨씬 편리하다고 할 수 있다.