막상 개발 서버에 올리니까
첫번쨰 요청은 30초가 걸리고,
캐싱된 두번째 요청도 20초가 걸렸다.
로컬은 2초 걸렸는데...
네트워크 들어가보니 정적 리소스가 하나도 캐싱되지 않았다.
같은 jar인데 ...
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**", "/js/**", "/images/**", "/fonts/**")
.addResourceLocations("classpath:/static/css/", "classpath:/static/js/", "classpath:/static/images/", "classpath:/static/fonts/")
.setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS));
}
}
이렇게 캐시컨트롤을 명시해주면 된다고 해서
.setCacheControl(CacheControl.maxAge(Duration.ofDays(1)).cachePublic())
라고 명시해줬고
요로코롬 캐싱이 되긴 했다.
근데 여전히 10초정도 걸려서 느렸는데...
시간이 오래 걸리는 요청들이 서버에서 응답 받는데 좀 걸리는 메서드라고 생각했고...
쟤들의 결과를 서버에 캐시할지.. 클라이언트에 캐시할지 고민을 하다가...
일단 진짜 메서드 속도가 느린 건지 쿼리 속도가 느린건지 확인을 해봤다..
막상 디버그 찍어보고 쿼리 속도 확인해봐도 쿼리는 100ms 밖에 안됐고...
대체 이유가 뭐야1!! 하던 와중에
이유를 알 수 없지만
이것저것 건드리다가 갑자기
1.86초로 줄었다.......
'Spring Boot' 카테고리의 다른 글
Spring MVC가 아닌 Boot RestAPI에서 DispatcherServlet 동작 흐름 (0) | 2024.10.22 |
---|---|
JSON_ARRAYAGG & @JsonRawValue (1) | 2024.09.24 |
AOP를 활용한 브라우저 캐시_3_AOP / @GetMapping (2) | 2024.09.10 |
AOP를 활용한 브라우저 캐시_1_전략 전택 (1) | 2024.09.10 |
AOP를 활용한 브라우저 캐시_2_ETag & 인터셉터 (실패) (0) | 2024.09.10 |