WordPress 디버깅: 알아야 할 모든 것 가이드

게시 됨: 2023-06-27

모든 코딩 프로젝트에서 가장 약한 고리는 당신 입니다. 즉, 인적 오류는 거의 항상 보장되며 버그 및 기타 문제의 형태로 발생합니다. 이들 중 어느 것도 라이브 사이트에 적용되는 것을 원하지 않을 것입니다. 이것이 WordPress 디버깅이 프로젝트 중에 필요한 단계인 이유입니다.

실제로 WordPress에는 자체 디버그 모드가 포함되어 있어 플랫폼으로 작업할 때 도움이 될 수 있습니다. 이를 플랫폼 외부 디버거와 결합하면 어둠 속에 숨어 있는 모든 것을 잡을 수 있는 강력한 시스템을 갖게 됩니다.

이번 포스팅에서는 🔎 워드프레스 디버깅을 살펴보고 설정하는 방법을 알려드리겠습니다. 하지만 먼저 WordPress 디버깅과 다른 유형의 버그 잡기가 어떻게 다른지 살펴보겠습니다. 거기에서 WordPress 사용 방법을 보여주기 전에 WordPress에 자체 디버그 시스템이 필요한 이유를 설명합니다.

WordPress 디버깅과 일반 코드 디버깅의 차이점

물론 WordPress는 PHP를 사용하여 다른 많은 웹 응용 프로그램과 마찬가지로 내부적으로 거의 모든 것을 실행합니다. 그러나 WordPress 디버깅은 특정 구조 및 생태계로 인해 일반적인 코드 디버깅과 다를 수 있습니다.

WordPress 디버깅과 일반 코드 디버깅의 주요 차이점은 오류를 보는 방법입니다. WordPress는 프런트엔드의 플랫폼과 관련된 오류 메시지를 표시합니다. 반대로 일반적인 코드 디버깅은 종종 터미널 또는 전용 코드 편집기 내에서 발생합니다.

디버거를 실행하는 Intellij IDEA IDE.

또 다른 차이점은 디버깅 프로세스를 돕기 위해 WordPress 관련 기능을 사용한다는 것입니다. WordPress는 콘텐츠 관리 시스템(CMS)과 상호 작용하는 데 사용할 자체 기능 집합을 제공합니다. 이는 일반적인 PHP 함수와 다르며 디버깅에 사용하려면 특정 접근 방식을 취해야 합니다.

전체적으로 WordPress 디버깅과 일반 코드 디버깅의 차이점은 WordPress의 특정 구조와 생태계에 있습니다. 따라서 문제를 효과적으로 디버깅하기 위해 플랫폼이 제공하는 것과 함께 WordPress의 아키텍처를 이해해야 합니다.

WordPress 디버깅에 특정 프로세스가 필요한 이유

WordPress는 핵심 PHP만 사용하지 않습니다. 또한 테마 및 플러그인 형태로 외부 PHP를 실행합니다. 타사 개발을 이러한 모든 연결 방식과 결합하면 모든 코드를 함께 메시할 때 버그가 발생할 수 있습니다. 이와 같이 WordPress는 개발 중에 이러한 문제를 근절하는 데 도움이 되는 자체 디버깅 도구를 제공합니다.

이해해야 할 또 다른 영역(전용 WordPress 디버깅이 필요한 이유에 영향을 미침)은 핵심 파일 및 폴더 구조입니다. 예를 들어, 테마 생성은 오류의 원인을 찾기 위해 라인 스캔을 수행할 때 문제가 될 수 있는 템플릿 계층 구조에 의존합니다.

WordPress 템플릿 계층 구조의 개요입니다.
이미지 크레디트: WordPress.org

또한 워드프레스의 디자인은 좋은 사용자 경험(UX)을 기반으로 합니다. 전용 WordPress 디버깅 프로세스는 사용자 친화적인 오류 보고의 필요성을 고려합니다. 코드 편집기 내에서 복잡한 스택 추적을 사용하는 대신 WordPress는 프런트엔드에 명확한 오류 메시지를 표시합니다.

웹사이트 프런트엔드의 WordPress 오류.

UX와 관련하여 WordPress는 작업 흐름을 보다 효율적이고 안전하게 만드는 데 도움이 되는 일련의 사용자 지정 기능을 제공합니다. 결과적으로 WordPress의 특정 디버깅 프로세스는 이러한 기능과 플랫폼과 상호 작용하는 방식을 이해해야 함을 의미합니다.

