반응형
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 |