문제 해결을 위한 7 WordPress 디버깅 도구

워드프레스는 일반적으로 소프트웨어 개발 환경에 비해 오류 발생률이 낮은 통제된 환경을 제공하지만, 예외적인 상황이나 예상치 못한 문제가 발생할 여지는 항상 존재합니다.

일반적으로 도구가 제공하는 유연성이 클수록 잠재적인 오류 발생 가능성도 높아진다고 할 수 있습니다.

특히 워드프레스의 경우, 높은 유연성으로 인해 오류가 발생할 가능성이 많습니다. 워드프레스는 기능 확장을 위한 개방형 플러그인 구조를 가지고 있으며, 웹 서버, 호스팅 제공업체, 데이터베이스 관리 시스템, 네트워크 등 다양한 요소들이 복합적으로 작용합니다. 이러한 구성 요소들은 각각 독립적으로 문제 발생의 원인이 될 수 있습니다.

발생 가능한 문제 유형으로는 느린 성능, 부정확하거나 손상된 콘텐츠, 오류 메시지 등이 있으며, 최악의 경우에는 웹사이트가 완전히 작동을 멈추는 ‘화이트 스크린 오브 데스(WSoD)’ 현상이 발생하여 즉각적인 조치가 필요할 수 있습니다.

아주 작은 성능 문제, 예를 들어 2초 미만의 지연 시간조차도 검색 엔진 결과에서 웹사이트의 SEO 전략과 순위에 부정적인 영향을 미칠 수 있습니다. 특히 모바일 사용자에게 빠른 응답 속도가 매우 중요해짐에 따라, 이는 곧 방문자 수 감소로 이어질 수 있습니다.

따라서 웹사이트가 제대로 작동하지 않는다고 느껴질 때마다 문제를 해결할 수 있는 도구를 갖추는 것이 중요합니다. 설령 웹사이트가 정상적으로 작동하더라도, 성능이나 사용성을 개선할 여지는 항상 존재합니다.

디버깅이란 무엇인가?

디버깅은 개발자가 프로그램 내에서 오류(버그라고도 함)를 찾아내고 수정하는 과정입니다. 이 과정은 프로그램 실행 중에 프로그램 내부에서 어떤 일이 일어나는지 확인할 수 있도록 도와주는 특수 도구를 활용하여 진행됩니다.

때로는 디버깅 작업에서 가장 어려운 부분은 오류를 일으키는 정확한 구성 요소, 코드, 또는 명령을 파악하는 것입니다. 이를 위해 개발자는 마치 의사가 진단을 내리는 것과 유사한 과정을 거칩니다. 즉, 증상을 분석하고 필요에 따라 문제의 원인을 식별하기 위한 추가적인 조사를 수행합니다. 의료 연구에 해당하는 소프트웨어 개발 분야의 도구는 웹사이트의 내부 작동 정보를 제공하는 모니터링 도구입니다.

이제 몇 가지 디버깅 옵션을 살펴보겠습니다.

WP_DEBUG 모드

워드프레스에는 디버깅을 지원하는 기능이 내장되어 있지만, 종종 간과되곤 합니다. WP_DEBUG는 워드프레스가 활성화될 때 디버그 모드를 작동시키는 ‘플래그’입니다. WP_DEBUG를 활성화하면 웹사이트의 모든 활동을 기록하는 로그 파일이 생성됩니다. 이 로그를 분석함으로써 워드프레스 웹사이트에서 제대로 작동하지 않는 부분을 찾아낼 수 있습니다.

WP_DEBUG를 활성화하려면, wp-config.php 파일을 편집하고 웹사이트가 모든 활동을 로그에 기록하도록 지시하는 코드를 추가해야 합니다. 이 과정은 모든 사용자에게 쉬운 작업은 아닙니다. wp-config.php 파일을 편집할 때는 특히 주의해야 합니다. 잘못된 줄이나 문자가 추가될 경우 웹사이트가 작동을 멈출 수 있기 때문입니다. 또한, 작업을 시작하기 전에 항상 사이트와 파일을 백업해두는 것이 중요합니다. 문제가 발생하면 백업을 복원하여 모든 것을 정상 상태로 되돌릴 수 있습니다.

