{
  "issueId": "4364",
  "environment": "dev",
  "generatedAt": "2026-10-27T23:58:00+09:00",
  "sourceResult": "qa-results redacted from tracked output",
  "timings": {
    "issueId": "4364",
    "environment": "dev",
    "generatedAt": "2026-10-27T14:57:54.411Z",
    "exitStatus": 0,
    "timings": [
      {
        "name": "qa:run",
        "startedAt": "2026-10-27T14:57:03.674Z",
        "detail": {
          "issueId": "4364",
          "environment": "dev",
          "exitStatus": 0
        },
        "finishedAt": "2026-10-27T14:57:54.411Z",
        "durationMs": 50737,
        "status": "ok"
      },
      {
        "name": "prepare-results",
        "startedAt": "2026-10-27T14:57:03.676Z",
        "detail": {},
        "finishedAt": "2026-10-27T14:57:03.689Z",
        "durationMs": 13,
        "status": "ok"
      },
      {
        "name": "auth-refresh",
        "startedAt": "2026-10-27T14:57:03.689Z",
        "detail": {},
        "finishedAt": "2026-10-27T14:57:07.985Z",
        "durationMs": 4296,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/ADMIN",
        "startedAt": "2026-10-27T14:57:03.690Z",
        "detail": {
          "application": "admin",
          "role": "ADMIN",
          "businessRole": "ADMIN"
        },
        "finishedAt": "2026-10-27T14:57:07.985Z",
        "durationMs": 4295,
        "status": "ok"
      },
      {
        "name": "playwright",
        "startedAt": "2026-10-27T14:57:07.985Z",
        "detail": {
          "command": "npx playwright test qa/issues/4364/dev --trace retain-on-failure",
          "exitStatus": 0
        },
        "finishedAt": "2026-10-27T14:57:54.410Z",
        "durationMs": 46425,
        "status": "ok"
      }
    ]
  },
  "summary": {
    "status": "PASS",
    "passed": 14,
    "manualConfirmed": 0,
    "failed": 0,
    "skipped": 0,
    "blocked": 0,
    "flaky": 0,
    "durationMs": 45845
  },
  "rows": [
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q01 전체 기간·기간 지정 조회",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 3545,
      "evidence": [
        "artifacts/logs/01-Q01-실행-기록.md",
        "artifacts/screenshots/01-Q01-화면.png",
        "artifacts/logs/02-Q01-ranges-실행-기록.md",
        "artifacts/screenshots/02-Q01-ranges-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/01-Q01-화면.png",
        "artifacts/screenshots/02-Q01-ranges-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/01-Q01-실행-기록.md",
        "artifacts/logs/02-Q01-ranges-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q01 전체 기간·기간 지정 조회",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q02 검색 범위·총건수·추가 조회 일치",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 2260,
      "evidence": [
        "artifacts/logs/03-Q02-실행-기록.md",
        "artifacts/screenshots/03-Q02-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/03-Q02-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/03-Q02-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q02 검색 범위·총건수·추가 조회 일치",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q03 해제일시 없는 자료의 해제 판정",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 2110,
      "evidence": [
        "artifacts/logs/04-Q03-실행-기록.md",
        "artifacts/screenshots/04-Q03-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/04-Q03-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/04-Q03-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q03 해제일시 없는 자료의 해제 판정",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q04 누적 차단 횟수와 요청횟수 구분",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 2244,
      "evidence": [
        "artifacts/logs/05-Q04-실행-기록.md",
        "artifacts/screenshots/05-Q04-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/05-Q04-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/05-Q04-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q04 누적 차단 횟수와 요청횟수 구분",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q05 수동 차단→해제→재차단 기록 보존",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 4138,
      "evidence": [
        "artifacts/logs/06-Q05-before-reblock-실행-기록.md",
        "artifacts/screenshots/06-Q05-before-reblock-화면.png",
        "artifacts/logs/07-Q05-reblocked-실행-기록.md",
        "artifacts/screenshots/07-Q05-reblocked-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/06-Q05-before-reblock-화면.png",
        "artifacts/screenshots/07-Q05-reblocked-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/06-Q05-before-reblock-실행-기록.md",
        "artifacts/logs/07-Q05-reblocked-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q05 수동 차단→해제→재차단 기록 보존",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q06 자동 만료→재차단 기록 보존",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 3279,
      "evidence": [
        "artifacts/logs/08-Q06-실행-기록.md",
        "artifacts/screenshots/08-Q06-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/08-Q06-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/08-Q06-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q06 자동 만료→재차단 기록 보존",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q07 만료 전 해제 시 거짓 만료 방지",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 1695,
      "evidence": [
        "artifacts/logs/09-Q07-실행-기록.md",
        "artifacts/screenshots/09-Q07-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/09-Q07-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/09-Q07-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q07 만료 전 해제 시 거짓 만료 방지",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q08 관련 BAN 로그의 회차 분리와 원인 요청",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 5925,
      "evidence": [
        "artifacts/logs/10-Q08-실행-기록.md",
        "artifacts/screenshots/10-Q08-화면.png",
        "artifacts/logs/11-Q08-old-cycle-실행-기록.md",
        "artifacts/screenshots/11-Q08-old-cycle-화면.png",
        "artifacts/logs/12-Q08-old-expiry-실행-기록.md",
        "artifacts/screenshots/12-Q08-old-expiry-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/10-Q08-화면.png",
        "artifacts/screenshots/11-Q08-old-cycle-화면.png",
        "artifacts/screenshots/12-Q08-old-expiry-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/10-Q08-실행-기록.md",
        "artifacts/logs/11-Q08-old-cycle-실행-기록.md",
        "artifacts/logs/12-Q08-old-expiry-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q08 관련 BAN 로그의 회차 분리와 원인 요청",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q09 빠른 재차단과 로그 기간 경계",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 1956,
      "evidence": [
        "artifacts/logs/13-Q09-실행-기록.md",
        "artifacts/screenshots/13-Q09-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/13-Q09-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/13-Q09-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q09 빠른 재차단과 로그 기간 경계",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q10 같은 IP의 업체별·전역 차단 구분",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 6524,
      "evidence": [
        "artifacts/logs/14-Q10-masked-baseline-실행-기록.md",
        "artifacts/screenshots/14-Q10-masked-baseline-화면.png",
        "artifacts/logs/15-Q10-unmasked-scopes-실행-기록.md",
        "artifacts/logs/16-Q10-new-scopes-실행-기록.md"
      ],
      "screenshots": [
        "artifacts/screenshots/14-Q10-masked-baseline-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/14-Q10-masked-baseline-실행-기록.md",
        "artifacts/logs/15-Q10-unmasked-scopes-실행-기록.md",
        "artifacts/logs/16-Q10-new-scopes-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q10 같은 IP의 업체별·전역 차단 구분",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q11 기존 과거 기록의 조회와 부족한 정보 처리",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 2496,
      "evidence": [
        "artifacts/logs/17-Q11-history-only-실행-기록.md",
        "artifacts/screenshots/15-Q11-history-only-화면.png",
        "artifacts/logs/18-Q11-detail-실행-기록.md",
        "artifacts/screenshots/16-Q11-detail-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/15-Q11-history-only-화면.png",
        "artifacts/screenshots/16-Q11-detail-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/17-Q11-history-only-실행-기록.md",
        "artifacts/logs/18-Q11-detail-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q11 기존 과거 기록의 조회와 부족한 정보 처리",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q12 관련 필터 해제 후 일반 조회 복귀",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 5835,
      "evidence": [
        "artifacts/logs/19-Q12-실행-기록.md",
        "artifacts/screenshots/17-Q12-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/17-Q12-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/19-Q12-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q12 관련 필터 해제 후 일반 조회 복귀",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q13 동시 차단·해제·재차단 처리",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 1660,
      "evidence": [
        "artifacts/logs/20-Q13-실행-기록.md",
        "artifacts/screenshots/18-Q13-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/18-Q13-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/20-Q13-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q13 동시 차단·해제·재차단 처리",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4364/dev/ip-block-history.spec.ts / [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 / Q14 자동 차단 임계치·집계 기간 경계",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 1659,
      "evidence": [
        "artifacts/logs/21-Q14-실행-기록.md",
        "artifacts/screenshots/19-Q14-화면.png"
      ],
      "screenshots": [
        "artifacts/screenshots/19-Q14-화면.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/21-Q14-실행-기록.md"
      ],
      "files": [],
      "role": "전체",
      "page": "[4364][dev] IP 차단 내역 실제 개발계 업무 14항목",
      "checklistItem": "Q14 자동 차단 임계치·집계 기간 경계",
      "action": "전체 계정으로 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 항목을 확인",
      "expected": "전체 계정에서 [4364][dev] IP 차단 내역 실제 개발계 업무 14항목 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    }
  ]
}
