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