emluy 개발 일기

[Spring] static source versioning - static source 반영 본문

웹 개발/Spring

[Spring] static source versioning - static source 반영

yulme 2022. 7. 4. 16:23
SMALL

0. static source 캐싱

: js, html, css, xml 등 자주 바뀌지 않는 부분을 캐시를 통해 서버의 부하를 줄여준다.

 

- 처음 페이지를 로딩할 때 

네트워크를 통해 서버에서 모든 정보를 가져옴

- 그 이후 같은 페이지를 로딩 할 때

서버에서 가져오지 않고 캐시에서 가져온다.

 

1. static source versioning 필요 이유

: static source의 변경 사항을 반영할 때 캐시가 닦이지 않는 상황이 종종 발생한다.

이 상황을 해결하기 위해 해당 js를 include하는 jsp에 js url 맨끝에 날짜를 get방식으로 param 전달 하듯이 붙혀줬었다.

ex) ~~~.js?20220704 이런식으로

하지만 충돌이 나기도 하고 그래도 캐시가 안 닦이는 경우가 생긴다.

수기로 입력해줘야하는 번거로움도 존재한다.

 

2. static source versioning

두 가지 방식 fixed version strategy와 content version strategy 가 존재한다.

 

2-1. fixed version strategy 

: 한번 반영할 때마다 모든 js에 같은 version을 입력해줄 때 사용 -> 반영이 각 content(기능 및 페이지)마다 따로 이루어지기 때문에 이 방법은 version이 너무 높아질 수 있음

 

2-2. content version strategy 

: js 파일마다 version을 관리해줌

ex) foo.js -> foo-해시값.js 와 같이 반영됨

파일 내용이 캐시에 있다면 그 캐시에 해당하는 해시값이 반영이되고 캐시에 없다면 새로 해시값을 부여해 줌

 

https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content

 

29. Developing Web Applications

The Spring Web MVC framework (often referred to as simply “Spring MVC”) is a rich “model view controller” web framework. Spring MVC lets you create special @Controller or @RestController beans to handle incoming HTTP requests. Methods in your contr

docs.spring.io

 

반응형
Comments