wp-config.php 파일을 편집하려면, 호스팅 제공업체의 파일 관리자를 사용하거나 FTP 클라이언트를 이용하여 파일을 다운로드한 후, 선호하는 텍스트 편집기로 파일을 엽니다. 이 파일은 워드프레스 설치의 기본 디렉토리에 위치해 있습니다. 파일을 열었으면, WP_DEBUG가 정의된 라인을 찾습니다. 일반적으로 다음과 같이 표시됩니다.

define( 'WP_DEBUG', false );

만약 해당 라인이 없다면, 다음 주석을 찾아보세요.

/* That’s all, stop editing! Happy blogging. */

해당 주석 위에 다음 코드를 추가하세요. 아래의 명령은 오류를 웹사이트에 표시하지 않고 기록만 하도록 지시하기 때문에, 공개적으로 운영되는 웹사이트에 유용합니다.

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

파일을 저장한 후, FTP를 사용했다면 사이트에 업로드합니다. 그런 다음, 오류를 발생시키거나(또는 오류가 발생할 때까지 기다린 후) debug.log 파일을 확인합니다. 이 파일은 워드프레스 설치의 wp-content 폴더에서 찾을 수 있습니다. 텍스트 편집기로 파일을 열고 웹사이트의 문제를 나타내는 오류 메시지를 찾아보세요.

디버깅 작업이 완료되면, wp-config.php 파일에서 추가하거나 변경했던 모든 코드에서 “true” 값을 “false”로 변경하여 로깅 기능을 비활성화해야 합니다.

WPDB 오류 보고 기능

웹사이트의 데이터베이스에 문제가 발생했다고 의심되거나 데이터베이스가 문제의 원인이라고 판단되는 경우, WPDB 오류 보고 기능을 활성화할 수 있습니다. 이 기능 또한 약간의 코딩이 필요합니다. 오류 보고 기능을 활성화하면, 데이터베이스 오류 메시지를 웹사이트 화면에 표시하도록 설정할 수 있습니다.

방문자 화면에 오류 메시지가 나타나는 것을 원치 않는다면, 실제 웹사이트에서는 이 기능을 활성화하지 않는 것이 좋습니다. 대신, 스테이징 웹사이트(아래 설명 참조)를 사용하여 모든 것을 테스트하는 것을 추천합니다.

마치 엑스레이 판독에 의학 지식이 필요한 것처럼, 오류 보고서나 로그를 이해하기 위해서는 어느 정도의 기술 지식이 필요합니다. 프로그래밍, 네트워킹 또는 데이터베이스 관련 전문 용어를 해독해야 하지만, 이를 통해 웹사이트에 영향을 미치는 근본적인 문제를 찾고, 특정 문제 해결에 도움을 줄 수 있는 전문가를 찾을 수 있습니다.

데이터베이스 오류 보고서 생성을 시작하려면, wp-config.php 파일에 다음 코드를 추가하세요(디버깅 로그를 생성하기 위해 앞에서 설명한 것과 동일한 방식으로):

define( 'SAVEQUERIES', true);

이 값을 true로 설정하면, 데이터베이스는 웹사이트에서 수행하는 모든 쿼리를 저장하기 시작합니다. 그 후, 각 페이지 요청으로 발생한 쿼리 수와 각 요청에 사용된 명령을 검사할 수 있습니다. 쿼리를 화면에 표시하는 한 가지 방법은, 테마 PHP 파일에 다음 코드를 추가하는 것입니다.

global $wpdb;
print_r( $wpdb->queries );

디버깅 작업이 완료되면, 웹사이트를 정상 작동 상태로 되돌리기 위해 이 코드를 제거해야 합니다.

스테이징 웹사이트 활용

