👋 Hello, I am Seung-ho Ham

🧑🏻‍💻 A Developers who create code that changes the world

카테고리 없음

[DEV] 웹 서버 업로드 오류(캐시) 확인하기

Potato_H 2021. 7. 12. 18:10
반응형

https://wccoding.tistory.com/m/91

 

[DEV] 웹 서버 업로드 오류

웹 페이지를 개발할 때 나는 index파일이 html인 파일만 가지고 개발을 했었다. html 파일은 css나 js파일을 수정하면서 웹 브라우저에서 열어서 쉽게 수정본을 확인할 수 있다. 하지만 내가 맡은 홈

www.danieldevel.info

 

웹 페이지를 개발할 때, 나는 주로 HTML 파일을 사용하여 개발을 진행했다.

 

HTML 파일은 CSS나 JS 파일을 수정하면서 웹 브라우저에서 쉽게 열어 볼 수 있어, 수정 사항을 바로 확인할 수 있다는 장점이 있다.

 

그러나 이번에 내가 맡은 프로젝트에서 문제가 발생했다. 웹 서버에 파일을 업로드했는데, 변경 사항이 반영되지 않는 오류가 생긴 것이다.

 

 

오류의 원인을 찾기 위해 여러 가지를 점검해 보았다. 파일명, 경로 등 기본적인 것들을 모두 확인했지만, 별다른 문제를 찾을 수 없었다.

 

결국 다른 개발자들의 도움을 받아 문제를 해결하기로 했다.

 

 

우선, 캐시에 대해 이해할 필요가 있었다.

 

캐시는 데이터를 미리 복사해 놓는 임시 저장 장소를 의미한다.

 

데이터를 빠르게 접근할 수 있도록 미리 저장해 두는 방식으로, 캐시는 데이터 접근 시간을 줄여주는 중요한 역할을 한다.

 

캐시를 사용하지 않을 경우, 데이터 접근 시간이 오래 걸리거나 값을 다시 연산해야 하는 상황이 발생할 수 있다.

 

예를 들어, 데이터가 원래 저장된 장소에서 접근하는 데 시간이 많이 걸린다면, 캐시를 통해 더 빠른 속도로 데이터를 이용할 수 있게 된다.

 

 

내가 겪었던 문제는 웹 브라우저의 캐시 때문이었다.

 

웹 브라우저는 자주 접근하는 데이터를 캐시에 저장해 두어, 이후에 같은 데이터를 요청할 때 더 빠르게 불러올 수 있게 한다.

 

그러나 이로 인해 문제가 발생할 수 있다. 서버에 업로드한 최신 파일이 아닌, 캐시에 저장된 이전 버전의 파일을 불러오는 상황이 발생한 것이다.

 

그래서 내가 새로고침을 해도 여전히 이전 모습이 보였던 것이다.

 

 

이 문제를 해결하기 위해 먼저 브라우저의 캐시를 지우는 방법을 시도했다.

 

대부분의 브라우저에서는 설정 메뉴에서 캐시를 지울 수 있는 옵션을 제공한다.

 

캐시를 삭제한 후 다시 웹 페이지를 새로고침하니, 서버에 업로드한 최신 파일이 정상적으로 반영되었다.

 

또한, 강력 새로고침(Ctrl + F5) 기능을 사용하여 브라우저가 캐시를 무시하고 서버에서 최신 파일을 받아오도록 할 수도 있다.

 

 

캐시 문제를 해결한 후, 나는 앞으로 이런 문제가 재발하지 않도록 몇 가지 예방 조치를 취했다.

 

먼저, 중요한 파일을 업데이트할 때마다 브라우저 캐시를 지우는 절차를 습관화했다.

 

그리고 HTML 파일에 버전 정보를 추가하여, 브라우저가 항상 최신 파일을 받아오도록 했다.

 

예를 들어, <script src="app.js?v=1.2">처럼 파일명에 버전 정보를 추가하면, 파일이 업데이트될 때마다 브라우저가 새로운 파일로 인식하게 된다.

 

 

또한, 서버 측에서도 캐시 제어 헤더를 설정하여 브라우저가 최신 파일을 캐싱하도록 유도할 수 있다. Cache-Control 헤더를 통해 파일의 유효 기간을 설정하거나, 변경될 가능성이 있는 파일은 캐싱하지 않도록 설정할 수 있다.

 

이번 경험을 통해 웹 개발에서 캐시의 중요성과 그 관리 방법을 깊이 이해하게 되었다.

 

캐시는 성능 향상에 큰 도움이 되지만, 잘못 관리하면 개발 과정에서 예기치 않은 문제를 일으킬 수 있다.

 

따라서 캐시를 적절히 관리하고, 필요할 때는 이를 무시하고 최신 데이터를 받아오는 방법을 알고 있어야 한다. 앞으로도 이런 문제를 예방하기 위해 더욱 신경 써서 개발을 진행해야겠다고 다짐했다.