diff --git a/docs/INDEX.md b/docs/INDEX.md index 011e9e1..79e20cc 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -9,6 +9,7 @@ | [ENGINEERING_HARNESS.md](./ENGINEERING_HARNESS.md) | 아키텍처, 코드 품질, 배포, 데이터 정합성 하네스 | 방향성 변경 또는 반복 위반 발견 | | [STACK_TEMPLATE_WBS.md](./STACK_TEMPLATE_WBS.md) | MudBlazor + ASP.NET Core 10 + Dapper + PostgreSQL 18.4 + API-first + SSR/Interactive render mode 기준 템플릿, 로드맵, WBS | 새 스택 채택 또는 렌더/인증 기준 변경 | | [DOUZONE_UX_GUIDE.md](./DOUZONE_UX_GUIDE.md) | 더존식 어드민 UX 원칙, 템플릿, 컴포넌트, 서빙 규칙 | 화면 패턴 변경 또는 신규 템플릿 추가 | +| [OPS_LOG_DIAGNOSTICS_ROADMAP.md](./OPS_LOG_DIAGNOSTICS_ROADMAP.md) | 관리자 대시보드/클라이언트 로그 진단 로드맵 | 로그 진단 흐름 또는 관측성 작업 변경 | | [COMMON_CODE_POLICY.md](./COMMON_CODE_POLICY.md) | 공통코드, 저장값, 컬럼 길이, 하드코딩 금지 규칙 | 공통코드 또는 콤보 추가/수정 | | [COMBO_POLICY.md](./COMBO_POLICY.md) | 콤보/선택/검색 입력 정책과 저장값 규칙 | 상태/유형/선택 입력 정책 변경 | | [ADMIN_PATTERN_CRITIQUE_WBS.md](./ADMIN_PATTERN_CRITIQUE_WBS.md) | 어드민 Blog/문의 등록 패턴 비판, 개선 로드맵, 정량 WBS | WBS 상태 또는 성공 지표 변경 | diff --git a/docs/OPS_LOG_DIAGNOSTICS_ROADMAP.md b/docs/OPS_LOG_DIAGNOSTICS_ROADMAP.md new file mode 100644 index 0000000..af86e93 --- /dev/null +++ b/docs/OPS_LOG_DIAGNOSTICS_ROADMAP.md @@ -0,0 +1,39 @@ +# Ops Log Diagnostics Roadmap + +현재 목표는 관리자 대시보드와 클라이언트 로그 진단 흐름을 안정화하고, 다음 문제를 더 빨리 규명할 수 있게 만드는 것이다. + +## Current State + +- 관리자 대시보드 렌더 크래시는 해결됨. +- 브라우저 오류는 `client-logs`로 서버에 전송됨. +- 관리자에서 최근 로그, 그룹 요약, 날짜 범위, source/route/message 필터를 볼 수 있음. +- 반복 오류 그룹을 클릭하면 해당 로그로 필터링됨. +- 대시보드에서 로그 진단 화면으로 바로 이동할 수 있음. + +## Next Priorities + +| 순위 | 작업 | 이유 | +| --- | --- | --- | +| 1 | `client-logs` 요약에 top sources / top routes 카드 고정 노출 | 재발 원인을 가장 빠르게 좁힐 수 있음 | +| 2 | 그룹 상세의 선택 상태 표시 | 어떤 그룹을 눌렀는지 사용자 혼동을 줄임 | +| 3 | 날짜 입력을 ISO 문자열/현지 시간으로 명확히 변환 | 필터 입력의 오해를 줄임 | +| 4 | 로그를 파일 파싱에서 구조화 저장으로 전환 검토 | 검색/통계 정확도를 높임 | +| 5 | 운영 대시보드에 최신 오류 개수와 최근 source 카드 고정 | 로그인 직후 문제 감지가 쉬워짐 | + +## Guardrails + +- 관리자 진단은 `AdminOnly`만 노출한다. +- 브라우저 오류 수집은 사용자 흐름을 막지 않는다. +- 중복 로그는 억제하고, 재시도 루프를 만들지 않는다. +- 하위 경로 `/taxbaik/admin` 기준을 유지한다. +- `App.razor`에 HTML 호스트와 `blazor.webassembly.js`를 다시 넣지 않는다. + +## Verification + +다음 작업은 항상 이 순서로 검증한다. + +1. `dotnet build src/TaxBaik.Web/TaxBaik.Web.csproj -c Debug` +2. `node scripts/route_lint.mjs` +3. 로컬 브라우저에서 `/taxbaik/admin/login` -> `/taxbaik/admin/dashboard` +4. `/taxbaik/admin/client-logs`에서 요약, 그룹, 필터가 보이는지 확인 + diff --git a/src/TaxBaik.Web.Client/Components/Admin/Pages/ClientLogs.razor b/src/TaxBaik.Web.Client/Components/Admin/Pages/ClientLogs.razor index 0c7ccb2..0f8327c 100644 --- a/src/TaxBaik.Web.Client/Components/Admin/Pages/ClientLogs.razor +++ b/src/TaxBaik.Web.Client/Components/Admin/Pages/ClientLogs.razor @@ -23,6 +23,26 @@