기본적으로 thymeleaf, mustache 같은 템플릿은 최소 사용될 때 한 번만 파싱(코드 분석)된다. 그리고 파싱된 결과는 향 후 사용을 위해 캐시에 저장된다.
이는 요청때 마다 파싱을 안 하게 만드므로 성능이 향상될 수 있다.
허나 개발 시 해당 기능을 사용하게 된다면 불편하게 된다. 예를 들어 메인 페이지를 접속한 후에 해당 페이지를 수정했다고 하자, 이때 새로고침 하더라도 수정 전 페이지가 보이게 된다. 변경된 페이지를 보려면 애플리케이션을 다시 시작해야 하는 번거로움이 있다.
그래서 개발시에는 해당 기능을 끄고 진행하는 것이 좋다.
아래는 각 템플릿의 캐싱 속성이다.
템플릿 | 캐싱 속성 |
FreeMaker | spring.freemaker.cache |
Groovy Templates | spring.groovy.template.cache |
Mustache | spring.mustache.cache |
Thymeleaf | spring.thymeleaf.cache |
기본적으로는 해당 속성의 값이 true로 되어있다. 따라서 캐싱을 비활성화하려면 false로 변경해야 한다.
Spring Boot를 예로 들자면 application.properties 파일에 다음을 추가한다.
spring.thymeleaf.cache=false
단, 개발 시에만 설정하고 배포할 때는 이 설정을 삭제하거나 true로 변경해야 할 것이다.
템플릿 캐싱과 관련돼서 좋은 것은 Spring Boot의 devTools이다. 이는 모든 템플릿 라이브러리의 캐싱을 비활성화한다.
그러나 실무 운영을 위해 배포될 때는 devTools 자신이 비활성화되므로 템플릿 캐싱이 활성화될 수 있다.
'프로그래밍 > Spring' 카테고리의 다른 글
[Spring] application.yml과 application.properties 차이 (0) | 2022.10.11 |
---|---|
[Spring] Spring Cloud Eureka Server를 만들어보자 (0) | 2022.10.10 |
[Spring] Deprecated 된 WebSecurityConfigurerAdapter (1) | 2022.07.13 |