본문 바로가기

Java

Spring 이미지 내려줄때 캐시설정하기

적용 프로젝트

 

https://github.com/hanghae99-MEALCHAK/MEALCHAK-server-application

 

GitHub - hanghae99-MEALCHAK/MEALCHAK-server-application

Contribute to hanghae99-MEALCHAK/MEALCHAK-server-application development by creating an account on GitHub.

github.com

 

 

기존에 /image 경로로 접근할때 file:/root/image로 연결시켜주는 설정을 했었다

 

WebMVCConfig

 

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/image/**")
//                .addResourceLocations("file:/home/ubuntu/image/");  // AWS EC2
                .addResourceLocations("file:/root/image/");   // NAVER EC2
    }

 

이 기존코드에

 

 

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        CacheControl cacheControl = CacheControl.noCache().mustRevalidate().cachePrivate().sMaxAge(Duration.ZERO);
        registry.addResourceHandler("/image/**")
//                .addResourceLocations("file:/home/ubuntu/image/");  // AWS EC2
                .addResourceLocations("file:/root/image/")   // NAVER EC2
                .setCacheControl(cacheControl);
    }

 

이렇게 캐시컨트롤을 추가해주었다

 

현재 캐시에 만료기간을 설정하지않는대신 반드시 검증을 하는 상태이다

 

이렇게 추가한뒤

 

 

 

 

새로고침할때마다 매번 받아오던 이미지 리소스를

 

 

 

캐시된 이미지를 사용하게 되어 네트워크 응답속도가 향상되었다!