워드프레스 객체 캐시 설정하기 (Object cache)

워드프레스 사이트 속도 개선

페이지 로딩 속도가 느려지는 문제가 다 해결이 된 줄 알았습니다. phpMyAdmin 을 통해 wp_option autoload 부분을 다 정리해주었기 때문에 문제 없다고 생각했습니다. 그런데 오늘 또 재발이 되었습니다. 페이지 로딩이 매우 느려진 것입니다. 할 수 없이 또 플러그인을 정리하고 phpMyAdmin 으로 DB 를 정리해주려고 했으나 정리할 것이 없었습니다. 왜 느려진 걸까. 통째로 워드프레스를 새로 만들어서 옮겨야하나 고민하기도 했습니다.

이런 저런 고민을 하다가 chatGPT 하고 대화를 하다가 object cache 를 설정해보라는 권유를 듣고 시도해보았고 바로 문제가 해결되었습니다. 오히려 그 전보다 페이지 로드 속도가 더 빨라졌습니다. 캐시의 역할이 정말 중요하긴 하구나 실감한 하루였습니다.

워드프레스의 객체 캐시 (object cache) 를 설정하는 방법을 다음에 필요할 것 같아 기록으로 남겨둡니다.



객체 캐시란 무엇일까요?

워드프레스는 페이지를 보여줄 때 데이터베이스(DB)에서 수많은 정보를 불러와서 처리합니다. 예를 들어 wp_posts에서 글 목록 가져오기,
wp_options에서 사이트 설정 불러오기, wp_postmeta에서 글별 추가 정보 불러오기 등이 있습니다. 이 과정에서 DB 쿼리가 매번 반복되면 사이트가 느려집니다. 객체 캐시는 이 문제를 해결하기 위해 나온 개념입니다. DB에서 가져온 데이터를 메모리(RAM)에 임시 저장해 두고, 다음 요청 때 DB를 거치지 않고 바로 꺼내 쓰는 기술입니다. 즉, DB 조회 횟수를 줄여서 사이트 속도를 크게 올려주는 기능입니다.

따라서 객체 캐시를 통해 DB 쿼리를 줄여 페이지 로딩이 빨라지고, 서버 부하가 줄어서 트래픽이 많아도 안정적이 됩니다. 특히 동적 페이지 (로그인, 장바구니, 게시판 등) 에서 효과가 큽니다.

객체 캐시는 다음과 같은 작동원리를 가지고 있습니다. 먼저 사용자가 페이지 요청하면 워드프레스가 DB에서 데이터를 가져옵니다. 이 때 데이터를 객체 캐시(Memcached, Redis 등) 에 저장합니다. 이 후 같은 데이터가 다음 요청 시 캐시에서 바로 제공됩니다. 즉, DB → PHP → 사용자 전달 과정 중 DB 단계를 생략하도록 만드는 것입니다.

물론, 워드프레스 자체도 객체 캐시 기능은 있습니다. 하지만 서버 메모리(RAM)에 바로 저장하려면 Memcached나 Redis 같은 외부 캐시 서버를 사용해야 합니다. 이 외부 캐시를 쉽게 연결하도록 도와주는 플러그인이 LiteSpeed Cache, W3 Total Cache 등 입니다.

워드프레스 객체 캐시 설정하는 방법 (Memcached LiteSpeed Cache 설정)

제가 작업하는 환경을 먼저 말씀드리겠습니다. 저는 워드프레스 웹 호스팅을 AWS lightsail 에서 하고 있습니다. 또 캐시 플러그인으로 LiteSpeed Cache 를 사용 중입니다.

위 사진은 wp-admin 로그인 후 LiteSpeedCache 클릭 후 객체 탭에 들어가면 나오는 사진입니다. 처음 객체 캐시를 설정하지 않았을 때는 ‘연결 테스트 : 실패’ 라고 나옵니다.

Memcached 확장 : 활성화됨
Redis 확장 : 비활성화됨
연결 테스트: 실패

host 는 127.0.0.1, port 는 11211 로 두고, 연결테스트에서 성공해야 하는데, 다음과 같은 과정을 거치면 됩니다.

Memcached 설치

AWS lightsail instance 에 접속하여 SSH 로 들어갑니다. 다음 명령어를 입력합니다.

sudo apt update
sudo apt install memcached libmemcached-tools

  • 명령어 의미 : 새로 설치할 프로그램(Memcached 등)을 최신 버전으로 받기 위해 우분투 패키지 저장소에서 최신 패키지 목록을 먼저 업데이트하고 Memcached 캐시 서버프로그램과 libmemcached-tools 이라는 테스트/관리용 유틸리티 (정상 작동 확인용 도구) 까지 설치한다는 의미입니다.