전반적으로 WordPress에는 복잡한 생태계, UX 및 사용자 정의 기능에 중점을 둡니다. 이 모든 것에는 자체 디버그 모드가 필요합니다. 다음 섹션에서는 이 기능을 켜는 방법을 살펴보겠습니다.

WordPress의 디버그 모드를 켜는 방법(및 기능)

wp-config.php 파일을 통해 WordPress의 디버그 모드를 켤 수 있습니다. 이 작업을 수행하는 방법에 대한 빠른 가이드가 있으며 1분 이상 걸리지 않습니다. 그러나 알고 싶고 잠재적으로 사용할 수 있는 몇 가지 모드가 있습니다.

  • WP_DEBUG . WordPress의 기본 디버그 모드입니다. 플랫폼 내에서 일반적인 디버깅을 가능하게 합니다.
  • WP_DEBUG_LOG . 이 모드는 모든 PHP 오류, 경고 및 알림을 wp-content 디렉토리의 debug.log 파일에 저장합니다. 프런트엔드에 나타나지 않는 찾기 어려운 문제를 식별하는 데 유용합니다.
  • WP_DEBUG_DISPLAY . 이 모드는 프런트엔드에 모든 PHP 오류, 경고 및 알림을 표시합니다. 테마 및 플러그인의 문제를 식별하는 데 유용하지만 깨진 것 같지 않은 요소에 대한 메시지를 표시할 수도 있습니다. 예를 들어 잘못된 데이터 유효성 검사 규칙에 대한 알림이 자주 표시됩니다.

이 세 가지 기능은 서로 얽혀 있을 수 있으므로 최적의 안전한 방법으로 사용하려면 주의를 기울여야 합니다. 예를 들어 오류를 debug.log 파일에 저장하기 위해 WP_DEBUGWP_DEBUG_LOG 켜고 싶을 때가 많습니다. 그러나 WP_DEBUG_DISPLAY 끄지 않으면 프런트엔드에 이러한 오류를 표시하는 것이 UX에 좋지 않습니다.

빵과 버터 명령을 넘어 다른 문서에서 다루는 다른 상수를 활성화할 수도 있습니다.

  • SCRIPT_DEBUG . 성능상의 이유로 WordPress는 축소된 CSS 및 JavaScript 파일을 사용하지만 디버깅하기에는 악몽이 될 수 있습니다. SCRIPT_DEBUG 켜면 WordPress는 최적화되지 않은 파일 개발 버전을 대신 사용합니다.
  • SAVEQUERIES . 이렇게 하면 모든 데이터베이스 쿼리가 배열에 저장되므로 사이트 성능에 영향을 미치는 느리거나 비효율적인 쿼리를 식별하는 데 도움이 됩니다.

WordPress는 플러그인이 없는 플랫폼이 아닙니다. 따라서 WordPress 디버깅을 지원하는 유용한 플러그인이 많이 있습니다. 다음으로 몇 가지를 살펴보겠습니다.

개발 중 WordPress 디버깅 플러그인 사용

플러그인은 오류를 조사하는 데 도움이 되는 무기고의 일부여야 합니다. 실제로 디버깅에 대한 WordPress의 공식 문서에는 몇 가지 권장 옵션이 포함되어 있습니다.

예를 들어 쿼리 모니터는 실행하는 쿼리에 대한 자세한 정보를 제공합니다. 이것은 성능 문제를 일으키는 쿼리를 식별하는 데 도움이 되는 환상적인 방법입니다.

디버그 표시줄은 WordPress 관리 표시줄에 디버그 메뉴를 추가합니다. 이를 통해 디버깅 정보에 항상 액세스할 수 있으며 PHP 오류, 데이터베이스 쿼리 및 HTTP 요청에 대한 자세한 정보가 포함됩니다.

WordPress는 많은 사용자 지정 함수와 상수를 사용하기 때문에 지원 중단 여부를 계속 확인하고 싶을 것입니다. Log Deprecated Notices 플러그인은 WordPress에서 사용되지 않는 기능, 후크 또는 인수의 사용을 식별(및 기록)합니다. 플러그인을 사용하여 최신 WordPress 표준으로 코드를 최신 상태로 유지할 수 있습니다.

