## 주요 변경사항 ### 아키텍처 개선 - Clean Architecture 패턴 적용 (Domain, Data, Presentation 레이어 분리) - Use Case 패턴 도입으로 비즈니스 로직 캡슐화 - Repository 패턴으로 데이터 접근 추상화 - 의존성 주입 구조 개선 ### 상태 관리 최적화 - 모든 Controller에서 불필요한 상태 관리 로직 제거 - 페이지네이션 로직 통일 및 간소화 - 에러 처리 로직 개선 (에러 메시지 한글화) - 로딩 상태 관리 최적화 ### Mock 서비스 제거 - MockDataService 완전 제거 - 모든 화면을 실제 API 전용으로 전환 - 불필요한 Mock 관련 코드 정리 ### UI/UX 개선 - Overview 화면 대시보드 기능 강화 - 라이선스 만료 알림 위젯 추가 - 사이드바 네비게이션 개선 - 일관된 UI 컴포넌트 사용 ### 코드 품질 - 중복 코드 제거 및 함수 추출 - 파일별 책임 분리 명확화 - 테스트 코드 업데이트 ## 영향 범위 - 모든 화면의 Controller 리팩토링 - API 통신 레이어 구조 개선 - 에러 처리 및 로깅 시스템 개선 ## 향후 계획 - 단위 테스트 커버리지 확대 - 통합 테스트 시나리오 추가 - 성능 모니터링 도구 통합
3.2 KiB
3.2 KiB
Mock Service 제거 계획
작성일: 2025-01-09
목적: Real API 전용으로 전환 (2025-01-07 결정사항)
📋 제거 대상 (25개 파일)
Controllers - List (8개)
user_list_controller_refactored.dart✅company_list_controller_refactored.dart✅warehouse_location_list_controller_refactored.dart✅warehouse_location_list_controller.dart(구버전)user_list_controller.dart(구버전)company_list_controller.dart(구버전)equipment_list_controller_refactored.dart(새로 생성) ✅license_list_controller.dart
Controllers - Form (5개)
equipment_in_form_controller.dartequipment_out_form_controller.dartwarehouse_location_form_controller.dartuser_form_controller.dartlicense_form_controller.dart
Views (9개)
company_list_redesign.dartequipment_list_redesign.dartlicense_list_redesign.dartuser_list_redesign.dartequipment_in_form.dartequipment_out_form.dartcompany_form.dartlicense_form.dartuser_form.dart
Core (4개)
main.dartbase_list_controller.dart✅auth_service.dartmock_data_service.dart(파일 삭제)
🔄 제거 패턴
1. Controller 수정 패턴
// 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 수정 패턴
// BEFORE
ChangeNotifierProvider(
create: (_) => SomeController(
dataService: GetIt.instance<MockDataService>(),
),
)
// AFTER
ChangeNotifierProvider(
create: (_) => SomeController(),
)
3. BaseListController 수정
// useApi 파라미터 제거
// Mock 관련 로직 제거
⚠️ 주의사항
- GetIt 의존성: MockDataService가 DI에 등록되지 않았으므로 직접 전달 부분만 제거
- 테스트 코드: 테스트에서 Mock을 사용하는 경우 별도 처리 필요
- Environment.useApi: 환경변수 자체는 유지 (향후 완전 제거)
- 백업: 중요 변경사항이므로 커밋 전 백업 필수
📊 진행 상황
- 시작: 2025-01-09
- 예상 완료: 2025-01-09
- 진행률: 5/26 파일 (19%)
- 완료 항목:
- BaseListController (useApi 파라미터 제거)
- WarehouseLocationListControllerRefactored (Mock 코드 제거)
- CompanyListControllerRefactored (Mock 코드 제거)
- UserListControllerRefactored (Mock 코드 제거)
- EquipmentListControllerRefactored (새로 생성, Mock 없이 구현)
🔧 실행 순서
- BaseListController에서 useApi 관련 로직 제거
- Refactored Controllers 수정 (3개)
- 기존 Controllers 수정 (나머지)
- Form Controllers 수정
- Views 수정
- Core 파일 정리
- MockDataService 파일 삭제
- 테스트 실행 및 검증