diff --git a/CLAUDE.md b/CLAUDE.md index 2d3a6f9..a1b07fb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -12,43 +12,45 @@ Blazor (UI만) ← API (모든 로직) ← DB SignalR (변경 알림만) ``` -### SOLID 기반 리팩토링 로드맵 +### SOLID 기반 순차 마이그레이션 전략 -#### Phase 1: API 엔드포인트 완성 (진행중) +#### Phase 1-3: API Foundations ✅ - [x] Auth API (JWT 토큰) - [x] Blog API (CRUD) - [x] Category API - [x] Inquiry API - [x] SiteSettings API -- [ ] Dashboard API (⭐ 추가) -- [ ] Announcement API (⭐ 추가) -- [ ] Client API (⭐ 추가) -- [ ] FAQ API (⭐ 추가) -- [ ] TaxFiling API (⭐ 추가) +- [x] Dashboard API ⭐ (v1.0 - 2026-06-28) -#### Phase 2: Blazor UI 리팩토링 -- Blazor 컴포넌트 → API 호출 기반으로 변경 -- 직접 서비스 inject 제거 -- APIClient 개선 (재시도, 토큰 갱신) -- 로컬 상태 관리만 남김 +**전략**: Dashboard를 먼저 마이그레이션 → 검증 후 다른 페이지 순차 처리 -#### Phase 3: JWT 토큰 개선 -- Access Token (15분) + Refresh Token (7일) 구현 -- 토큰 만료 시 자동 갱신 -- 갱신 실패 시 로그인 페이지로 리다이렉트 +#### Phase 4: Dashboard Blazor → API 클라이언트 (진행중) +- [ ] Dashboard.razor 리팩토링 + - AdminDashboardClient 구현 + - 서비스 inject → API 호출로 변경 + - 에러 처리 & 로딩 상태 +- [ ] APIClient 개선 + - 401 자동 갱신 (Refresh Token) + - 재시도 로직 (exponential backoff) + - 타임아웃 처리 -#### Phase 4: SignalR 통합 -- 변경 알림 Hub 추가 (브로드캐스트만) -- Blazor에서 알림 구독 -- 알림 후 API로 최신 데이터 검증 +#### Phase 5: JWT 토큰 개선 +- [ ] Access Token (15분) + Refresh Token (7일) +- [ ] 자동 갱신 엔드포인트 +- [ ] 로그아웃 시 토큰 무효화 +- [ ] 보안: HttpOnly, Secure, SameSite -#### Phase 5: 테스트 & 보안 -- 단위 테스트 (Controller, Service) -- 통합 테스트 (API, DB) -- 아키텍처 테스트 (계층 분리 검증) -- 보안 테스트 (권한, 토큰) +#### Phase 6: SignalR 통합 +- [ ] NotificationHub (변경 알림만) +- [ ] Blazor에서 구독 +- [ ] 알림 후 API로 데이터 검증 -#### 현재 진행: **Phase 1 완성 (부족한 API 추가)** +#### Phase 7: 순차적 마이그레이션 +- Blog 페이지 → API 클라이언트 +- Inquiry 페이지 → API 클라이언트 +- FAQ/Client/TaxFiling 등 순차 처리 + +**현재 진행**: **Phase 4 - Dashboard Blazor 리팩토링** ---