## 주요 변경사항 ### 아키텍처 개선 - Clean Architecture 패턴 적용 (Domain, Data, Presentation 레이어 분리) - Use Case 패턴 도입으로 비즈니스 로직 캡슐화 - Repository 패턴으로 데이터 접근 추상화 - 의존성 주입 구조 개선 ### 상태 관리 최적화 - 모든 Controller에서 불필요한 상태 관리 로직 제거 - 페이지네이션 로직 통일 및 간소화 - 에러 처리 로직 개선 (에러 메시지 한글화) - 로딩 상태 관리 최적화 ### Mock 서비스 제거 - MockDataService 완전 제거 - 모든 화면을 실제 API 전용으로 전환 - 불필요한 Mock 관련 코드 정리 ### UI/UX 개선 - Overview 화면 대시보드 기능 강화 - 라이선스 만료 알림 위젯 추가 - 사이드바 네비게이션 개선 - 일관된 UI 컴포넌트 사용 ### 코드 품질 - 중복 코드 제거 및 함수 추출 - 파일별 책임 분리 명확화 - 테스트 코드 업데이트 ## 영향 범위 - 모든 화면의 Controller 리팩토링 - API 통신 레이어 구조 개선 - 에러 처리 및 로깅 시스템 개선 ## 향후 계획 - 단위 테스트 커버리지 확대 - 통합 테스트 시나리오 추가 - 성능 모니터링 도구 통합
120 lines
3.2 KiB
Markdown
120 lines
3.2 KiB
Markdown
# Mock Service 제거 계획
|
|
|
|
> 작성일: 2025-01-09
|
|
> 목적: Real API 전용으로 전환 (2025-01-07 결정사항)
|
|
|
|
## 📋 제거 대상 (25개 파일)
|
|
|
|
### Controllers - List (8개)
|
|
- [x] `user_list_controller_refactored.dart` ✅
|
|
- [x] `company_list_controller_refactored.dart` ✅
|
|
- [x] `warehouse_location_list_controller_refactored.dart` ✅
|
|
- [ ] `warehouse_location_list_controller.dart` (구버전)
|
|
- [ ] `user_list_controller.dart` (구버전)
|
|
- [ ] `company_list_controller.dart` (구버전)
|
|
- [x] `equipment_list_controller_refactored.dart` (새로 생성) ✅
|
|
- [ ] `license_list_controller.dart`
|
|
|
|
### Controllers - Form (5개)
|
|
- [ ] `equipment_in_form_controller.dart`
|
|
- [ ] `equipment_out_form_controller.dart`
|
|
- [ ] `warehouse_location_form_controller.dart`
|
|
- [ ] `user_form_controller.dart`
|
|
- [ ] `license_form_controller.dart`
|
|
|
|
### Views (9개)
|
|
- [ ] `company_list_redesign.dart`
|
|
- [ ] `equipment_list_redesign.dart`
|
|
- [ ] `license_list_redesign.dart`
|
|
- [ ] `user_list_redesign.dart`
|
|
- [ ] `equipment_in_form.dart`
|
|
- [ ] `equipment_out_form.dart`
|
|
- [ ] `company_form.dart`
|
|
- [ ] `license_form.dart`
|
|
- [ ] `user_form.dart`
|
|
|
|
### Core (4개)
|
|
- [ ] `main.dart`
|
|
- [x] `base_list_controller.dart` ✅
|
|
- [ ] `auth_service.dart`
|
|
- [ ] `mock_data_service.dart` (파일 삭제)
|
|
|
|
## 🔄 제거 패턴
|
|
|
|
### 1. Controller 수정 패턴
|
|
```dart
|
|
// BEFORE
|
|
class SomeController extends ChangeNotifier {
|
|
final MockDataService? dataService;
|
|
bool _useApi = true;
|
|
|
|
Future<void> loadData() async {
|
|
if (_useApi && _service != null) {
|
|
// API 호출
|
|
} else {
|
|
// Mock 데이터 사용
|
|
}
|
|
}
|
|
}
|
|
|
|
// AFTER
|
|
class SomeController extends ChangeNotifier {
|
|
// MockDataService 완전 제거
|
|
// useApi 플래그 제거
|
|
|
|
Future<void> loadData() async {
|
|
// API 호출만 유지
|
|
}
|
|
}
|
|
```
|
|
|
|
### 2. View 수정 패턴
|
|
```dart
|
|
// BEFORE
|
|
ChangeNotifierProvider(
|
|
create: (_) => SomeController(
|
|
dataService: GetIt.instance<MockDataService>(),
|
|
),
|
|
)
|
|
|
|
// AFTER
|
|
ChangeNotifierProvider(
|
|
create: (_) => SomeController(),
|
|
)
|
|
```
|
|
|
|
### 3. BaseListController 수정
|
|
```dart
|
|
// useApi 파라미터 제거
|
|
// Mock 관련 로직 제거
|
|
```
|
|
|
|
## ⚠️ 주의사항
|
|
|
|
1. **GetIt 의존성**: MockDataService가 DI에 등록되지 않았으므로 직접 전달 부분만 제거
|
|
2. **테스트 코드**: 테스트에서 Mock을 사용하는 경우 별도 처리 필요
|
|
3. **Environment.useApi**: 환경변수 자체는 유지 (향후 완전 제거)
|
|
4. **백업**: 중요 변경사항이므로 커밋 전 백업 필수
|
|
|
|
## 📊 진행 상황
|
|
|
|
- **시작**: 2025-01-09
|
|
- **예상 완료**: 2025-01-09
|
|
- **진행률**: 5/26 파일 (19%)
|
|
- **완료 항목**:
|
|
- BaseListController (useApi 파라미터 제거)
|
|
- WarehouseLocationListControllerRefactored (Mock 코드 제거)
|
|
- CompanyListControllerRefactored (Mock 코드 제거)
|
|
- UserListControllerRefactored (Mock 코드 제거)
|
|
- EquipmentListControllerRefactored (새로 생성, Mock 없이 구현)
|
|
|
|
## 🔧 실행 순서
|
|
|
|
1. BaseListController에서 useApi 관련 로직 제거
|
|
2. Refactored Controllers 수정 (3개)
|
|
3. 기존 Controllers 수정 (나머지)
|
|
4. Form Controllers 수정
|
|
5. Views 수정
|
|
6. Core 파일 정리
|
|
7. MockDataService 파일 삭제
|
|
8. 테스트 실행 및 검증 |