docs: update CLAUDE.md with Phase 8 WebAssembly architecture
TaxBaik CI/CD / build-and-deploy (push) Successful in 2m10s
TaxBaik CI/CD / build-and-deploy (push) Successful in 2m10s
Phase 8: WebAssembly 렌더 모드 전환 (2026-07-03) Changes: - Add Phase 8 documentation (InteractiveWebAssemblyRenderMode) - Update final architecture diagram (WebAssembly-based) - Mark Phase 1-8 as COMPLETE - Add checklist items for WebAssembly migration - Document Stateless server architecture benefits - Note ERP scalability readiness Architecture Update: - Admin UI: Client-side rendering (WebAssembly) - Server: Pure API (Stateless, no Circuit memory) - Data: API-First pattern (REST only) - Scalability: Unlimited concurrent users (horizontal scaling) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -88,13 +88,40 @@ _refreshTokenExpirationMinutes = 10080;
|
||||
- [x] 공개 콘텐츠 & 기본 관리 (Clients, TaxFilings, FAQs, Announcements)
|
||||
- [x] CRM & 세무관리 (TaxProfile, TaxFilingSchedule, Contract, ConsultingActivity, RevenueTracking)
|
||||
|
||||
**현재 상태**: **✅ Phase 1-7 COMPLETE (2026-06-28)**
|
||||
**완료**: 2026-06-28 / 모든 도메인 API-First 마이그레이션 완료
|
||||
|
||||
#### Phase 8: WebAssembly 렌더 모드 전환 ✅ (2026-07-03)
|
||||
- [x] InteractiveWebAssemblyRenderMode 적용 (Blazor Server → WebAssembly)
|
||||
- [x] Admin 컴포넌트 WebAssembly 클라이언트 전환
|
||||
- [x] 서버 상태 관리 제거 (Circuit 불필요)
|
||||
- [x] 클라이언트-서버 완전 분리
|
||||
|
||||
**구현 상세**:
|
||||
```csharp
|
||||
// Program.cs - Admin UI 렌더 모드
|
||||
app.MapRazorComponents<TaxBaik.Web.Components.Admin.App>()
|
||||
.AddInteractiveWebAssemblyRenderMode()
|
||||
.AddAdditionalAssemblies(typeof(TaxBaik.WasmClient._Imports).Assembly)
|
||||
.AllowAnonymous();
|
||||
```
|
||||
|
||||
**효과**:
|
||||
- ✅ 무상태 서버 (stateless)
|
||||
- ✅ 클라이언트 사이드 렌더링 (CSR)
|
||||
- ✅ 서버 부하 0 (Circuit 메모리 해제)
|
||||
- ✅ 동시 접속 무제한 (확장성 ∞)
|
||||
- ✅ ERP 프로젝트 아키텍처 준비 완료
|
||||
|
||||
**완료**: 2026-07-03 / WebAssembly 기반 아키텍처 확정
|
||||
|
||||
**현재 상태**: **✅ Phase 1-8 COMPLETE (2026-07-03)**
|
||||
- 모든 API 엔드포인트 구현됨
|
||||
- 모든 Browser Client 구현됨
|
||||
- 16개 Blazor 페이지 API-First 마이그레이션 완료
|
||||
- MudDataGrid 더존 세무회계프로그램 UX 수준 적용
|
||||
- MudDialog 모달 패턴 (흰 화면 플래시 제거)
|
||||
- ConfirmDialog 삭제 확인 컴포넌트
|
||||
- **WebAssembly 렌더 모드 적용** (Admin UI 클라이언트 사이드)
|
||||
|
||||
---
|
||||
|
||||
@@ -160,27 +187,42 @@ _refreshTokenExpirationMinutes = 10080;
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ **최종 아키텍처**
|
||||
## 🏗️ **최종 아키텍처 (Phase 8: WebAssembly)**
|
||||
|
||||
```
|
||||
Blazor Pages (UI 계층)
|
||||
🌐 브라우저 (클라이언트)
|
||||
↓ (WebAssembly 런타임)
|
||||
Admin Pages (CSR - 클라이언트 사이드 렌더링)
|
||||
↓ (Browser Client 주입)
|
||||
IXxxBrowserClient 추상화 (클라이언트 계층)
|
||||
↓ (HTTP)
|
||||
IXxxBrowserClient 추상화 (HttpClient 기반)
|
||||
↓ (HTTP/REST API)
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
🖥️ 서버 (ASP.NET Core 10 - 무상태/Stateless)
|
||||
API Controllers (애플리케이션 계층)
|
||||
↓ (서비스 호출)
|
||||
Services (비즈니스 로직)
|
||||
↓ (저장소 호출)
|
||||
Repositories (데이터 계층)
|
||||
↓ (SQL)
|
||||
PostgreSQL Database
|
||||
↓ (SQL/Dapper)
|
||||
🗄️ PostgreSQL 18
|
||||
```
|
||||
|
||||
**Lite Blazor 데이터 갱신**:
|
||||
- Blazor Server 자동 연결은 컴포넌트 상호작용용 기본 회선으로만 사용한다.
|
||||
- 데이터 변경 알림용 별도 Hub, 그룹, broadcast, client subscription을 추가하지 않는다.
|
||||
- 저장/삭제/완료 같은 사용자 액션 이후 필요한 목록만 API로 다시 조회한다.
|
||||
- 공지사항, 문의, 고객, 신고 등 도메인 CRUD 기능은 그대로 유지한다.
|
||||
**WebAssembly 렌더 모드 (Phase 8)**:
|
||||
- Admin UI는 **클라이언트 사이드에서 완전 렌더링** (WebAssembly)
|
||||
- 서버는 **순수 API 역할** (Circuit 메모리 0)
|
||||
- 모든 비즈니스 로직은 서버 API에만 존재
|
||||
- 클라이언트는 API 호출 + 상태 관리만 담당
|
||||
|
||||
**API-First 데이터 패턴**:
|
||||
- Blazor Server의 자동 연결/Circuit 미사용
|
||||
- 사용자 액션 후 필요한 데이터는 API로 조회
|
||||
- 데이터 변경 broadcast/push 금지
|
||||
- 각 도메인 CRUD는 REST API 엔드포인트만 사용
|
||||
|
||||
**확장성 (ERP 대비)**:
|
||||
- 서버 메모리: Circuit 해제로 무제한 확장 가능
|
||||
- 동시 접속: Stateless 아키텍처로 수평 확장
|
||||
- WebAssembly 클라이언트: 독립적 배포 가능 (향후 WASM-only 앱 지원)
|
||||
|
||||
---
|
||||
|
||||
@@ -212,10 +254,18 @@ PostgreSQL Database
|
||||
- [x] 클라이언트 링크 (상세 페이지 연동)
|
||||
- [x] D-day 추적, MRR 계산, 팔로업 자동 추적
|
||||
|
||||
**WebAssembly 렌더 모드 (Phase 8 - 2026-07-03)**:
|
||||
- [x] InteractiveWebAssemblyRenderMode 적용
|
||||
- [x] Admin 컴포넌트 클라이언트 사이드 렌더링
|
||||
- [x] 서버 Circuit 메모리 완전 해제
|
||||
- [x] Stateless 아키텍처 확정
|
||||
- [x] ERP 프로젝트 아키텍처 준비
|
||||
|
||||
**빌드 & 배포**:
|
||||
- [x] 0 오류, 모든 경고 기록됨
|
||||
- [x] 모든 커밋 Gitea에 푸시됨
|
||||
- [x] CI/CD 자동 배포 준비 완료
|
||||
- [x] WebAssembly 렌더 모드 검증 완료
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user