그러나 WordPress 디버깅을 돕기 위해 설치할 수 있는 더 많은 플러그인이 있습니다. 환상적인 옵션 중 하나는 Simply Show Hooks입니다.

이 플러그인을 사용하면 페이지가 실행하는 모든 후크를 볼 수 있습니다. WordPress가 페이지에서 사용하는 후크를 한 눈에 볼 수 있기 때문에 자주 사용하는 플러그인이 될 것입니다. 그러면 버그에 대한 초기 사냥을 줄일 수 있습니다.

올인원 솔루션 이상의 플러그인을 찾으려면 DebugPress가 좋은 선택이 될 수 있습니다.

이 플러그인은 PHP 오류, 데이터베이스 쿼리 및 HTTP 요청을 포함하는 실시간 디버깅 정보를 제공합니다. 또한 서버측 오류를 모니터링하기 위한 실시간 콘솔도 포함되어 있습니다.

WordPress 디버그 모드의 초기 인스턴스화를 반자동화할 수 있습니다. 이것이 바로 훌륭한 WP 디버깅 플러그인의 목적입니다.

wp-config.php 파일을 열 필요 없이 사용 가능한 모든 디버그 상수에 대한 기본 상태를 설정할 수 있습니다. WordPress의 플러그인 메뉴 내에서 빠른 활성화 및 비활성화를 통해 전환할 수 있습니다.

WordPress 디버깅 플러그인 선택

WordPress 디버깅 플러그인을 선택할 때 마지막 업데이트 시간과 같은 플러그인 품질 메트릭은 그다지 중요하지 않습니다. 이는 일정한 전류 코드베이스가 필요하지 않은 작업을 자주 수행하기 때문입니다.

예를 들어 Log Deprecated Notices는 2021년에 마지막 업데이트가 있습니다. 그러나 그럼에도 불구하고 여전히 WordPress 개발자에게 권장되는 플러그인입니다. 따라서 플러그인이 의도한 대로 작동하고 추가 문제를 일으키지 않는다면 디버깅 목적으로 플러그인을 사용하는 것이 좋습니다.

애플리케이션 성능 모니터링(APM)의 이점

APM 도구를 사용하면 WordPress 웹사이트의 성능을 포함하는 애플리케이션의 성능을 모니터링할 수 있습니다. 자세한 성능 정보에는 응답 시간, 오류율 등이 포함됩니다.

APM 도구와 디버깅에는 공통점이 많지 않은 것처럼 보일 수 있습니다. 그러나 이것은 시나리오에 따라 일부 디버깅 작업을 완화하는 데 도움이 될 수 있습니다. 또한 먼저 디버깅한 다음 APM을 사용하여 해당 성능을 유지할 수 있습니다.

WordPress 디버깅과 관련하여 APM 도구에는 여러 가지 이점이 있습니다.

  • WordPress 웹 사이트에서 성능 병목 현상을 식별할 수 있습니다. 실시간 분석은 웹 사이트 속도를 저하시킬 수 있는 모든 문제를 식별할 수 있음을 의미합니다.
  • APM 도구는 사이트 성능을 최적화하는 데 도움이 될 수 있습니다. 이를 통해 대상을 개선하고 전반적인 성능을 업그레이드할 수 있습니다.
  • 주요 성능 메트릭을 모니터링하여 웹 사이트의 상태에 영향을 미칠 수 있는 모든 문제를 식별할 수 있습니다.
  • APM 도구는 WordPress 웹사이트의 보안 문제를 식별하는 데에도 도움이 됩니다. 트래픽 및 사이트 활동을 모니터링하여 보안 문제를 나타낼 수 있는 비정상적이거나 의심스러운 동작을 발견할 수 있습니다.

WordPress에 적합한 몇 가지 APM 도구가 있습니다. 예를 들어 Kinsta에는 자체 APM 도구가 있고 WP Engine은 New Relic의 APM을 서비스에 통합합니다.

일반적으로 APM 도구는 WordPress 웹 사이트의 UX를 개선하고 디버깅 작업에 영향을 줄 수 있습니다. 대체품은 아니지만 APM은 버그 수정이 최적인지 여부와 코드를 개선할 수 있는 부분을 확인하는 데 도움이 될 수 있습니다.

WordPress 디버깅에 도움이 되는 팁

