JSP에 반영한 내용이 확인되지 않을 때 조치방법

gentledot·2021년 4월 17일

개요

  • 최근에 화면 단에서 스크립트나 참조했던 파일을 다른 파일로 바꾸는 등의 작업을 진행하고 서버에 배포하였는데 정작 브라우저로 접속해보면 변경한 부분이 반영되어 있지 않아 곤혹스러웠던 경험을 겪였습니다.
  • 해당 문제는 브라우저의 캐시(cache)가 갱신되지 않아 종종 발생될 수 있는 문제라고 하더군요.
    • 참고로 캐시는 다음 방문 시 페이지를 빠르게 열 수 있도록 이미지 등 페이지의 일부를 기억합니다.
  • 브라우저 캐시로 인해 최신의 수정 상태를 확인할 수 없을 때 조치할 수 있는 방법들을 정리해보고자 합니다.

해결 방법!

브라우저 캐시 삭제

  • (chrome 기준) 브라우저에서 캐시 및 쿠키를 삭제하는 방법은 다음의 링크에서 확인할 수 있습니다.
  • 캐시로 인해 웹페이지가 최신 상태로 확인되지 않는 경우 client 측에서 정석적으로 대응할 수 있는 방법입니다.
  • 하지만 캐시 삭제를 하면 된다는 내용이 보편적인 지식이 아니기도 하며 수 많은 사용자가 쓰는 웹프로그램에 이런 증상이 발생된다면 문의가 들어올 때마다 일일히 "캐시를 지워주세요." 라고 대응하는 것도 한계가 있습니다.

브라우저 캐시 삭제가 아닌 방법들

1. 참조하는 파일의 주소를 변경한다

  • 참조하던 파일이나 스크립트가 동일 명칭인 경우에 서버에 반영하더라도 브라우저 상에서 확인이 되지 않는 경우가 발생됩니다.

  • 이 경우에 참조하던 파일의 명칭을 바꿔주면 다른 파일로의 교체가 발생되었기 때문에 캐시의 갱신이 발생되면서 최신 상태를 확인할 수 있습니다.

    • 하지만 매번 파일이 변경될 때마다 파일명칭을 바꾸는 것은 좋은 방법은 아닙니다.
  • 대신에 다음과 같이 파일을 불러오는 URI를 변경하는 것으로도 브라우저 캐시가 갱신됩니다.

    • URL 영역에 ?로 추가 구문을 붙여도 파일 참조에 다른 영향이 없습니다. (GET request 내 처리되는 parameter가 아니라면요)

      /* 다음과 같은 JS 파일을 참조하여 사용 중이라면... */
      /* <script src="main/js/view/core.js"></script> */
      
      /* 다음과 같이 파일 경로를 변경하면 캐시 갱신이 이뤄집니다. */
      <script src="main/js/view/core.js?ver=20210401"></script>

2. (Tomcat Server) JSP 파일의 서버 캐시 삭제

  • JSP 파일의 변경 내용이 확인되지 않는다면 tomcat 서버 내 .java -> .class로의 컴파일 과정이 정상적으로 되지 않아 발생되었을 수도 있습니다.
  • (tomcat 서버를 기준으로) JSP 캐시를 삭제하는 것으로 최신 상태를 확인할 수 있습니다.
    • 캐시가 생성되는 경로에 접근 : /work/Catalina/localhost/*root*/org/apache/jsp/WEB-INF/jsp가 위치한 폴더명
    • 다음 형식의 파일을 제거합니다.
      • *파일명*_jsp.class
      • *파일명*_jsp.java
  • 삭제된 캐시 파일은 해당 jsp를 호출하는 URI로 접근하게 되면 (request 할 때) 재생성됩니다.
profile
그동안 마신 커피와 개발 지식, 경험을 기록하는 공간

0개의 댓글