데이터베이스 모니터링과 알림
Query Monitor 플러그인, 슬로우 쿼리 로그, DB 크기 모니터링, Make.com 웹훅을 통한 자동 알림 시스템을 구축합니다.
왜 데이터베이스를 모니터링해야 하는가?
데이터베이스 성능이 사이트 속도를 결정한다
WordPress 사이트의 모든 페이지는 데이터베이스 쿼리를 통해 생성됩니다. 하나의 페이지를 로드하는 데 평균적으로 20~100개 이상의 SQL 쿼리가 실행됩니다. 플러그인이 많을수록, 커스텀 기능이 많을수록 쿼리 수는 기하급수적으로 증가합니다.
데이터베이스 모니터링이 중요한 이유:
1. 느린 쿼리 발견 - 하나의 비효율적인 쿼리가 전체 사이트를 느리게 만들 수 있습니다. 특히 인덱스가 없는 컬럼에 대한 검색이나 대용량 테이블의 풀 스캔은 치명적입니다.
2. 리소스 사용량 추적 - 데이터베이스 크기가 커질수록 백업 시간, 쿼리 응답 시간, 메모리 사용량이 증가합니다. 정기적인 모니터링으로 문제를 사전에 감지할 수 있습니다.
3. 보안 위협 감지 - 비정상적인 쿼리 패턴은 SQL 인젝션 시도를 나타낼 수 있습니다. 모니터링을 통해 보안 위협을 조기에 발견할 수 있습니다.
4. 용량 관리 - wp_postmeta, wp_options의 비대화, 만료된 transient 축적, 리비전 과다 등을 감시하여 데이터베이스를 건강하게 유지합니다.
Query Monitor 플러그인
WordPress 최고의 디버깅 도구
Query Monitor는 WordPress 개발자에게 필수적인 무료 디버깅 플러그인입니다. 페이지 로드 시 실행되는 모든 데이터베이스 쿼리, PHP 오류, HTTP 요청, 훅 실행 순서 등을 실시간으로 분석합니다.
설치: 관리자 → 플러그인 → 새로 추가 → "Query Monitor" 검색 → 설치 → 활성화
Query Monitor가 보여주는 정보:
- Queries - 모든 SQL 쿼리 목록, 실행 시간, 호출자(caller)
- Queries by Component - 플러그인/테마별 쿼리 분류
- Duplicate Queries - 중복 실행된 쿼리
- Slow Queries - 느린 쿼리 (기본 0.05초 이상)
- Errors - 실패한 쿼리
- PHP Errors - PHP 경고, 주의 사항
- Hooks & Actions - 실행된 훅 순서
- HTTP API Calls - 외부 HTTP 요청
- Transients - 트랜지언트 API 사용
- Environment - PHP, MySQL, WordPress 환경 정보
Query Monitor로 문제 찾기
느린 쿼리 식별:
"Slow Queries" 탭에서 0.05초 이상 걸리는 쿼리를 확인합니다. 각 쿼리의 "Caller" 컬럼을 보면 어떤 플러그인/테마/함수에서 호출했는지 알 수 있습니다.
중복 쿼리 해결:
"Duplicate Queries" 탭은 동일한 쿼리가 여러 번 실행되는 경우를 보여줍니다. 이는 캐싱이 제대로 되지 않거나, 코드에서 같은 데이터를 반복 요청하는 것입니다. 객체 캐시나 정적 변수 캐싱으로 해결할 수 있습니다.
N+1 쿼리 문제:
루프 안에서 개별적으로 쿼리를 실행하면 데이터 수만큼 쿼리가 발생합니다. 예: 100개의 글 목록에서 각 글의 메타를 개별 조회하면 100개의 추가 쿼리가 실행됩니다. update_meta_cache()나 wp_cache_get_multiple()로 일괄 조회해야 합니다.
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.