템플릿 캐싱 비활성화
독서 목록 애플리케이션을 간단히 다뤄 보았으니 애플리케이션을 다시 시작하기 전까지는 Thymeleaf 템플릿의 어떤 변경 사항도 반영하지 않음을 알 것이다. Thymeleaf 템플릿은 기본으로 캐시되기 때문이다. 캐시 덕분에 템플릿을 한 번만 컴파일하므로 애플리케이션 성능이 더 좋다. 하지만 개발하는 동안에는 즉시 변경 사항을 반영하기가 어렵다.
Thymeleaf 템플릿 캐싱을 비활성화하려면 spring.thymeleaf.cache를 false로 설정한다. 이것은 명령줄에서 애플리케이션을 실행할 때 다음과 같이 명령줄 인자로 지정해야 할 수 있다.
$ java -jar build/libs/readinglist-0.0.1-SNAPSHOT.jar --spring.thymeleaf.cache=false
애플리케이션을 실행할 때마다 템플릿 캐싱을 비활성화하고 싶다면 다음과 같이 application.yml 파일을 생성한다.
spring: thymeleaf: cache: false
출시용 애플리케이션에서는 이런 application.yml 파일을 사용하지 말아야 한다. 그렇지 않으면 템플릿 캐싱으로 성능을 향상시킬 수 없다.
개발자라면 템플릿을 변경하는 동안에는 템플릿 캐싱을 끄는 것이 더 편리할 것이다. 이때는 환경 변수로 Thymeleaf 캐싱을 끄면 된다.
$ export spring_thymeleaf_cache=false
예제에서는 애플리케이션의 뷰로 Thymeleaf를 사용하지만, 스프링 부트가 지원하는 다른 템플릿 옵션도 다음 프로퍼티로 템플릿 캐싱을 끌 수 있다.
• 프리마커 : spring.freemarker.cache
• 그루비 템플릿 : spring.groovy.template.cache
• 벨로시티 : spring.velocity.cache
모든 프로퍼티의 기본값은 true로, 기본으로 모든 템플릿을 캐싱한다. false로 설정하면 캐싱을 비활성화한다.