MudDataGrid와 MudDialog 폐기 기준 명시

This commit is contained in:
2026-06-29 23:34:58 +09:00
parent 428eeb6fd8
commit 274f70e066
3 changed files with 20 additions and 3 deletions
+15 -1
View File
@@ -15,10 +15,15 @@ Blazor (UI만, 사용자 액션 후 API 재조회) ← API (모든 로직) ← D
### UI 기준 원칙 (2026-06-29 추가)
- 기본 디자인 템플릿은 `https://v5.fluentui-blazor.net/` 기준으로 한다.
- 신규 또는 리팩토링 UI는 Fluent UI Blazor v5 패턴을 우선 적용한다.
- MudBlazor는 기존 호환 레거시로만 유지하고, 새 UI는 Fluent v5 또는 순수 HTML/CSS로 작성한다.
- MudBlazor는 레거시 폐기 대상이다. 새 UI나 리팩토링 UI에서는 사용하지 않는다.
- 기존 MudBlazor 잔여 코드는 Fluent v5 또는 순수 HTML/CSS로 점진 전환한다.
- 기본 로딩 상태는 `Skeleton`이다. `MudProgressCircular` / `MudProgressLinear`는 예외적으로만 사용한다.
- `MudDataGrid`, `MudDialog`, `MudTabs`는 폐기 대상이다. 새 작업에서는 사용하지 말고 Fluent v5 또는 순수 HTML/CSS 패턴으로 대체한다.
- 목록, 카드, 대시보드, 상세 페이지의 초기 데이터 상태는 스켈톤으로 먼저 렌더링하고, 데이터 수신 후 실제 UI로 교체한다.
- 로딩 중 블로킹 스피너보다 스켈톤을 우선한다.
- 관리자와 공개 사이트는 가능한 한 같은 `design-tokens.css` / `ui-primitives.css` 기반으로 구성한다.
- Blazor 진입점은 중복 매핑하지 말고, 동일 호스트 내에서 라우트 충돌이 없도록 단일 엔트리 기준으로 구성한다.
- `@page` 중복이나 동일 경로의 Razor Pages + Blazor 중복 선언은 배포 전에 반드시 제거한다.
### SOLID 기반 순차 마이그레이션 전략
@@ -89,6 +94,15 @@ _refreshTokenExpirationMinutes = 10080;
- MudDialog 모달 패턴 (흰 화면 플래시 제거)
- ConfirmDialog 삭제 확인 컴포넌트
### 2026-06-29 운영 기준 업데이트
- 관리자 백오피스는 Fluent UI v5 우선 구조로 재정리한다.
- 기본 로딩은 스피너가 아니라 Skeleton이다.
- `design-tokens.css``ui-primitives.css`는 사이트/관리자 공통의 기본 계층이다.
- 라우팅 충돌은 가장 먼저 확인할 항목이며, 동일 경로가 두 번 등록되는 구조를 만들지 않는다.
- 커밋은 기능/호스팅/UI/CSS처럼 주제별로 분리한다.
- MudBlazor는 신규 도입 금지이며, 잔여 사용처는 제거 우선순위로 관리한다.
- `MudDataGrid`, `MudDialog`, `MudTabs`도 신규 도입 금지이며, 기존 사용처는 제거 우선순위로 관리한다.
---
## 📊 **전체 프로젝트 완료 현황**
+4 -1
View File
@@ -101,7 +101,10 @@ TaxBaik/
- **UI 기준**
- 기본 디자인 템플릿은 `https://v5.fluentui-blazor.net/`
- 기본 로딩 상태는 `Skeleton`
- 기존 MudBlazor 패턴은 레거시 호환용으로만 유지
- MudBlazor 레거시 폐기 대상이며 신규 UI에 사용하지 않음
- `MudDataGrid`, `MudDialog`, `MudTabs`는 폐기 대상이며 신규 UI에 사용하지 않음
- 사이트와 관리자는 `design-tokens.css` / `ui-primitives.css`를 공유
- Blazor 라우트는 중복 선언하지 않고 단일 엔트리 기준으로 관리
---
+1 -1
View File
@@ -133,7 +133,7 @@ test.describe('admin CRM pages', () => {
// JS 네이티브 클릭으로 강제 격발하여 오프셋 씹힘 소멸
await addButton.evaluate(el => (el as HTMLButtonElement).click());
// 대화상자(MudDialog) 자체의 노출 대기
// 편집 모달이 화면에 안정적으로 표시될 때까지 대기
await expect(page.locator('.mud-dialog')).toBeVisible({ timeout: 5000 });
// mud-select 컨테이너 자체 클릭 (이벤트 핸들러 직접 격발)