스테이징 웹사이트는 실제 웹사이트의 복제본으로, 변경 사항이나 새로운 기능을 적용하기 전에 테스트할 수 있는 환경을 제공합니다. 또한, 스테이징 웹사이트는 실제 사용자에게 영향을 주지 않고 웹사이트 문제를 디버깅하거나 성능을 모니터링할 수 있는 좋은 방법입니다.

스테이징 웹사이트는 실제 웹사이트의 콘텐츠와 구조를 정확하게 반영해야 합니다. 워드프레스 사이트를 새로운 콘텐츠나 플러그인 또는 테마와 같은 추가 기능으로 업데이트할 때마다, 스테이징 사이트 또한 실제 사이트의 최신 복사본으로 업데이트해야 합니다. 이렇게 하면 실제 웹사이트에서 문제가 발생할 경우, 스테이징 환경에서 문제를 재현할 수 있습니다.

많은 관리형 워드프레스 호스팅 제공업체는 유료 플랜에 스테이징 사이트 기능을 제공합니다. 이는 스테이징 환경을 구축하는 가장 사용자 친화적인 방법입니다. 하지만 호스팅 제공업체가 이러한 기능을 제공하지 않는 경우, WP Staging 플러그인을 사용하여 스테이징 사이트를 만들 수 있습니다. 이 플러그인을 사용하면 웹사이트를 쉽게 복제하고 복제본을 실제 웹사이트와 동일하게 사용할 수 있습니다. 또한, 화면 상단의 주황색 막대를 통해 현재 스테이징 환경에서 작업 중인지 쉽게 알 수 있습니다.

만약 기술적인 부분에 익숙하다면, 호스팅 계정에서 하위 도메인을 추가하여 수동으로 스테이징 사이트를 만들 수도 있습니다. 하지만 이 과정은 다소 복잡할 수 있으므로, 워드프레스 초보자의 경우에는 다른 옵션을 사용하는 것을 추천합니다.

쿼리 모니터

이름에서 알 수 있듯이 쿼리 모니터는 단순히 쿼리를 모니터링하는 것 이상의 기능을 제공합니다. 스크립트, 스타일시트, API 호출, 데이터베이스 쿼리, PHP 오류 등 다양한 요소를 디버깅할 수 있는 워드프레스용 개발자 패널입니다. 고급 기능을 활용하면 Ajax 호출을 디버깅하고 사용자 기능 검사를 수행할 수도 있습니다.

쿼리 모니터 플러그인을 설치하고 활성화하면, 웹사이트 동작에 대한 유용한 정보를 제공하기 시작합니다.

예를 들어, 실행된 기능, 플러그인 또는 테마별로 그룹화된 집계된 데이터베이스 쿼리 정보를 보여줍니다. 관리자 도구 모음 메뉴는 현재 페이지의 실시간 통계와 함께 문제 해결에 필요한 디버깅 정보를 제공합니다.

쿼리 모니터를 사용하면, 플러그인 또는 테마별로 범위를 점진적으로 좁혀가며 웹사이트의 성능을 저하시키거나 오작동을 일으키는 버그를 찾을 수 있습니다. 쿼리 모니터는 워드프레스와 마찬가지로 완전 무료 오픈 소스 플러그인입니다.

이전에 Firebug로 알려졌던 파이어폭스 개발자 도구는 최신 개발 기능과 도구를 제공하는 Firefox의 특별 버전입니다. 워드프레스에만 국한된 도구는 아니지만, 웹사이트를 디버깅하는 데 매우 유용합니다.

Firefox 개발자 도구와 널리 사용되는 Chrome DevTools를 비교하는 것은 피할 수 없습니다. Firefox 개발자 도구의 가장 큰 특징은 견고한 레이아웃입니다. 예를 들어, 요소를 마우스 오른쪽 버튼으로 클릭하여 검사기 탭을 표시할 수 있으며, 웹 콘솔은 객체를 출력할 때 이름뿐만 아니라 객체에 대한 자세한 정보를 제공합니다. 또한, 특정 유형에 대한 추가 정보를 제공하여 객체의 속성을 자세히 조사하고 DOM 요소에 대한 풍부한 정보를 제공합니다.

