Programming/Spring

[Spring Boot] Thymeleaf Caching의 의미와 설정 (템플릿 캐싱)

JeongKyun 2022. 4. 8.
반응형

서론

이번 글에서는 템플릿 엔진 중 하나인 타임리프의 캐시에 대해 알아보려한다. 기본적으로 템플릿은 최초 사용될 때 한 번만 파싱되는 성격을 갖고있다.

 

파싱된 결과는 향 후 사용을 위해 캐시에 저장되는데, 이것은 프로덕션에서 애플리케이션을 사용할 때 좋은 기능이다. 매번 요청을 처리할 때마다 불필요하게 템플릿 파싱을 하지 않으므로 성능을 향상시킬 수 있기 때문이다.

 

이러한 캐싱이 개발할 때는 오히려 불편한 요소로 작용된다. 애플리케이션을 시작하고 디자인 수정 후 새로고침을 하더라도 수정 전의 페이지만 나오는 것을 확인할 수 있는데 이를 보완하기 위해 해당 캐싱의 속성을 설정할 수 있게끔 지원해준다.

 

이번 글에서는 해당 내용을 설정하는 방법에 다뤄보려한다.

 

 


 

Template Engine Cache 속성

 

템플릿 엔진 캐싱 방법

필자같은 경우는 타임리프로 현재 개발을 진행하고있기에 타임리프로만 설정을 할 것인데, 다른 템플릿 엔진도 비슷하게 설정할 수 있으니 이 점 확인 바란다.

 

기본적으로 모든 템플릿 엔진인 FreeMarker, Groovy Templates, Thymeleaf 등 캐싱 활성화 속성이 True로 되어있다. 따라서 캐싱을 비활성화 하려면 false로 설정하면 되는데, 이 방법은 아래와 같다.

 

application.properties 파일에 다음을 추가하면 된다.

spring.thymeleaf.cache= false

 

단, 주의할점은

프로덕션에서 애플리케이션을 배포할 때는 설정한 속성을 삭제하거나 true로 변경해야 한다.

이 설정은 개발할 때 편의성을 위해서만 사용하기를 권장한다.

 

하지만 이 전 포스트에서 설명한 이전 글에서 소개했던 DevTools를 사용하는 것이 훨씬 더 간편하다. 개발 시점에 DevTools는 많은 도움을 제공하며, 모든 템플릿 라이브러리 캐싱을 비활성화 해주기 때문이다. 또한 애플리케이션이 실무 운영을 위해 배포할 때면, DevTools 자신이 비활성화되므로 캐싱이 활성화 될 수 있다.

댓글

💲 많이 본 글