-
목차
캐시 시스템의 핵심 개념
워드프레스는 기본적으로 동적 콘텐츠를 매 요청마다 PHP + DB로 생성한다.
이로 인해 트래픽이 많을수록 서버 부하와 페이지 로딩 시간이 증가한다.
이를 해결하는 방식이 바로 캐시(Caching) 이다.캐시의 3대 계층
구분설명예시페이지 캐시 HTML 전체를 저장 WP Super Cache, LiteSpeed 객체 캐시 DB 쿼리 결과, 옵션 값 등 Redis, Memcached 브라우저 캐시 정적 파일을 클라이언트에 저장 CSS, JS, 이미지 등
1. 페이지 캐시 구성
역할
- 방문자가 요청한 페이지를 정적인 HTML로 저장
- PHP와 DB를 다시 거치지 않기 때문에 빠른 응답 제공
추천 플러그인
플러그인특징WP Super Cache 가장 널리 사용되는 무료 플러그인 LiteSpeed Cache 서버 연동 캐시 + 이미지 최적화 기능 포함 WP Rocket 사용자 인터페이스 우수 + 정적 자산 최적화 설정 팁
- 로그인 사용자, 장바구니 페이지, 마이페이지 등은 제외
- 모바일/PC 버전 분리 캐시 설정
- Cache Preload 기능 활용해 모든 페이지 미리 캐싱 가능
2. 객체 캐시 구성
역할
- DB 쿼리 결과, 옵션 값, 트랜지언트 등을 메모리에 저장
- 동일 요청 시 DB 접근 생략
사용 방식
- Redis 또는 Memcached 서버 설치
- wp-config.php 설정
php복사편집define('WP_CACHE_KEY_SALT', 'example.com:'); define('WP_REDIS_CLIENT', 'phpredis');추천 플러그인
- Redis Object Cache
- W3 Total Cache (객체 캐시 기능 포함)
주의 사항
- 객체 캐시는 동적 요청에만 유효
- 트랜지언트와 충돌 시 주기적 정리 필요
3. 브라우저 캐시 구성
역할
- 정적 파일(CSS, JS, 이미지 등)을 클라이언트 단에서 캐싱
- 재방문 시 서버 요청 없이 빠르게 로딩
.htaccess 설정 예 (Apache 기준)
apache복사편집<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpeg "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" </IfModule>NGINX 설정 예
nginx복사편집location ~* \.(js|css|png|jpg|jpeg|gif|ico|webp)$ { expires 30d; access_log off; }
고급 캐시 조합 전략 예시
페이지페이지 캐시객체 캐시브라우저 캐시홈, 글 보기 사용 사용 사용 장바구니, 결제 제외 사용 사용 관리자 화면 제외 사용 사용
4. 캐시 무효화 전략
- 콘텐츠 수정 → 캐시 자동 삭제 필요
- WP Rocket, LiteSpeed Cache 등은 수정 시 자동 캐시 삭제 가능
- 게시글 외 커스텀 작업 시 수동 삭제 코드 필요
php복사편집wp_cache_flush();또는 특정 포스트만 삭제:
php복사편집wp_cache_delete( 'post_' . $post_id, 'posts' );
5. 캐시 모니터링과 디버깅
Query Monitor 플러그인
- 쿼리 수, 캐시 여부, 로딩 시간 등 확인 가능
- 캐시된 항목과 캐시 미스 항목 구분 가능
Object Cache Stats 플러그인
- Redis hit/miss 확인 가능
- 캐시 효율 분석
캐시 구성 체크리스트
항목완료 여부페이지 캐시 플러그인 설치 및 활성화 예 / 아니오 로그인/장바구니 페이지 캐시 제외 처리 예 / 아니오 Redis 또는 Memcached 설치 및 연동 예 / 아니오 브라우저 캐시 설정 적용 (.htaccess/NGINX) 예 / 아니오 캐시 무효화 로직 확인 또는 자동화 예 / 아니오 캐시 효율 분석 툴 설치 예 / 아니오 '워드프레스' 카테고리의 다른 글
왜 블록 에디터 UX를 확장해야 할까? (0) 2025.05.22 ⚙️ 왜 워드프레스 운영 자동화가 필요할까? (1) 2025.05.17 📦 왜 블록 개발이 중요한가? (1) 2025.05.15 🛒 WooCommerce의 성능과 전환율은 왜 중요한가? (3) 2025.05.13 🌟 블록 테마(Block Theme)란? (2) 2025.05.08 🚀 워드프레스 백엔드 성능이 중요한 이유 (1) 2025.05.07 🔍 기본 워드프레스 검색의 한계 (0) 2025.05.06 🔧 왜 플러그인을 구조화해야 할까? (1) 2025.05.05