이 게시물의 초점은 WordPress 디버깅에 있습니다. 이를 염두에 두고 디버깅 세션을 개선하는 데 도움이 되는 6가지 팁을 제공합니다.

  1. 정적 코드 분석으로 시작
  2. 디버깅 도구 활용
  3. 발견한 각 버그를 분류하십시오.
  4. 가능한 모든 버그를 찾기 위해 이진 검색을 역추적하고 수행합니다.
  5. 각각의 새 코드 스위트 다음에 디버거 실행
  6. 버그를 스쿼시하기보다는 문제 해결을 모색하십시오.

1. 정적 코드 분석으로 시작

정적 코드 분석은 코드를 실행하지 않고 분석하는 곳입니다. 당신의 목표는 잠재적인 오류와 취약점을 식별하는 것입니다. 도구를 사용하는 것이 더 효율적이지만 줄 단위 스캔을 통해 이 작업을 수행할 수 있습니다. PHP CodeSniffer 또는 PHP Mess Detector 모두 여기에서 잘 작동하며 전자도 JetBrains 편집 도구의 일부입니다.

이러한 도구는 WordPress 웹사이트의 성능과 보안에 영향을 미칠 수 있는 코딩 표준 위반, 사용되지 않는 코드 및 기타 잠재적인 문제를 식별하는 데 도움이 될 수 있습니다. 일반적으로 개발 환경에 설치하고 코드베이스에 대해 실행합니다. 생성된 보고서에는 잠재적인 문제가 요약되어 있습니다. 이를 통해 문제를 식별하고 수정할 수 있습니다.

정적 코드 분석으로 시작하면 개발 프로세스 초기에 잠재적인 문제를 조기에 제거할 수 있습니다. 이렇게 하면 문제를 해결하기가 더 어려워지고 시간이 많이 걸리기 전에 WordPress 웹 사이트가 제대로 작동하는지 확인할 수 있습니다.

2. 디버깅 도구에 의존

디버깅 도구에 대해 말하자면 언어나 CMS 플랫폼에 관계없이 거의 필수적입니다. 당신을 도울 수 있는 다양한 훌륭한 플러그인이 있기 때문에 WordPress의 경우 특히 그렇습니다. 그러나 타사의 플랫폼 외부 도구도 가치를 제공합니다.

대부분의 경우 디버깅 도구를 사용하면 사이트를 더 깊이 이해할 수 있습니다. 이를 통해 성능 최적화, UX 개선 및 보안 강화와 관련하여 더 많은 정보에 입각한 결정을 내릴 수 있습니다.

3. 발견한 각 버그를 분류하십시오.

디버깅과 관련된 일상적인 관리 작업 중 하나는 발생하는 각 버그를 분류하는 것입니다. 이는 문제의 근본 원인을 식별하고 최상의 해결 방법을 결정하는 데 도움이 될 수 있습니다.

여기에서 문제의 심각도, UX에 미치는 영향, 수정의 복잡성과 같은 여러 요소를 고려하는 것이 좋습니다. 예를 들어 위험, 심각, 경미 또는 외관과 같은 심각도 수준 시스템을 사용할 수 있습니다. 이를 통해 웹사이트 기능 및 UX에 미치는 영향을 기반으로 어떤 버그를 먼저 해결할지 우선순위를 정할 수 있습니다.

버그를 분류하는 또 다른 방법은 유용성, 기능 또는 보안과 같은 범주를 사용하는 것입니다. 이를 통해 버그가 웹사이트의 특정 영역에 어떤 영향을 미치는지 식별할 수 있습니다. 결과적으로 문제의 근본 원인과 문제를 해결하는 최선의 접근 방식을 더 쉽게 결정할 수 있습니다.

또한 이러한 정보를 저장하기 위해 특별한 시스템이 필요하지 않습니다. 스프레드시트가 제대로 작동합니다. 코드 편집기 또는 색상 코딩과 같은 IDE(통합 개발 환경) 내에 시스템이 있을 수도 있습니다.

4. 가능한 모든 버그를 찾기 위해 역추적하고 이진 검색을 수행합니다.

"역추적"은 버그가 처음 나타난 위치를 식별하기 위해 단계를 역추적하는 것입니다. 최근 코드 변경 사항을 보거나 이전 코드 베이스를 테스트하거나 로그를 검토할 수 있습니다. 이는 디버깅 프로세스를 간소화하여 모든 잠재적인 문제를 해결할 수 있는 좋은 방법입니다.

