-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cache-Control 설정을 통한 파일 캐싱 최적화 완료 #432
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
파일 캐싱 작업 잘 살펴보았습니다!
- 캐시 보관을 하루로 두어 max-age가 잘 설정됨을 확인했습니다. max-age를 넘지 않았다면 서버에 요청없이 저장된 캐시에서 파일을 바로 사용하니 시간이 많이 단축되는군요.
- max-age를 넘어버린 경우에는 last-modified를 확인해 파일정보가 수정이 되지 않았다면 캐시에 저장된 파일을 지속적으로 사용하고 304를 반환함을 확인했습니다.
한 가지 질문이 있습니다. 캐싱 방법에 대해 찾아보니, last modified말고도 e-tag 방식이 있던데 last modified를 선택하신 이유가 있으신가요?
제가 이해한 내용은 다음과 같습니다. e-tag 방식은 데이터 내용에 고유하게 태그를 달아 이를 기준으로 변경여부를 판단하여 정밀도가 높다고 합니다. 특히 last modified 방식의 한계인 초 단위보다 더 짧은 시간 안에 변경이 일어나면 캐시를 유지한다는 점과 시간동기화 문제를 e-tag로 극복할 수 있습니다. 다만 e-tag를 계산하고 비교하는데 걸리는 시간이 last-modified 방식에 비해 오래 걸린다는 단점이 있습니다.
제 개인적인 생각으로는 e-tag도 충분히 좋은 선택지인 것 같은데(정밀도, 정확도 측면에서 더 우수하다는 점), last-modified를 선택하신 이유가 궁금합니다.
좋은 지적을 해주셔서 감사합니다. 말씀하신 것처럼 e-tag 방식은 높은 정밀도와 정확도를 제공하는 훌륭한 캐싱 방법입니다. 그러나 저희 플랫폼에서 1. 변경 가능성이 적은 파일: 우리 플랫폼에 업로드되는 파일은 대부분 변경 가능성이 적습니다. 파일이 업로드될 때 이미 랜덤한 파일명을 가지기 때문에, 동일한 파일에 대해 캐싱되어도 실제로 변경된 파일이 다시 업로드될 확률이 낮습니다. 2. e-tag의 필요성 감소: 3. 성능 고려: 이러한 이유들로 인해 |
응답 헤더들을 여러 번 봐왔지만, 많은 헤더들을 각각 어떻게 사용해야 하고, 어떤 방식으로 사용해야 하는지 모르고 있었어서 부끄럽지만 개발 시에는 여러가지 헤더들을 무시한 채로 진행했었는데, 이번에 올려주신 Cache-Control 설정을 yml파일에서도 할 수 있고, 그게 좀 더 간단하지 않나? 라는 의문을 가졌으나, |
네, 맞습니다. |
Summary
이 PR은 Cache-Control 설정을 추가하여 서버에서 제공하는 파일의 캐싱을 최적화하는 작업을 포함합니다. 이를 통해 파일 접근 시 성능을 향상시키고, 불필요한 서버 요청을 줄여 서버 부하를 감소시킵니다.
Tasks
Screenshot
Log