본문 바로가기
Front/jsp

JSP 성능 최적화 - 캐싱

by d-e-v-j 2024. 8. 5.
반응형

JSP(JavaServer Pages) 기반 애플리케이션의 성능을 최적화하지 않으면 느린 응답 시간과 높은 서버 부하를 경험할 수 있다. JSP 성능을 최적화하는 방법중 하나인 캐싱에 대하여 알아보자.

 


1.서버 사이드 캐싱

동적인 데이터가 자주 변경되지 않는다면, 서버 사이드 캐싱을 통해 데이터베이스 요청 수를 줄일 수 있다. 서블릿 필터를 사용하여 캐시를 구현할 수 있다.

public class CachingFilter implements Filter {
    private final Map<String, String> cache = new HashMap<>();

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        String url = httpRequest.getRequestURI();

        if (cache.containsKey(url)) {
            httpResponse.getWriter().write(cache.get(url));
        } else {
            CharResponseWrapper responseWrapper = new CharResponseWrapper(httpResponse);
            chain.doFilter(request, responseWrapper);
            String output = responseWrapper.toString();
            cache.put(url, output);
            httpResponse.getWriter().write(output);
        }
    }
}

 

2. 클라이언트 사이드 캐싱

클라이언트 브라우저에 캐시 헤더를 설정하여 정적 콘텐츠를 캐싱할 수 있다. 이를 통해 서버 요청 수를 줄이고 로딩 속도를 개선할 수 있다.

<%-- 클라이언트 캐싱을 위한 HTTP 헤더 설정 --%>
<%
response.setHeader("Cache-Control", "max-age=86400"); // 1일 동안 캐싱
%>

 

 

이 두가지 방식은 정적인 파일을 빠르게 로딩하기 위해서 도움이 되는 것이며, 개발중에 사용하게 되면 수정된 화면이 웹상에선 수정이 안되게 나오는 등 에러가 발생할 수있으니 최종 배포 때 고려해서 사용해야한다.

단순한 정적이미지 파일이 많을때 사용하면 성능을 많이 올릴 수 있다.

728x90
반응형
LIST

'Front > jsp' 카테고리의 다른 글

jqGrid 사용법  (0) 2024.12.04
CSS 자주 사용하는 속성들  (0) 2024.11.21