마찬가지로 이진 검색은 특히 복잡한 문제를 처리할 때 WordPress 디버깅에 유용한 기술이 될 수 있습니다. 여기에는 버그의 위치를 ​​식별하기 위해 체계적인 방법으로 코드베이스의 다른 부분을 테스트하는 것이 포함됩니다. 코드의 특정 섹션을 분리하고 테스트를 실행한 후 다음 섹션으로 이동하여 문제의 범위를 좁힐 수 있습니다.

이는 버그를 식별하고 해결 방법을 찾는 효율적인 방법입니다. 보다 우연한 디버깅 접근 방식에 비해 시간과 노력을 절약할 수 있습니다. 더 좋은 점은 이것이 더 큰 코드베이스나 더 복잡한 문제에 더 나은 접근 방식일 수 있다는 것입니다.

그러나 이진 검색은 모든 잠재적인 문제를 테스트하고 평가하기 위해 체계적이고 조직적인 접근 방식이 필요합니다. 따라서 식별한 문제를 쉽게 재현하고 수정할 수 있으므로 문서화는 중요합니다.

5. 각각의 새로운 코드 세트 후에 디버거 실행

변경 사항을 정기적으로 저장하는 것과 마찬가지로 모든 전체 코드 스위트 후에 디버거를 실행하는 습관을 가져야 합니다. 물론 계속 진행하기 전에 의도한 대로 코드가 작동하는지 확인하고 싶을 것입니다.

여기에서 가장 큰 이점 중 하나는 버그가 계속 남아 있지 않다는 것입니다. 이렇게 하면 문제가 눈덩이처럼 불어나 개발이 진행됨에 따라 수정하기가 더 어려워지는 것을 방지할 수 있습니다.

그러나 이 접근 방식은 특히 대규모 코드베이스나 중요하지 않은 문제의 경우 시간을 잡아먹을 수 있습니다. 이로 인해 디버거 실행을 중요한 코드 변경으로만 제한하거나 코드베이스에서 문제가 더 많은 영역으로 제한할 수 있습니다.

6. 버그를 스쿼시하기보다는 문제를 해결하려고 합니다.

WordPress 디버깅과 관련하여 단순히 "버그 스쿼시"에서 문제 해결로 초점을 전환하는 것이 도움이 될 수 있습니다. 즉, 오류가 발생할 때 단순히 대응하는 것이 아니라 문제를 식별하고 해결하기 위해 보다 적극적인 접근 방식을 취하는 것을 의미합니다.

시작하려면 문제의 근본 원인을 찾은 다음 단순히 문제의 즉각적인 증상을 수정하는 것이 아니라 그 원인을 해결하기 위해 노력하십시오. 여기에는 향후 유사한 문제가 발생하지 않도록 코드베이스의 특정 섹션을 재작업하거나 새로운 개발 관행을 채택하는 것이 포함될 수 있습니다.

이 접근 방식은 프로젝트의 전반적인 품질과 안정성을 개선하고 향후 문제의 가능성을 줄이며 UX를 향상시킬 수 있습니다. 또한 이 접근 방식은 개발 프로세스에서 개선 영역을 식별하는 데 도움이 될 수 있으며, 이는 보다 효율적이고 효과적인 개발 사례로 이어질 것입니다.

맨 위로 이동

결론 🧐

즉, WordPress 디버깅은 플랫폼을 사용하여 작업에 영향을 미치는 코드 오류를 보고합니다. 또한 대부분의 경우 일부 전용 플러그인을 사용하여 문제를 알려줍니다. 실제로 WordPress를 디버그하는 옵션은 Xdebug와 같은 일반적인 디버그 도구와 나란히 사용할 수 있습니다.

좋은 소식은 WordPress와 관련하여 서투른 통합 프로세스가 없다는 것입니다. wp-config.php 파일로 작업하고 부울 값을 사용하여 디버거(및 로그)를 켤 수 있습니다. 이렇게 하면 자주 얻을 수 있는 것보다 더 자세한 정보와 함께 관련된 오류가 표시됩니다. 거기에서 버그를 수정하고 사이트를 완성에 가깝게 만들 수 있습니다.

WordPress 디버깅에 대한 질문이나 경험한 시나리오가 있습니까? 아래 댓글 섹션에서 알려주세요!