Migrate from Supabase to Appwrite with core functionality and UI components

This commit is contained in:
hansoo
2025-05-05 08:58:27 +09:00
parent fdfdf15166
commit f83bb384af
79 changed files with 2373 additions and 199 deletions

View File

@@ -0,0 +1,223 @@
/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. **로컬 데이터베이스 성능 이슈**
- 문제: 대용량 데이터 처리 시 지연 발생
- 해결: 인덱싱 및 페이지네이션 적용, 비동기 처리 최적화