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