/Users/hansoo./Documents/my vault/3. Resource/Users/hansoo./Documents/my vault/3. Resource# 적자 탈출 가계부 - 3단계 계획 ## 1. 3단계 목표 3단계의 주요 목표는 적자 탈출 가계부 앱의 프론트엔드를 개발하고, 백엔드 API와 연동하여 완전한 사용자 경험을 제공하는 것입니다. 이 단계에서는 Flutter를 사용하여 크로스 플랫폼 모바일 앱을 개발합니다. ### 핵심 목표 1. [x] Flutter 프로젝트 설정 및 기본 구조 구현 2. [x] UI 컴포넌트 개발 및 디자인 시스템 구축 3. [ ] 백엔드 API와의 연동 구현 4. [x] 핵심 화면 및 기능 구현 5. [ ] 사용자 테스트 및 피드백 수집 ## 2. 작업 목록 및 일정 ### 1일차: 개발 환경 설정 및 프로젝트 구조 설계 #### 오전 - [x] [사용자] Flutter 개발 환경 설정 - [x] [AI] Flutter 프로젝트 생성 및 기본 설정 가이드 작성 - [x] [공동] 프로젝트 구조 및 아키텍처 설계 #### 오후 - [x] [AI] 상태 관리 전략 수립 (Provider, Bloc, Riverpod 등) - [x] [AI] 라우팅 및 네비게이션 설계 - [x] [사용자] 기본 프로젝트 구조 검증 및 테스트 ### 2일차: 디자인 시스템 및 UI 컴포넌트 개발 #### 오전 - [x] [AI] 디자인 시스템 설계 - [x] 색상 팔레트 및 테마 설정 - [x] 타이포그래피 스타일 정의 - [x] 공통 UI 컴포넌트 디자인 #### 오후 - [x] [AI] 기본 UI 컴포넌트 구현 - [x] 버튼, 입력 필드, 카드 등 기본 컴포넌트 - [x] 커스텀 위젯 및 애니메이션 - [x] 반응형 레이아웃 구현 ### 3-4일차: 화면 개발 및 API 연동 #### 3일차 오전 - [x] [AI] 인증 관련 화면 개발 - [x] 로그인 화면 - [x] 회원가입 화면 - [x] 비밀번호 재설정 화면 #### 3일차 오후 - [x] [AI] 인증 API 연동 {{ ... }} ### 5일차: 지출 관리 기능 개발 #### 오전 - [x] [AI] 지출 추가/편집 화면 개발 - [x] [AI] 지출 목록 및 상세 화면 개발 #### 오후 - [x] [AI] 지출 관리 API 연동 - [x] [AI] 지출 필터링 및 검색 기능 구현 ### 6일차: 예산 관리 및 프로필 기능 개발 #### 오전 - [x] [AI] 예산 관리 화면 개발 - [x] 예산 설정 화면 - [x] 예산 사용 현황 표시 - [x] 카테고리별 예산 관리 #### 오후 - [x] [AI] 프로필 화면 개발 - [x] 사용자 정보 표시 및 수정 - [x] 테마 설정 (라이트/다크 모드) - [x] 언어 설정 - [x] 로그아웃 기능 ### 7일차: 통계 및 분석 기능 개발 #### 오전 - [x] [AI] 통계 화면 개발 - [x] 지출 추이 차트 - [x] 카테고리별 지출 분석 - [x] 기간별 지출 비교 #### 오후 - [x] [AI] 분석 기능 구현 - [x] 지출 패턴 분석 - [x] 예산 대비 지출 분석 - [x] 절약 제안 기능 ### 8일차: 오프라인 동기화 기능 개발 #### 오전 - [x] [AI] 오프라인 동기화 인프라 구축 - [x] 동기화 큐 서비스 구현 - [x] 로컬 데이터베이스 서비스 구현 - [x] 네트워크 연결 상태 모니터링 서비스 구현 #### 오후 - [x] [AI] 동기화 UI/UX 구현 - [x] 동기화 상태 위젯 개발 - [x] 동기화 대시보드 위젯 개발 - [x] 동기화 상태 화면 개발 - [x] 동기화 정책 설정 기능 구현 ### 9일차: 오프라인 동기화 기능 테스트 및 개선 #### 오전 - [x] [AI] 동기화 기능 테스트 - [x] 다양한 네트워크 상황에서의 동기화 테스트 - [x] 오류 처리 및 재시도 메커니즘 테스트 - [x] 대용량 데이터 동기화 테스트 #### 오후 - [x] [AI] 동기화 기능 개선 - [x] 성능 최적화 - [x] 사용자 경험 개선 - [x] 오류 처리 메커니즘 강화 {{ ... }} ## 5. 진행 상황 요약 (2025-02-28 업데이트) ### 완료된 작업 1. **프로젝트 기본 구조 구현** - Flutter 프로젝트 생성 및 설정 - 디렉토리 구조 및 아키텍처 설계 - Provider 패턴 기반 상태 관리 구현 2. **디자인 시스템 구축** - 앱 테마 설정 (라이트/다크 모드) - 색상 팔레트 및 타이포그래피 정의 - 공통 UI 컴포넌트 구현 3. **핵심 화면 개발** - 스플래시 화면 - 로그인/회원가입 화면 - 홈 화면 (지출 요약 및 최근 지출 목록) - 지출 추가/편집/상세 화면 - 예산 관리 화면 - 프로필 화면 - 동기화 상태 화면 - 통계 및 분석 화면 4. **서비스 레이어 구현** - StorageService: Hive를 사용한 로컬 데이터 저장 - AuthService: 사용자 인증 관리 - ExpenseService: 지출 데이터 관리 - BudgetService: 예산 데이터 관리 - ApiService: 백엔드 API 통신 - SyncQueueService: 오프라인 동기화 작업 관리 - LocalDatabaseService: 로컬 데이터베이스 관리 - ConnectivityService: 네트워크 연결 상태 모니터링 5. **모델 구현** - UserModel: 사용자 정보 모델 - ExpenseModel: 지출 정보 모델 - BudgetModel: 예산 정보 모델 - CategoryConstants: 카테고리 상수 정의 - SyncOperation: 동기화 작업 모델 - SyncOperationType: 작업 유형 열거형 - SyncStatus: 작업 상태 열거형 6. **프로바이더 구현** - UserProvider: 사용자 상태 관리 - ExpenseProvider: 지출 상태 관리 - BudgetProvider: 예산 상태 관리 - ThemeProvider: 테마 상태 관리 - ConnectivityProvider: 네트워크 연결 상태 관리 7. **오프라인 동기화 기능 구현** - 오프라인 작업 큐 관리 시스템 - 동기화 상태 위젯 (SyncStatusWidget) - 동기화 대시보드 위젯 (SyncDashboardWidget) - 동기화 상태 화면 (SyncStatusScreen) - 네트워크 상태에 따른 자동/수동 동기화 정책 - 작업 재시도 및 오류 처리 메커니즘 - 동기화 작업 상태 추적 (대기, 진행 중, 완료, 실패) 8. **통계 및 분석 기능 구현** - 지출 추이 차트 구현 - 카테고리별 지출 분석 시각화 - 기간별 지출 비교 기능 - 지출 패턴 분석 알고리즘 - 예산 대비 지출 분석 대시보드 - 절약 제안 기능 ### 진행 중인 작업 1. 오프라인 동기화 기능 테스트 및 안정화 2. 테스트 환경 구성 (웹, 에뮬레이터) 3. 대용량 데이터 동기화 성능 최적화 ### 다음 작업 계획 1. 동기화 작업 우선순위 설정 기능 구현 2. 충돌 해결 메커니즘 구현 3. 동기화 통계 및 로그 기능 강화 4. 성능 최적화 및 버그 수정 5. 사용자 테스트 및 피드백 수집 6. 앱 출시 준비 (앱 스토어 등록 등) ### 기술적 이슈 및 해결 방안 1. **폰트 호환성 문제** - 문제: Pretendard 폰트 사용 시 오류 발생 - 해결: Google Fonts의 Noto Sans로 대체하여 해결 2. **라우팅 충돌 문제** - 문제: 라우트 이름과 변수명 충돌 - 해결: 라우트 이름 변수를 더 명확한 이름으로 변경 (settings → settingsRoute) 3. **API 연동 문제** - 문제: 싱글톤 패턴 구현 시 의존성 주입 이슈 - 해결: 생성자에서 선택적 매개변수를 통한 의존성 주입 방식 개선 4. **오프라인 동기화 이슈** - 문제: 네트워크 연결 복구 시 동기화 작업 중복 실행 - 해결: 작업 ID 기반 중복 방지 메커니즘 구현 5. **로컬 데이터베이스 성능 이슈** - 문제: 대용량 데이터 처리 시 지연 발생 - 해결: 인덱싱 및 페이지네이션 적용, 비동기 처리 최적화