검사기 도구를 사용하면 페이지의 HTML과 CSS를 검사하고 수정할 수 있습니다. Firefox에서 로컬로 페이지를 로드하거나 Android용 Firefox와 같은 원격 장치에서 페이지를 로드할 수 있습니다.

웹 콘솔은 JavaScript, 네트워크 요청, CSS, 경고, 오류 메시지 및 JavaScript 코드에 의해 기록된 정보 메시지 등 웹 페이지와 관련된 모든 정보를 표시합니다. 또한, 페이지 컨텍스트에서 JavaScript 표현식을 직접 실행하여 웹 페이지와 상호 작용할 수 있습니다.

New Relic

APM(Application Performance Monitoring) 업계에서 선두를 달리고 있는 New Relic은 전 세계 수천 명의 개발자들이 소프트웨어 제품의 성능을 분석하기 위해 매일 사용하는 상용 도구입니다. New Relic은 제3자가 추가 기능을 사용할 수 있도록 플러그인 아키텍처를 제공하여 다양한 기술을 모니터링할 수 있도록 지원합니다.

New Relic은 호스트당 월 $9.37에서 $200의 가격으로 제공되는 전문적인 디버깅 솔루션입니다. 사용법을 배우는 데 시간과 노력이 필요하므로, 솔루션 비용 외에도 추가적인 학습 시간이 필요할 수 있습니다. New Relic 사용자는 APM 및 인프라 모니터링을 위한 애플리케이션에 쉽게 통합된다는 점에 높은 만족도를 보입니다.

Kinsta는 MyKinsta 대시보드에서 New Relic을 쉽게 통합할 수 있는 기능을 제공합니다.

디버그 바

디버그 바는 다양한 디버깅 정보를 보여주는 워드프레스 관리자 표시줄의 디버그 메뉴를 통해 접근할 수 있는 플러그인입니다. 디버그 바는 콘솔, 단축 코드, 상수, 포스트 유형, cron, 작업 및 필터, 임시, 원격 요청, 목록 스크립트 및 스타일 종속성과 같은 다양한 옵션을 제공합니다. 이 플러그인은 오픈 소스이므로 무료로 사용할 수 있습니다.

디버그 바 플러그인은 워드프레스에서 제공하는 내장 디버깅 플래그인인 WP_DEBUG 및 SAVEQUERIES와 함께 작동하며, 기본 기능을 확장합니다. 이러한 플래그가 활성화되면 디버그 바는 PHP 경고 및 MySQL 쿼리와 같은 유용한 정보를 제공하여 로그 파일을 검색하고 읽어야 하는 번거로움을 덜어줍니다.

디버그 바 메뉴의 각 옵션은 고유한 디버깅 기능을 제공합니다. 예를 들어, 콘솔은 임의의 PHP 코드를 실행할 수 있는 환경을 제공하며, 변수의 내용을 확인하는 데 유용합니다. Cron 탭은 다음 이벤트 시간, 예약된 이벤트 수, 사용자 정의 예약 이벤트 목록과 같은 워드프레스 예약 이벤트에 대한 정보를 표시합니다. 작업 및 필터 탭은 현재 요청에 연결된 후크 정보를 보여줍니다. 작업 탭에는 현재 요청과 관련된 작업이 표시되고, 필터 탭에는 각 태그에 연결된 기능과 함께 모든 필터 태그가 표시됩니다.

모두를 위한 디버깅

대부분의 디버깅 도구는 소프트웨어 개발 전문가를 위해 설계되었지만, 워드프레스 블로그를 운영하는 사용자는 사이트를 모니터링하고 디버깅하는 방법에 대한 기본적인 지식을 갖추는 것이 유용합니다. 이를 통해 개발자가 문제의 원인을 파악하는 데 도움이 되는 정보를 제공할 수 있으며, 필요하다면 스스로 문제를 파악하여 전문가의 도움을 받을지 여부를 결정하는 데 도움이 될 수 있습니다.

워드프레스 전문가가 되어 수익을 창출하는 몇 가지 방법에 대해 알아보세요.