웹훅 직접 테스트

현재 디렉토리 정보:

현재 경로: /var/www/html/plugin/paypal_subscription/test

파일 경로: /var/www/html/plugin/paypal_subscription/test/simple_test.php

파일 존재 확인:

그누보드 설정 확인:

DB 호스트: localhost

DB 사용자: root

DB 이름: gnu

비밀번호: (빈 문자열)

데이터베이스 직접 연결:

❌ 데이터베이스 연결 실패: SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'

로그 파일 확인:

✅ 로그 디렉토리 존재: /var/www/html/plugin/paypal_subscription/test/../logs

로그 파일들:

최신 로그 내용 (마지막 1000자):

subscriptions\/I-WG97NKF4XKGK","rel":"edit","method":"PATCH","encType":"application\/json"},{"href":"https:\/\/api.sandbox.paypal.com\/v1\/billing\/subscriptions\/I-WG97NKF4XKGK","rel":"self","method":"GET","encType":"application\/json"},{"href":"https:\/\/api.sandbox.paypal.com\/v1\/billing\/subscriptions\/I-WG97NKF4XKGK\/suspend","rel":"suspend","method":"POST","encType":"application\/json"},{"href":"https:\/\/api.sandbox.paypal.com\/v1\/billing\/subscriptions\/I-WG97NKF4XKGK\/capture","rel":"capture","method":"POST","encType":"application\/json"}],"id":"I-WG97NKF4XKGK","plan_id":"P-0PB27241B3787273PNCN6YIQ","status":"ACTIVE","status_update_time":"2025-08-13T01:37:02Z"},"links":[{"href":"https:\/\/api.sandbox.paypal.com\/v1\/notifications\/webhooks-events\/WH-02J28655NL943390D-8FF44419GA6002847","rel":"self","method":"GET"},{"href":"https:\/\/api.sandbox.paypal.com\/v1\/notifications\/webhooks-events\/WH-02J28655NL943390D-8FF44419GA6002847\/resend","rel":"resend","method":"POST"}]}}

웹훅 URL 테스트:

구독 활성화 시뮬레이션

웹훅 URL: https://www.thinkocn.com/plugin/paypal_subscription/includes/webhook.php

디버그 웹훅 호출 테스트:

HTTP 응답: 200

응답 내용:

<p>[DEBUG] === 웹훅 디버깅 시작 ===</p>
<p>[DEBUG] Request Method</p>
<pre>&quot;POST&quot;</pre>
<p>[DEBUG] Raw payload length</p>
<pre>225</pre>
<p>[DEBUG] JSON decode result</p>
<pre>&quot;SUCCESS&quot;</pre>
<p>[DEBUG] Event Type</p>
<pre>&quot;BILLING.SUBSCRIPTION.ACTIVATED&quot;</pre>
<p>[DEBUG] Resource ID</p>
<pre>&quot;I-9FMY6D16NWL0&quot;</pre>
<p>[DEBUG] === 그누보드 환경 로드 시도 ===</p>
<p>[DEBUG] Checking path</p>
<pre>&quot;..\/..\/..\/..\/common.php&quot;</pre>
<p>[DEBUG] Path not found</p>
<pre>&quot;..\/..\/..\/..\/common.php&quot;</pre>
<p>[DEBUG] Checking path</p>
<pre>&quot;..\/..\/..\/common.php&quot;</pre>
<p>[DEBUG] Path exists, trying to include</p>
<pre>&quot;..\/..\/..\/common.php&quot;</pre>
<br />
<b>Warning</b>:  Constant _GNUBOARD_ already defined in <b>/var/www/html/config.php</b> on line <b>8</b><br />
<p>[DEBUG] Successfully loaded</p>
<pre>&quot;..\/..\/..\/common.php&quot;</pre>
<p>[DEBUG] === 그누보드 환경 확인 ===</p>
<p>[DEBUG] G5 table prefix</p>
<pre>&quot;NOT SET&quot;</pre>
<p>[DEBUG] DB connection</p>
<pre>&quot;SUCCESS&quot;</pre>
<p>[DEBUG] 기본 테이블 prefix 설정</p>
<pre>&quot;g5_&quot;</pre>
<p>[DEBUG] Checking table</p>
<pre>&quot;g5_subscription&quot;</pre>
<p>[DEBUG] Table exists</p>
<pre>&quot;YES&quot;</pre>
<p>[DEBUG] === 테스트 쿼리 실행 ===</p>
<p>[DEBUG] Test SQL</p>
<pre>&quot;SELECT COUNT(*) as cnt FROM g5_subscription&quot;</pre>
<p>[DEBUG] Row count</p>
<pre>&quot;2&quot;</pre>
<p>[DEBUG] Search SQL</p>
<pre>&quot;SELECT * FROM g5_subscription WHERE paypal_sub_id = &#039;I-9FMY6D16NWL0&#039;&quot;</pre>
<p>[DEBUG] Found subscription</p>
<pre>&quot;YES&quot;</pre>
<p>[DEBUG] Subscription data</p>
<pre>{
    &quot;id&quot;: &quot;1&quot;,
    &quot;mb_id&quot;: &quot;test_user&quot;,
    &quot;plan&quot;: &quot;premium&quot;,
    &quot;term&quot;: &quot;yearly&quot;,
    &quot;status&quot;: &quot;active&quot;,
    &quot;paypal_sub_id&quot;: &quot;I-9FMY6D16NWL0&quot;,
    &quot;paypal_plan_id&quot;: &quot;P-3MC99372MN303192FNCNWNAY&quot;,
    &quot;amount&quot;: &quot;12.00&quot;,
    &quot;currency&quot;: &quot;USD&quot;,
    &quot;start_date&quot;: &quot;2025-08-23 15:11:56&quot;,
    &quot;next_billing_date&quot;: &quot;2026-08-13 19:31:57&quot;,
    &quot;created_at&quot;: &quot;2025-08-13 10:31:57&quot;,
    &quot;updated_at&quot;: &quot;2025-08-23 15:11:56&quot;
}</pre>
<p>[DEBUG] Update SQL</p>
<pre>&quot;UPDATE g5_subscription SET \n                                   status = &#039;active&#039;,\n                                   start_date = NOW(),\n                                   updated_at = NOW()\n                                   WHERE paypal_sub_id = &#039;I-9FMY6D16NWL0&#039;&quot;</pre>
<p>[DEBUG] Update result</p>
<pre>&quot;SUCCESS&quot;</pre>
<p>[DEBUG] Member SQL</p>
<pre>&quot;SELECT mb_id, mb_level FROM g5_member WHERE mb_id = &#039;test_user&#039;&quot;</pre>
<p>[DEBUG] Member found</p>
<pre>&quot;NO&quot;</pre>
<p>[DEBUG] === 웹훅 디버깅 완료 ===</p>
{"status":"debug_complete","gnuboard_loaded":true,"timestamp":"2025-08-23T15:11:56+09:00"}
디버그 로그:
[2025-08-13 18:47:35] === 웹훅 디버깅 시작 ===
[2025-08-13 18:47:35] Request Method | "POST"
[2025-08-13 18:47:35] Raw payload length | 225
[2025-08-13 18:47:35] JSON decode result | "SUCCESS"
[2025-08-13 18:47:35] Event Type | "BILLING.SUBSCRIPTION.ACTIVATED"
[2025-08-13 18:47:35] Resource ID | "I-9FMY6D16NWL0"
[2025-08-13 18:47:35] === 그누보드 환경 로드 시도 ===
[2025-08-13 18:47:35] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-13 18:47:35] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-13 18:47:35] Checking path | "..\/..\/..\/common.php"
[2025-08-13 18:47:35] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-13 18:47:35] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-13 18:47:35] === 그누보드 환경 확인 ===
[2025-08-13 18:47:35] G5 table prefix | "NOT SET"
[2025-08-13 18:47:35] DB connection | "SUCCESS"
[2025-08-13 18:47:35] === 웹훅 디버깅 완료 ===
[2025-08-13 18:48:02] === 웹훅 디버깅 시작 ===
[2025-08-13 18:48:02] Request Method | "POST"
[2025-08-13 18:48:02] Raw payload length | 225
[2025-08-13 18:48:02] JSON decode result | "SUCCESS"
[2025-08-13 18:48:02] Event Type | "BILLING.SUBSCRIPTION.ACTIVATED"
[2025-08-13 18:48:02] Resource ID | "I-9FMY6D16NWL0"
[2025-08-13 18:48:02] === 그누보드 환경 로드 시도 ===
[2025-08-13 18:48:02] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-13 18:48:02] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-13 18:48:02] Checking path | "..\/..\/..\/common.php"
[2025-08-13 18:48:02] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-13 18:48:02] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-13 18:48:02] === 그누보드 환경 확인 ===
[2025-08-13 18:48:02] G5 table prefix | "NOT SET"
[2025-08-13 18:48:02] DB connection | "SUCCESS"
[2025-08-13 18:48:02] === 웹훅 디버깅 완료 ===
[2025-08-13 18:48:03] === 웹훅 디버깅 시작 ===
[2025-08-13 18:48:03] Request Method | "POST"
[2025-08-13 18:48:03] Raw payload length | 225
[2025-08-13 18:48:03] JSON decode result | "SUCCESS"
[2025-08-13 18:48:03] Event Type | "BILLING.SUBSCRIPTION.ACTIVATED"
[2025-08-13 18:48:03] Resource ID | "I-9FMY6D16NWL0"
[2025-08-13 18:48:03] === 그누보드 환경 로드 시도 ===
[2025-08-13 18:48:03] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-13 18:48:03] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-13 18:48:03] Checking path | "..\/..\/..\/common.php"
[2025-08-13 18:48:03] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-13 18:48:03] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-13 18:48:03] === 그누보드 환경 확인 ===
[2025-08-13 18:48:03] G5 table prefix | "NOT SET"
[2025-08-13 18:48:03] DB connection | "SUCCESS"
[2025-08-13 18:48:03] === 웹훅 디버깅 완료 ===
[2025-08-13 18:49:41] === 웹훅 디버깅 시작 ===
[2025-08-13 18:49:41] Request Method | "POST"
[2025-08-13 18:49:41] Raw payload length | 225
[2025-08-13 18:49:41] JSON decode result | "SUCCESS"
[2025-08-13 18:49:41] Event Type | "BILLING.SUBSCRIPTION.ACTIVATED"
[2025-08-13 18:49:41] Resource ID | "I-9FMY6D16NWL0"
[2025-08-13 18:49:41] === 그누보드 환경 로드 시도 ===
[2025-08-13 18:49:41] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-13 18:49:41] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-13 18:49:41] Checking path | "..\/..\/..\/common.php"
[2025-08-13 18:49:41] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-13 18:49:41] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-13 18:49:41] === 그누보드 환경 확인 ===
[2025-08-13 18:49:41] G5 table prefix | "NOT SET"
[2025-08-13 18:49:41] DB connection | "SUCCESS"
[2025-08-13 18:49:41] 기본 테이블 prefix 설정 | "g5_"
[2025-08-13 18:49:41] Checking table | "g5_subscription"
[2025-08-13 18:49:41] Table exists | "YES"
[2025-08-13 18:49:41] === 테스트 쿼리 실행 ===
[2025-08-13 18:49:41] Test SQL | "SELECT COUNT(*) as cnt FROM g5_subscription"
[2025-08-13 18:49:41] Row count | "1"
[2025-08-13 18:49:41] Search SQL | "SELECT * FROM g5_subscription WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-13 18:49:41] Found subscription | "YES"
[2025-08-13 18:49:41] Subscription data | {"id":"1","mb_id":"test_user","plan":"premium","term":"yearly","status":"active","paypal_sub_id":"I-9FMY6D16NWL0","paypal_plan_id":null,"amount":"12.00","currency":"USD","start_date":"2025-08-13 10:31:57","next_billing_date":null,"created_at":"2025-08-13 10:31:57","updated_at":"2025-08-13 10:31:57"}
[2025-08-13 18:49:41] Update SQL | "UPDATE g5_subscription SET \n                                   status = 'active',\n                                   start_date = NOW(),\n                                   updated_at = NOW()\n                                   WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-13 18:49:41] Update result | "SUCCESS"
[2025-08-13 18:49:41] Member SQL | "SELECT mb_id, mb_level FROM g5_member WHERE mb_id = 'test_user'"
[2025-08-13 18:49:41] Member found | "NO"
[2025-08-13 18:49:41] === 웹훅 디버깅 완료 ===
[2025-08-13 18:51:59] === 웹훅 디버깅 시작 ===
[2025-08-13 18:51:59] Request Method | "POST"
[2025-08-13 18:51:59] Raw payload length | 225
[2025-08-13 18:51:59] JSON decode result | "SUCCESS"
[2025-08-13 18:51:59] Event Type | "BILLING.SUBSCRIPTION.ACTIVATED"
[2025-08-13 18:51:59] Resource ID | "I-9FMY6D16NWL0"
[2025-08-13 18:51:59] === 그누보드 환경 로드 시도 ===
[2025-08-13 18:51:59] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-13 18:51:59] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-13 18:51:59] Checking path | "..\/..\/..\/common.php"
[2025-08-13 18:51:59] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-13 18:51:59] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-13 18:51:59] === 그누보드 환경 확인 ===
[2025-08-13 18:51:59] G5 table prefix | "NOT SET"
[2025-08-13 18:51:59] DB connection | "SUCCESS"
[2025-08-13 18:51:59] 기본 테이블 prefix 설정 | "g5_"
[2025-08-13 18:51:59] Checking table | "g5_subscription"
[2025-08-13 18:51:59] Table exists | "YES"
[2025-08-13 18:51:59] === 테스트 쿼리 실행 ===
[2025-08-13 18:51:59] Test SQL | "SELECT COUNT(*) as cnt FROM g5_subscription"
[2025-08-13 18:51:59] Row count | "1"
[2025-08-13 18:51:59] Search SQL | "SELECT * FROM g5_subscription WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-13 18:51:59] Found subscription | "YES"
[2025-08-13 18:51:59] Subscription data | {"id":"1","mb_id":"test_user","plan":"premium","term":"yearly","status":"active","paypal_sub_id":"I-9FMY6D16NWL0","paypal_plan_id":null,"amount":"12.00","currency":"USD","start_date":"2025-08-13 18:49:41","next_billing_date":null,"created_at":"2025-08-13 10:31:57","updated_at":"2025-08-13 18:49:41"}
[2025-08-13 18:51:59] Update SQL | "UPDATE g5_subscription SET \n                                   status = 'active',\n                                   start_date = NOW(),\n                                   updated_at = NOW()\n                                   WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-13 18:51:59] Update result | "SUCCESS"
[2025-08-13 18:51:59] Member SQL | "SELECT mb_id, mb_level FROM g5_member WHERE mb_id = 'test_user'"
[2025-08-13 18:51:59] Member found | "NO"
[2025-08-13 18:51:59] === 웹훅 디버깅 완료 ===
[2025-08-13 18:52:08] === 웹훅 디버깅 시작 ===
[2025-08-13 18:52:08] Request Method | "POST"
[2025-08-13 18:52:08] Raw payload length | 225
[2025-08-13 18:52:08] JSON decode result | "SUCCESS"
[2025-08-13 18:52:08] Event Type | "BILLING.SUBSCRIPTION.ACTIVATED"
[2025-08-13 18:52:08] Resource ID | "I-9FMY6D16NWL0"
[2025-08-13 18:52:08] === 그누보드 환경 로드 시도 ===
[2025-08-13 18:52:08] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-13 18:52:08] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-13 18:52:08] Checking path | "..\/..\/..\/common.php"
[2025-08-13 18:52:08] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-13 18:52:08] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-13 18:52:08] === 그누보드 환경 확인 ===
[2025-08-13 18:52:08] G5 table prefix | "NOT SET"
[2025-08-13 18:52:08] DB connection | "SUCCESS"
[2025-08-13 18:52:08] 기본 테이블 prefix 설정 | "g5_"
[2025-08-13 18:52:08] Checking table | "g5_subscription"
[2025-08-13 18:52:08] Table exists | "YES"
[2025-08-13 18:52:08] === 테스트 쿼리 실행 ===
[2025-08-13 18:52:08] Test SQL | "SELECT COUNT(*) as cnt FROM g5_subscription"
[2025-08-13 18:52:08] Row count | "1"
[2025-08-13 18:52:08] Search SQL | "SELECT * FROM g5_subscription WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-13 18:52:08] Found subscription | "YES"
[2025-08-13 18:52:08] Subscription data | {"id":"1","mb_id":"test_user","plan":"premium","term":"yearly","status":"active","paypal_sub_id":"I-9FMY6D16NWL0","paypal_plan_id":null,"amount":"12.00","currency":"USD","start_date":"2025-08-13 18:51:59","next_billing_date":null,"created_at":"2025-08-13 10:31:57","updated_at":"2025-08-13 18:51:59"}
[2025-08-13 18:52:08] Update SQL | "UPDATE g5_subscription SET \n                                   status = 'active',\n                                   start_date = NOW(),\n                                   updated_at = NOW()\n                                   WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-13 18:52:08] Update result | "SUCCESS"
[2025-08-13 18:52:08] Member SQL | "SELECT mb_id, mb_level FROM g5_member WHERE mb_id = 'test_user'"
[2025-08-13 18:52:08] Member found | "NO"
[2025-08-13 18:52:08] === 웹훅 디버깅 완료 ===
[2025-08-23 12:41:36] === 웹훅 디버깅 시작 ===
[2025-08-23 12:41:36] Request Method | "GET"
[2025-08-23 12:41:36] Raw payload length
[2025-08-23 12:41:36] === 그누보드 환경 로드 시도 ===
[2025-08-23 12:41:36] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-23 12:41:36] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-23 12:41:36] Checking path | "..\/..\/..\/common.php"
[2025-08-23 12:41:36] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-23 12:41:36] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-23 12:41:36] === 그누보드 환경 확인 ===
[2025-08-23 12:41:36] G5 table prefix | "NOT SET"
[2025-08-23 12:41:36] DB connection | "SUCCESS"
[2025-08-23 12:41:36] 기본 테이블 prefix 설정 | "g5_"
[2025-08-23 12:41:36] Checking table | "g5_subscription"
[2025-08-23 12:41:36] Table exists | "YES"
[2025-08-23 12:41:36] === 테스트 쿼리 실행 ===
[2025-08-23 12:41:36] Test SQL | "SELECT COUNT(*) as cnt FROM g5_subscription"
[2025-08-23 12:41:36] Row count | "2"
[2025-08-23 12:41:36] Search SQL | "SELECT * FROM g5_subscription WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-23 12:41:36] Found subscription | "YES"
[2025-08-23 12:41:36] Subscription data | {"id":"1","mb_id":"test_user","plan":"premium","term":"yearly","status":"active","paypal_sub_id":"I-9FMY6D16NWL0","paypal_plan_id":"P-3MC99372MN303192FNCNWNAY","amount":"12.00","currency":"USD","start_date":"2025-08-13 18:54:50","next_billing_date":"2026-08-13 19:31:57","created_at":"2025-08-13 10:31:57","updated_at":"2025-08-13 18:54:50"}
[2025-08-23 12:41:36] Update SQL | "UPDATE g5_subscription SET \n                                   status = 'active',\n                                   start_date = NOW(),\n                                   updated_at = NOW()\n                                   WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-23 12:41:36] Update result | "SUCCESS"
[2025-08-23 12:41:36] Member SQL | "SELECT mb_id, mb_level FROM g5_member WHERE mb_id = 'test_user'"
[2025-08-23 12:41:36] Member found | "NO"
[2025-08-23 12:41:36] === 웹훅 디버깅 완료 ===
[2025-08-23 15:11:56] === 웹훅 디버깅 시작 ===
[2025-08-23 15:11:56] Request Method | "POST"
[2025-08-23 15:11:56] Raw payload length | 225
[2025-08-23 15:11:56] JSON decode result | "SUCCESS"
[2025-08-23 15:11:56] Event Type | "BILLING.SUBSCRIPTION.ACTIVATED"
[2025-08-23 15:11:56] Resource ID | "I-9FMY6D16NWL0"
[2025-08-23 15:11:56] === 그누보드 환경 로드 시도 ===
[2025-08-23 15:11:56] Checking path | "..\/..\/..\/..\/common.php"
[2025-08-23 15:11:56] Path not found | "..\/..\/..\/..\/common.php"
[2025-08-23 15:11:56] Checking path | "..\/..\/..\/common.php"
[2025-08-23 15:11:56] Path exists, trying to include | "..\/..\/..\/common.php"
[2025-08-23 15:11:56] Successfully loaded | "..\/..\/..\/common.php"
[2025-08-23 15:11:56] === 그누보드 환경 확인 ===
[2025-08-23 15:11:56] G5 table prefix | "NOT SET"
[2025-08-23 15:11:56] DB connection | "SUCCESS"
[2025-08-23 15:11:56] 기본 테이블 prefix 설정 | "g5_"
[2025-08-23 15:11:56] Checking table | "g5_subscription"
[2025-08-23 15:11:56] Table exists | "YES"
[2025-08-23 15:11:56] === 테스트 쿼리 실행 ===
[2025-08-23 15:11:56] Test SQL | "SELECT COUNT(*) as cnt FROM g5_subscription"
[2025-08-23 15:11:56] Row count | "2"
[2025-08-23 15:11:56] Search SQL | "SELECT * FROM g5_subscription WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-23 15:11:56] Found subscription | "YES"
[2025-08-23 15:11:56] Subscription data | {"id":"1","mb_id":"test_user","plan":"premium","term":"yearly","status":"active","paypal_sub_id":"I-9FMY6D16NWL0","paypal_plan_id":"P-3MC99372MN303192FNCNWNAY","amount":"12.00","currency":"USD","start_date":"2025-08-23 15:11:56","next_billing_date":"2026-08-13 19:31:57","created_at":"2025-08-13 10:31:57","updated_at":"2025-08-23 15:11:56"}
[2025-08-23 15:11:56] Update SQL | "UPDATE g5_subscription SET \n                                   status = 'active',\n                                   start_date = NOW(),\n                                   updated_at = NOW()\n                                   WHERE paypal_sub_id = 'I-9FMY6D16NWL0'"
[2025-08-23 15:11:56] Update result | "SUCCESS"
[2025-08-23 15:11:56] Member SQL | "SELECT mb_id, mb_level FROM g5_member WHERE mb_id = 'test_user'"
[2025-08-23 15:11:56] Member found | "NO"
[2025-08-23 15:11:56] === 웹훅 디버깅 완료 ===