# Superport Flutter 프로젝트 분석 보고서 ## 1. 프로젝트 개요 ### 기본 정보 - **프로젝트명**: superport (버전 0.1.0) - **프레임워크**: Flutter (SDK ^3.7.2) - **플랫폼**: Web, iOS, Android, macOS, Windows, Linux - **주요 목적**: 장비 입출고 관리를 중심으로 한 ERP 시스템 ### 현재 상태 - 기존 UI에서 shadcn/ui 스타일의 새로운 디자인으로 리디자인 진행 중 - 파일명 패턴: 기존 파일명 + `_redesign` 접미사 ## 2. 프로젝트 구조 ``` superport/ ├── android/ # Android 플랫폼 빌드 설정 ├── ios/ # iOS 플랫폼 빌드 설정 ├── linux/ # Linux 플랫폼 빌드 설정 ├── macos/ # macOS 플랫폼 빌드 설정 ├── windows/ # Windows 플랫폼 빌드 설정 ├── web/ # Web 플랫폼 빌드 설정 ├── lib/ # Flutter 소스 코드 │ ├── models/ # 데이터 모델 │ ├── screens/ # 화면 구성 │ ├── services/ # 서비스 레이어 │ └── utils/ # 유틸리티 ├── assets/ # 에셋 리소스 ├── doc/ # 프로젝트 문서 (PRD 포함) ├── test/ # 테스트 코드 (현재 비어있음) └── pubspec.yaml # 프로젝트 설정 및 의존성 ``` ## 3. 주요 의존성 | 패키지 | 버전 | 용도 | |--------|------|------| | flutter_localizations | SDK | 다국어 지원 (한국어/영어) | | pdf | ^3.10.4 | PDF 생성 | | printing | ^5.11.0 | 인쇄 기능 | | provider | ^6.1.5 | 상태 관리 (현재 미사용) | | wave | ^0.2.2 | 웨이브 애니메이션 | | flutter_svg | ^2.0.10 | SVG 이미지 지원 | | google_fonts | ^6.1.0 | Google Fonts 사용 | ## 4. 아키텍처 및 패턴 ### 4.1 상태 관리 - **MVC 패턴의 변형** 사용 - Controller 클래스로 비즈니스 로직 분리 - `MockDataService` 싱글톤으로 데이터 관리 - 일부 ChangeNotifier 사용 (예: LoginController) ### 4.2 라우팅 - **Named Route** 방식 - `Routes` 클래스에 라우트 상수 정의 - `onGenerateRoute`를 통한 동적 라우팅 ### 4.3 데이터 관리 - 현재 실제 API 없이 Mock 데이터 서비스 사용 - 모든 CRUD 작업을 메모리에서 처리 - 향후 실제 API 연동 시 서비스 레이어만 교체 예정 ## 5. 주요 기능 및 화면 ### 5.1 인증 - **로그인** (`/login`) - 이메일/비밀번호 기반 인증 - Wave 애니메이션 배경 - 테스트 계정 지원 ### 5.2 대시보드 - **Overview** (`/`) - 통계 요약 (장비, 회사, 사용자, 라이센스) - 최근 활동 내역 - 빠른 작업 버튼 ### 5.3 장비 관리 - **장비 목록** (`/equipment`) - 입고/출고/대여 상태 관리 - 검색 및 필터링 - 일괄 처리 기능 - **입고 관리** (`/equipment-in/add`) - **출고 관리** (`/equipment-out/add`) ### 5.4 기타 관리 기능 - **회사 관리**: 고객사/공급업체, 본사/지점 관리 - **사용자 관리**: 직원 정보 및 권한 관리 - **라이센스 관리**: 소프트웨어 라이센스 추적 - **입고지 관리**: 장비 입고 위치 관리 ## 6. UI/UX 디자인 시스템 ### 6.1 기존 디자인 - Tailwind 스타일의 색상 체계 - Material Icons 사용 - Metronic 디자인 시스템 참고 - 단일 테마 (라이트 모드만) ### 6.2 새로운 디자인 (리디자인) - **shadcn/ui 디자인 시스템** 도입 - **테마 시스템** (`theme_shadcn.dart`) - 의미론적 색상 체계 - 일관된 타이포그래피 (Inter 폰트) - 표준화된 간격 및 라운드 시스템 - **컴포넌트 라이브러리** - ShadcnCard, ShadcnButton, ShadcnInput 등 - 재사용 가능한 표준 컴포넌트 - **레이아웃** - Microsoft Dynamics 365 스타일 - 사이드바 접기/펼치기 - 브레드크럼 네비게이션 ## 7. 현재 진행 상황 ### 7.1 완료된 리디자인 - ✅ 테마 시스템 구축 - ✅ 공통 컴포넌트 라이브러리 - ✅ 앱 레이아웃 - ✅ 로그인 화면 - ✅ 대시보드 - ✅ 모든 리스트 화면 (회사, 장비, 사용자, 라이센스, 입고지) ### 7.2 남은 작업 - ⏳ Form 화면들의 리디자인 - ⏳ 다크 모드 지원 - ⏳ 반응형 디자인 개선 - ⏳ 실제 API 연동 - ⏳ 테스트 코드 작성 - ⏳ 국제화(i18n) 구현 ## 8. 기술적 특이사항 1. **크로스 플랫폼**: 모든 주요 플랫폼 지원 2. **웹 중심 개발**: 데스크톱 웹 환경에 최적화 3. **모던 UI**: shadcn/ui 스타일의 현대적 디자인 4. **타입 안정성**: Dart의 강타입 시스템 활용 5. **컴포넌트 기반**: 재사용 가능한 위젯 아키텍처 ## 9. 권장 개선사항 ### 9.1 단기 개선 1. Form 화면 리디자인 완료 2. 입력 유효성 검사 강화 3. 로딩/에러 상태 UI 개선 4. 키보드 단축키 지원 ### 9.2 중장기 개선 1. 실제 백엔드 API 연동 2. 단위/통합 테스트 추가 3. CI/CD 파이프라인 구축 4. 성능 모니터링 도입 5. 사용자 분석 도구 통합 ## 10. 프로젝트 메타데이터 - **최초 커밋**: e346f83 (프로젝트 최초 커밋) - **현재 브랜치**: main - **Git 상태**: 다수의 수정 및 새 파일 존재 - **문서화**: PRD 문서 존재 (`doc/supERPort ERP PRD.md`) --- *이 문서는 2025-07-07 기준으로 작성되었습니다.*