오늘은 워드프레스 속도 개선을 위한 방안의 하나로 오브젝트 캐시를 살펴보고 워드프레스 사이트에 오브젝트 캐시 적용 방법을 살펴보도록 하겠습니다.
간단히 워드프레스 캐시 종류를 알아보고 이중에서 조금 생소한 개념이 오브젝트 캐시를 이해하고 이 오브젝트 캐시 성능을 높여 워드프레스 속도 개선하는 방법을 알아봅니다.
워드프레스 캐시 종류
워드프레스 사이트 이용자가 요청하는 정보가 처리되는 과정을 이해하기 위해서 데이타가 흐르는 플로우를 간단히 그린 다이어그램을 보시죠.
- 사용자 측면에서는 크롬과 같은 브라우저에서 처리할 수 있는 브라우저 캐시가 있습니다.
이 브라우캐시는 한번 사이트를 방문 후 방문 페이지의 데이타를 브라우저 캐시에 저장해 놓음으로써 추가 방문 시 빠른 속도로 접속할 수 있습니다. - 웹 서버에서는 사용자가 요구했던 페이지 구성 정보를 저장해 놓아 도 다른 사용자가 그 페이지를 요청하면 추가 작업할 필요없이 바로보여줄 수 있게 만든 페이지 캐시로 반응 속도를 크게 높일 수 있습니다.
- 페이지 구성을 위해 PHP에서 데이타베이스에 접속해 필요 정보를 받아온 결과를 저장해 놓은 것이 오브젝트 캐시입니다.
이중에서 브라우저 캐시는 사용자 측면에 일어나는 것이고, 페이지 캐시와 오브젝트 캐시는 서버 측면에서 일어나는 일입니다.
페이지 캐시 – FastCgi 캐시
페이지 캐시는 서버측면에서는 일반적으로는 Nginx에서 제공하는 FastCgi 캐시를 사용합니다.
서버를 직접 제어할 수 없는 호스팅을 사용해 워드프레스 사이트를 운영한다면 워드프레스 캐스 플러그인을 사용할 수 있습니다. WP Rocket과 같은 플러그인이 그것이죠.
일반적으로 우리가 알고있는 워드프레스 캐시 플러그인보다는 FastCgi 캐시와 같은 서버 측면의 캐시가 훨씬 더 효율적이라고 알려져 있습니다.
오브젝트 캐시
PHP와 Mysql 데이타베이스간 이루어지는 데이타에 대해서는 이미 PHP 자체에서 제공하는 Opcache와 워드프레스 자체에서 제공하는 오브젝트 캐시가 각기 작동합니다.
그러나 이러한 캐시 프로그램들은 웹서버 + Mysql + 워드프레스 CMS간 이루어지는 다양한 데이트 요청을 충분하게 캐시하지 못합니다. 특히 우커머스와 같은 데이타 요청이 많은 경우 성공율이 크게 낮아집니다.
이렇게 웹서버 + Mysql + 워드프레스 CMS간 데이타 요청 결과를 저장하는 오브젝트 캐시 효율을 높이기 위해서 Redis와 같은 특별한 캐시 프로그램을 사용해 효율을 높입니다.
오브젝트 캐시, Redis 설치 및 사용법
위에서 이야기한대 오브젝트 캐시 효율을 높이기 위한 Redis 사용법에 대해서 살펴봅니다.
이 캐시는 PHP와 Mysql간 데이타를 제어하는 것이니 크게 워드프레스 운영자가 크게 신경쓸 여지가 적습니다.
서버단에서 Redis를 사용할 수 있도록 패키지를 설치해주고, 관련 워드프레스 플러그인을 설치, Redis를 사용토록 설정하기만 하면 됩니다. 나머지는 알아서 하겠죠.
우분투 서버에서 Redis 패키지 설치
우분투 서버에서 Redis를 사용할 수 있도록 Redis 패키지 설치 후 php7.4-fpm을 다시 가동시킵니다. 이는 아래 명령을 사용합니다.
sudo apt install redis-server
sudo service php7.4-fpm restart
Code language: PHP (php)
Redis 지원 워드프레스 플러그인 설치
앞에서 서버에 설치한 Redis가 워드프레스 데이타를 효율적으로 캐시할 수 있도옥 워드프레스 명령들을 Redis와 연계시켜주는 워드프렛 플러그인을 설치합니ㅏㄷ.
이러한 워드프레스 플러그인은 WP Redis와 Redis Object Cache가 있는데요. 오브젝트 캐시를 소개하는 전문가들은 이 두 플러그인중에서 Redis Object Cache를 추천하고 있습니다.
Redis 플러그인 설정
이 Redis Object Cache 사용법은 아주 단순합니다. 설정에서 Enable Object cache 버튼을 눌러 활성화 시켜 주기만 하면 됩니다.