[Spring] Thymeleaf

2024. 11. 4. 20:11Spring

저번 포스트에서 미리 예고 했듯이, Thymeleaf에 대해서 알아 볼 것이다.


일단 Thymeleaf가 무엇일까?

Thymeleaf란?

Thymeleaf(타임리프)는 템플릿 엔진의 일종으로 흔히 View Template(뷰 템플릿) 이라고 부른다.

기존에 사용했던 JSP 같은 템플릿 엔진의 한 종류라고 할 수 있다.

 

JSP와 Thymeleaf 차이점

그럼 이때까지 사용했던 JSP와 어떤 차이점이 있을까?

먼저, 기존에 사용했던 JSP는 Servlet으로 변환되어 실행된다.

Servlet은 Java 소스이기 때문에 HTML 코드에 Java 코드를 합하여 동적으로 웹 페이지를 구성한다.

(때문에 JSP 파일 내부에 자바 코드를 작성하는 것도 가능하지만 웬만하면 그렇게 하지 않는 것을 추천한다.)

 

반면, Thymeleaf는 Servlet으로 변환되지 않고, 순수 HTML파일을 최대한 유지하기 때문에 비즈니스 로직이

완전히 분리된다. 그래서 파일을 웹 브라우저에서 바로 실행 시켜도 그 내용을 확인하는게 가능하다.

 

이 둘의 가장 큰 차이는 Thymeleaf는 jar 파일로 export가 가능하다는 것이다.
Spring으로 빌드하면 기본적으로 jar파일로 빌드가 되는데 JSP는 jar패키징이 불가능하고 war패키징만 가능하다.

그래서 jar로 패키징이 가능한 Thymeleaf를 사용하는 것이 더 좋고 편리하다.
(war로 패키징을 하려면 was가 필요하고 사전에 정의된 구조만을 사용해야 해 복잡하다. 그래서 jar로 패키징 하는 것이 더 편리함)

 

JSP와 Thymeleaf 의 동작 차이

Thymeleaf는 HTML파일을 파싱하고 분석한 후 정해진 위치에 데이터를 치환해 웹 페이지를 생성한다.
반면, JSP는 Servlet으로 변환되어 웹 애플리케이션 서버에서 동작하며 필요한 기능을 수행하고 생성된 데이터를 웹 페이지와 함께 클라이언트로 응답한다.


 

그럼 Thymeleaf만 쓰면 되지 JSP를 왜 쓰는 것이냐? 장점만 있는게 아니냐? 라고 할 수 도 있지만, 

JSP보다 Thymeleaf가 응답 속도가 느리다는 단점이 있다.

하지만 웬만하면 Thymeleaf를 사용하는 것이 배포하기도 편리하고, 여러 방면으로 장점도 많아서 앞으로 주 엔진으로 사용할 것 같다.

'Spring' 카테고리의 다른 글

[Spring] Spring Boot 시작하기  (1) 2024.10.23
[Spring] DispatcherServlet  (0) 2024.10.12
[Spring] QueryString  (0) 2024.10.11
[Spring] ViewResolver  (0) 2024.10.11
[Spring] 인증 메일 보내기  (1) 2024.10.11