# UI 리디자인 현황 분석

## 1. 리디자인 진행 상황 요약

### 1.1 완료된 리디자인 파일
| 기존 파일 | 리디자인 파일 | 상태 |
|-----------|--------------|------|
| `app_layout.dart` | `app_layout_redesign.dart` | ✅ 완료 |
| `login_view.dart` | `login_view_redesign.dart` | ✅ 완료 |
| `overview_screen.dart` | `overview_screen_redesign.dart` | ✅ 완료 |
| `company_list.dart` | `company_list_redesign.dart` | ✅ 완료 |
| `equipment_list.dart` | `equipment_list_redesign.dart` | ✅ 완료 |
| `license_list.dart` | `license_list_redesign.dart` | ✅ 완료 |
| `user_list.dart` | `user_list_redesign.dart` | ✅ 완료 |
| `warehouse_location_list.dart` | `warehouse_location_list_redesign.dart` | ✅ 완료 |

### 1.2 새로 추가된 파일
- `theme_shadcn.dart` - shadcn/ui 테마 시스템
- `components/shadcn_components.dart` - 재사용 가능한 UI 컴포넌트

### 1.3 미완료 리디자인 (Form 화면들)
| 기존 파일 | 예상 리디자인 파일명 | 상태 |
|-----------|---------------------|------|
| `company_form_screen.dart` | `company_form_screen_redesign.dart` | ❌ 미완료 |
| `equipment_in_form_screen.dart` | `equipment_in_form_screen_redesign.dart` | ❌ 미완료 |
| `equipment_out_form_screen.dart` | `equipment_out_form_screen_redesign.dart` | ❌ 미완료 |
| `user_form_screen.dart` | `user_form_screen_redesign.dart` | ❌ 미완료 |
| `maintenance_form_screen.dart` | `maintenance_form_screen_redesign.dart` | ❌ 미완료 |
| `warehouse_location_form_screen.dart` | `warehouse_location_form_screen_redesign.dart` | ❌ 미완료 |

## 2. 디자인 시스템 변경사항

### 2.1 색상 체계 변경
#### 기존 (Tailwind 스타일)
```dart
// 하드코딩된 색상값
Color(0xFF3B82F6) // blue-500
Color(0xFFF3F4F6) // gray-100
```

#### 새로운 (shadcn/ui 스타일)
```dart
// 의미론적 색상 변수
ShadcnTheme.primary
ShadcnTheme.secondary
ShadcnTheme.muted
```

### 2.2 컴포넌트 표준화
#### 기존
- 각 화면마다 커스텀 위젯 구현
- 일관성 없는 스타일링

#### 새로운
- `ShadcnCard`, `ShadcnButton`, `ShadcnInput` 등 표준 컴포넌트
- 일관된 디자인 언어

### 2.3 레이아웃 구조 개선
#### 기존
- 단순한 사이드바 + 컨텐츠 구조
- 고정된 레이아웃

#### 새로운
- 헤더 + 접을 수 있는 사이드바 + 브레드크럼 + 컨텐츠
- Microsoft Dynamics 365 스타일
- 애니메이션 전환 효과

## 3. 주요 개선사항

### 3.1 사용자 경험(UX)
1. **네비게이션 개선**
   - 브레드크럼으로 현재 위치 명확히 표시
   - 사이드바 접기/펼치기로 작업 공간 확대

2. **시각적 피드백**
   - 호버/포커스 상태 명확한 표시
   - 로딩 상태 표시
   - 빈 상태 UI 제공

3. **일관성**
   - 모든 화면에서 동일한 레이아웃 구조
   - 표준화된 버튼, 입력 필드, 카드 디자인

### 3.2 기술적 개선
1. **컴포넌트 재사용성**
   - 공통 컴포넌트 라이브러리 구축
   - 코드 중복 제거

2. **유지보수성**
   - 테마 시스템으로 스타일 중앙 관리
   - 명확한 파일 구조

3. **확장성**
   - 다크 모드 지원 준비
   - 반응형 디자인 기반 마련

## 4. 리디자인 패턴 분석

### 4.1 파일 구조 패턴
```
기존파일명.dart → 기존파일명_redesign.dart
```

### 4.2 코드 구조 패턴
1. **Import 변경**
   ```dart
   // 기존
   import '../common/app_layout.dart';
   
   // 새로운
   import '../common/app_layout_redesign.dart';
   import '../common/theme_shadcn.dart';
   import '../common/components/shadcn_components.dart';
   ```

2. **위젯 구조**
   ```dart
   // 표준 구조
   AppLayoutRedesign(
     currentRoute: Routes.화면명,
     child: Column(
       children: [
         // 헤더 영역
         Row(...),
         // 컨텐츠 영역
         Expanded(
           child: ShadcnCard(...),
         ),
       ],
     ),
   )
   ```

### 4.3 스타일링 패턴
- 인라인 스타일 대신 테마 시스템 사용
- 하드코딩된 값 대신 테마 상수 사용
- 일관된 spacing, padding, margin 적용

## 5. 향후 작업 계획

### 5.1 즉시 필요한 작업
1. **Form 화면 리디자인**
   - 6개의 Form 화면 리디자인 필요
   - ShadcnInput 컴포넌트 활용
   - 일관된 레이아웃 적용

2. **라우팅 업데이트**
   - 모든 라우트가 리디자인 화면을 가리키도록 수정
   - 기존 화면 제거 또는 백업

### 5.2 추가 개선사항
1. **폼 유효성 검사 UI**
   - 에러 메시지 표시 개선
   - 실시간 유효성 검사 피드백

2. **로딩/에러 상태**
   - 스켈레톤 로더 추가
   - 에러 바운더리 구현

3. **접근성**
   - 키보드 네비게이션 개선
   - 스크린 리더 지원

## 6. 기술 부채 및 리스크

### 6.1 현재 이슈
1. **코드 중복**
   - 기존 파일과 리디자인 파일 공존
   - 유지보수 복잡도 증가

2. **일관성 리스크**
   - 일부는 기존 UI, 일부는 새 UI 사용
   - 사용자 혼란 가능성

### 6.2 해결 방안
1. **단계적 마이그레이션**
   - Form 화면 리디자인 완료
   - 기존 파일 제거
   - 파일명에서 '_redesign' 제거

2. **테스트**
   - UI 테스트 추가
   - 사용자 피드백 수집

---

*마지막 업데이트: 2025-07-07*