Spring Boot

AOP를 활용한 브라우저 캐시_4 정적 리소스 캐싱 명시

99duuk 2024. 9. 11. 17:44

막상 개발 서버에 올리니까 
첫번쨰 요청은 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())

라고 명시해줬고


캐싱 전 35.05초
캐싱 후 10.25초

요로코롬 캐싱이 되긴 했다.

 

 

 

근데 여전히 10초정도 걸려서 느렸는데...


시간이 오래 걸리는 요청들이 서버에서 응답 받는데 좀 걸리는 메서드라고 생각했고...

쟤들의 결과를 서버에 캐시할지.. 클라이언트에 캐시할지 고민을 하다가...

 

일단 진짜 메서드 속도가 느린 건지 쿼리 속도가 느린건지 확인을 해봤다..

막상 디버그 찍어보고 쿼리 속도 확인해봐도 쿼리는 100ms 밖에 안됐고...

대체 이유가 뭐야1!! 하던 와중에 

 

이유를 알 수 없지만 

이것저것 건드리다가 갑자기 

 

1.86

 

1.86초로 줄었다.......