설치가 끝나면 Memcached 자동 실행을 확인합니다. 다음 명령어를 입력합니다.

sudo systemctl enable memcached
sudo systemctl start memcached

  • 명령어 의미 : ‘enable’ 은 서버가 재부팅될 때 자동으로 Memcached 실행되도록 설정하는 의미이며, ‘start’ 는 지금 당장 Memcached 서비스를 실행하라는 명령입니다. 매번 수동 실행할 필요 없이 서버 켜질 때 자동 시작하도록 하기 위함입니다.
Memcached 상태 확인

다음 명령어를 입력하여 상태를 확인합니다.

systemctl status memcached

  • 명령어 의미 : 현재 Memcached 서비스가 켜져 있는지, 실행 중인지 확인

그러면 다음과 같은 문구가 나옵니다.

● memcached.service – memcached daemon
Loaded: loaded (/lib/systemd/system/memcached.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-09-13 06:15:55 UTC; 2min 59s ago

Active: active (running) 이라고 나오므로 Memcached 서비스가 정상적으로 실행 중이라는 의미입니다.

PHP용 Memcached 확장 설치

Bitnami PHP에 맞는 확장 설치가 필요합니다. SSH 에 다음 명령어를 입력합니다.

sudo apt install php-memcached

  • 명령어 의미 : PHP에서 Memcached와 통신할 수 있도록 해주는 드라이버(확장 모듈) 설치하는 것입니다. WordPress는 PHP 기반이라, PHP가 Memcached와 직접 연결 가능해야 하기 때문입니다.

설치 후 PHP 를 재시작 합니다. 저는 Apache를 사용하므로 다음 명령어를 입력합니다.

sudo /opt/bitnami/ctlscript.sh restart apache

  • 명령어 의미 : Apache 서버를 재시작해서 새로 설치된 PHP 확장을 적용하기 위함입니다. PHP 확장은 서버 재시작을 해야만 로딩됩니다.

(만일 Nginx + php-fpm 사용하신다면 다음 명령어를 입력하세요.)

sudo /opt/bitnami/ctlscript.sh restart php-fpm

최종 확인단계입니다. 다음 명령어를 입력하여 memcached가 나오면 성공입니다.

php -m | grep memcached

  • 명령어 의미 : 현재 PHP에 로드된 모듈 목록(php -m)에서 memcached라는 글자가 있는지 검색하라는 명령입니다. PHP가 Memcached 확장을 인식했는지 최종 확인 단계입니다.
WordPress 연결 설정

wp-config.php 파일을 수정해야 하는데, 우선 WordPress 설치 경로를 먼저 확인합니다. 다음 명령어를 입력하세요.

sudo find /opt/bitnami -name wp-config.php

  • 명령어 의미 : /opt/bitnami 경로 아래에서 wp-config.php라는 파일을 찾아달라는 명령입니다. Lightsail + Bitnami 환경에서는 워드프레스 위치가 다를 수 있기 때문에 정확한 경로를 확인하기 위함입니다.

그랬더니 다음 내용이 나왔습니다. ‘/opt/bitnami/wordpress/wp-config.php’

경로를 알았으므로 wp-config.php 을 나노편집기를 통해 수정하겠습니다. 다음 명령어를 입력하면 나노편집기를 통해 파일을 수정할 수 있습니다.

sudo nano /opt/bitnami/wordpress/wp-config.php

wp-config.php 파일에 WP_CACHE 추가 해야합니다. 나노편집기를 통해 wp-config.php 을 열었으면 <?php 바로 아래쪽, 다른 define 문 근처에 다음 코드를 추가하면 됩니다. 이미 존재하면 true로 바꿔주시면 됩니다.

define( 'WP_CACHE', true );

  • 코드 의미 : WordPress가 캐시를 쓰도록 define(‘WP_CACHE’, true); 설정 추가해야 합니다.

Ctrl + O 를 누른 뒤 Enter 를 누르면 저장된 것입니다. 이 후 Ctrl + X 를 눌러 나노편집기를 빠져나옵니다.

이 후 LiteSpeedCache 를 들어가서 객체 캐시 부분을 다시 확인해보면 ‘연결 테스트 : 통과’ 로 나올 것입니다. 객체 캐시 설정이 완료된 것입니다.

객체 캐시 적용 후 효과

‘쿼리 모니터’ 라는 플러그인으로 페이지 로드 속도를 지켜보고 있는데, 평상시 잘 나올 때 0.3~0.5 초 정도 걸렸습니다. 이번에 갑자기 페이지 속도가 느려진 후 페이지 로드하는데 20초~40초씩 걸리게 되었습니다. 하지만 객체 캐시를 적용한 후 속도가 0.1~0.2초로 현저하게 빨라진 것을 체감할 수 있었습니다.

댓글 남기기