Files
superport/docs/mock_service_removal_plan.md
JiWoong Sul 162fe08618
Some checks failed
Flutter Test & Quality Check / Test on macos-latest (push) Has been cancelled
Flutter Test & Quality Check / Test on ubuntu-latest (push) Has been cancelled
Flutter Test & Quality Check / Build APK (push) Has been cancelled
refactor: Clean Architecture 적용 및 코드베이스 전면 리팩토링
## 주요 변경사항

### 아키텍처 개선
- Clean Architecture 패턴 적용 (Domain, Data, Presentation 레이어 분리)
- Use Case 패턴 도입으로 비즈니스 로직 캡슐화
- Repository 패턴으로 데이터 접근 추상화
- 의존성 주입 구조 개선

### 상태 관리 최적화
- 모든 Controller에서 불필요한 상태 관리 로직 제거
- 페이지네이션 로직 통일 및 간소화
- 에러 처리 로직 개선 (에러 메시지 한글화)
- 로딩 상태 관리 최적화

### Mock 서비스 제거
- MockDataService 완전 제거
- 모든 화면을 실제 API 전용으로 전환
- 불필요한 Mock 관련 코드 정리

### UI/UX 개선
- Overview 화면 대시보드 기능 강화
- 라이선스 만료 알림 위젯 추가
- 사이드바 네비게이션 개선
- 일관된 UI 컴포넌트 사용

### 코드 품질
- 중복 코드 제거 및 함수 추출
- 파일별 책임 분리 명확화
- 테스트 코드 업데이트

## 영향 범위
- 모든 화면의 Controller 리팩토링
- API 통신 레이어 구조 개선
- 에러 처리 및 로깅 시스템 개선

## 향후 계획
- 단위 테스트 커버리지 확대
- 통합 테스트 시나리오 추가
- 성능 모니터링 도구 통합
2025-08-11 00:04:28 +09:00

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. 테스트 실행 및 검증