더북(TheBook)

템플릿 캐싱 비활성화

독서 목록 애플리케이션을 간단히 다뤄 보았으니 애플리케이션을 다시 시작하기 전까지는 Thymeleaf 템플릿의 어떤 변경 사항도 반영하지 않음을 알 것이다. Thymeleaf 템플릿은 기본으로 캐시되기 때문이다. 캐시 덕분에 템플릿을 한 번만 컴파일하므로 애플리케이션 성능이 더 좋다. 하지만 개발하는 동안에는 즉시 변경 사항을 반영하기가 어렵다.

Thymeleaf 템플릿 캐싱을 비활성화하려면 spring.thymeleaf.cachefalse로 설정한다. 이것은 명령줄에서 애플리케이션을 실행할 때 다음과 같이 명령줄 인자로 지정해야 할 수 있다.

$ 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로 설정하면 캐싱을 비활성화한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.