웹 개발

thymeleaf vs jsp

노루아부지 2022. 3. 13. 21:19

java를 배우면 기본적으로 jsp를 배우게 됩니다.

jsp는 일반적인 java MVC 구조에서 View 역할을 하는데, 요즘 Spring에서는 View로 Thymeleaf를 밀고 있습니다.

 

1. thymeleaf와 jsp의 차이

jsp의 경우에는 servlet 형태로 변환되어 실행됩니다. servlet이 자바 소스이기 때문에 jsp에서도 java코드를 사용할 수 있습니다.(하지만 보통 jsp 내부에 java코드를 넣는 것은 추천하지 않습니다.)

 

반면, Thymeleaf는 html, xml, js, css 등을 처리할 수 있는 웹 및 독립형 환경에서 사용이 가능한 java 템플릿 엔진입니다. Thymeleaf는 html 파일을 가져와서 파싱 하고 그걸 분석하여 정해진 위치에 데이터를 뿌려줍니다.

 

Thymeleaf와 jsp의 가장 큰 차이점은 jar로 export 가능한지 여부인것 같습니다.

Spring boot 프로젝트를 빌드하면 기본적으로 jar로 빌드가 되는데, jsp프로젝트의 경우 jar로 빌드할 수 없고 war로 빌드해야 합니다.

최근 추세는 war 보다는 jar로 배포하는 것이기 때문에 이것은 치명적인 단점이라고 할 수 있습니다.

 

만약 Spring boot + JSP 조합으로 작성된 프로젝트를 JAR로 빌드해서 실행하면 브라우저에서 "Whitelabel Error Page" 오류가 뜨는 것을 볼 수 있습니다. 이는 내장 톰캣을 사용하는 Spring boot Application에서 JSP를 지원하지 않아서 발생하는 오류입니다.

이에 대해 공식 홈페이지에서는 다음과 같이 나와 있습니다.

 

 

2. JSP Limitations

thymleaf vs jsp

내용은 길지만 정리하면 이렇습니다.

  • JSP는 실행 가능한 jar를 사용할 때 지원되지 않습니다. 따라서 war 패키징을 해야 합니다.
  • Spring boot 공식 지원 내장 WAS인 Undertow는 JSP를 지원하지 않습니다.
  • 사용자 지정 error.jsp를 지원하지 않습니다.

 

 

 

더 자세한 내용은 공식 문서에서 확인하시면 됩니다.

 

 

3. Thymeleaf의 장점

  • 페이지를 생성하는데 필요한 정보를 태그의 속성으로 넣어서 페이지의 프로토타입을 제공 가능
  • 디자이너 또는 퍼블리셔가 페이지를 작업할 때 tomcat 같은 WAS를 실행하지 않고 작업 가능

 

 

 

 

 

[참고 사이트]

 

스프링 프레임워크 뷰로 사용되는 Thymeleaf 와 jsp 의 비교

스프링 부트를 공부하면서 Thymeleaf를 알게 되었습니다. Thymeleaf는 템플릿 엔진으로 스프링 프레임워크의 MVC 구조에서 V 즉, 뷰(View)를 담당하는 라이브러리 입니다. 스프링 프레임워크의 뷰로 사

offbyone.tistory.com

 

[SpringBoot] Thymeleaf 와 jsp 비교 분석

java 기반의 서버 프레임워크를 공부하다보면 jsp 라는 녀석을 쓰게된다. jsp는 일반적인 자바 프레임워크 MVC 구조에서 V , 즉 뷰 역할을 담당하는 녀석이다. 요즘 스프링 부트 공부를 하면섬 Thymelea

devkingdom.tistory.com

 

[Spring Boot]JSP 제약사항

SpringBoot + JSP 조합으로 작성된 프로젝트를 JAR로 빌드하여 실행시켜 보면 브라우저에서 "Whitelabel Error Page" 오류가 뜨는 것을 볼 수 있다. 이는 내장 톰캣을 사용하는 스프링 부트 애플리케이션에

hye0-log.tistory.com

 

728x90
loading