Migrate from Supabase to Appwrite with core functionality and UI components
This commit is contained in:
296
docs/archive/03_개발_단계/4단계/4단계_계획.md
Normal file
296
docs/archive/03_개발_단계/4단계/4단계_계획.md
Normal file
@@ -0,0 +1,296 @@
|
||||
# 적자 탈출 가계부 - 4단계 계획
|
||||
|
||||
## 1. 4단계 목표
|
||||
|
||||
4단계의 주요 목표는 적자 탈출 가계부 앱의 품질을 향상시키고, 사용자 경험을 개선하며, 앱 스토어 출시를 준비하는 것입니다. 이 단계에서는 테스트, 최적화, 안정화 작업을 중점적으로 진행합니다.
|
||||
|
||||
### 핵심 목표
|
||||
1. [x] 앱 성능 최적화 및 안정화 (2025년 2월 28일 완료)
|
||||
2. [ ] 사용자 테스트 및 피드백 수집/반영
|
||||
3. [x] 오프라인 동기화 기능 안정화 (2025년 2월 25일 완료)
|
||||
4. [ ] 앱 출시 준비 및 배포
|
||||
5. [ ] 사용자 가이드 및 문서 작성
|
||||
|
||||
## 2. 작업 목록 및 일정
|
||||
|
||||
### 1일차: 성능 최적화 및 코드 리팩토링 (2025년 2월 24일 완료)
|
||||
|
||||
#### 오전
|
||||
- [x] [AI] 성능 분석 및 병목 지점 식별
|
||||
- [x] 메모리 사용량 분석
|
||||
- [x] 렌더링 성능 분석
|
||||
- [x] 네트워크 요청 최적화 분석
|
||||
|
||||
#### 오후
|
||||
- [x] [AI] 코드 리팩토링 및 최적화
|
||||
- [x] 불필요한 빌드 최소화
|
||||
- [x] 메모리 누수 해결
|
||||
- [x] 이미지 및 리소스 최적화
|
||||
|
||||
### 2일차: 오프라인 동기화 기능 안정화 (2025년 2월 25일 완료)
|
||||
|
||||
#### 오전
|
||||
- [x] [AI] 동기화 성능 최적화
|
||||
- [x] 대용량 데이터 동기화 테스트
|
||||
- [x] 동기화 작업 우선순위 설정 기능 구현
|
||||
- [x] 충돌 해결 메커니즘 구현
|
||||
|
||||
#### 오후
|
||||
- [x] [AI] 동기화 오류 처리 강화
|
||||
- [x] 네트워크 불안정 상황 테스트
|
||||
- [x] 동기화 실패 복구 메커니즘 개선
|
||||
- [x] 동기화 로그 및 통계 기능 구현
|
||||
|
||||
### 3일차: 개발자 모드 및 성능 모니터링 도구 구현 (2025년 2월 26-27일 완료)
|
||||
|
||||
#### 오전
|
||||
- [x] [AI] 개발자 모드 기능 구현
|
||||
- [x] 개발자 모드 활성화/비활성화 기능
|
||||
- [x] 7번 클릭으로 개발자 모드 전환 기능
|
||||
- [x] SharedPreferences를 사용한 상태 지속
|
||||
|
||||
#### 오후
|
||||
- [x] [AI] 성능 모니터링 도구 구현
|
||||
- [x] 프레임 렌더링 타이밍 추적
|
||||
- [x] 빌드 시간 및 래스터 시간 기록
|
||||
- [x] 느린 프레임 및 프레임 드롭 감지
|
||||
- [x] 성능 측정 데이터 저장 및 분석
|
||||
|
||||
### 4일차: 메모리 관리 및 성능 프로필 화면 구현 (2025년 2월 28일 완료)
|
||||
|
||||
#### 오전
|
||||
- [x] [AI] 메모리 관리 기능 강화
|
||||
- [x] 메모리 사용량 기록
|
||||
- [x] 리소스(구독, 타이머, 애니메이션 컨트롤러) 추적
|
||||
- [x] 메모리 정리 및 가비지 컬렉션 기능
|
||||
|
||||
#### 오후
|
||||
- [x] [AI] 성능 프로필 화면 구현
|
||||
- [x] 앱 및 기기 정보 표시
|
||||
- [x] 빌드 시간 차트
|
||||
- [x] 메모리 사용량 차트
|
||||
- [x] 메모리 정리 및 보고서 생성 버튼
|
||||
- [x] [AI] 오프라인 모드 및 테스트 모드 구현
|
||||
- [x] 인증 서비스 테스트 모드 추가
|
||||
- [x] 오프라인 상태에서 로그인/회원가입 기능 구현
|
||||
- [x] 동기화 큐에 인증 작업 추가 기능 구현
|
||||
- [x] 로컬 데이터베이스에 사용자 정보 저장 기능 추가
|
||||
|
||||
### 5일차: 사용자 테스트 준비 및 진행 (2025년 3월 1일 예정)
|
||||
|
||||
#### 오전
|
||||
- [ ] [AI] 테스트 시나리오 및 설문지 작성
|
||||
- [ ] 핵심 기능 테스트 시나리오
|
||||
- [ ] 사용성 테스트 항목
|
||||
- [ ] 피드백 수집 설문지
|
||||
|
||||
#### 오후
|
||||
- [ ] [사용자] 내부 테스트 진행
|
||||
- [ ] 테스트 참가자 모집
|
||||
- [ ] 테스트 세션 진행
|
||||
- [ ] 피드백 수집
|
||||
|
||||
### 6일차: 피드백 분석 및 개선 (2025년 3월 2일 예정)
|
||||
|
||||
#### 오전
|
||||
- [ ] [AI] 수집된 피드백 분석
|
||||
- [ ] 주요 이슈 및 개선점 식별
|
||||
- [ ] 우선순위 설정
|
||||
- [ ] 개선 계획 수립
|
||||
|
||||
#### 오후
|
||||
- [ ] [AI] 핵심 개선사항 구현
|
||||
- [ ] UI/UX 개선
|
||||
- [ ] 기능 개선
|
||||
- [ ] 버그 수정
|
||||
|
||||
### 7일차: 보안 및 데이터 무결성 강화 (2025년 3월 3일 예정)
|
||||
|
||||
#### 오전
|
||||
- [ ] [AI] 보안 감사 및 개선
|
||||
- [ ] 데이터 암호화 검토
|
||||
- [ ] 인증 및 권한 관리 강화
|
||||
- [ ] 개인정보 보호 검토
|
||||
|
||||
#### 오후
|
||||
- [ ] [AI] 데이터 무결성 강화
|
||||
- [ ] 데이터 백업 및 복구 기능
|
||||
- [ ] 데이터 검증 로직 강화
|
||||
- [ ] 오류 발생 시 데이터 보호 메커니즘
|
||||
|
||||
### 8일차: 앱 출시 준비 (2025년 3월 4일 예정)
|
||||
|
||||
#### 오전
|
||||
- [ ] [AI] 앱 스토어 최적화
|
||||
- [ ] 앱 아이콘 및 스크린샷 준비
|
||||
- [ ] 앱 설명 및 키워드 최적화
|
||||
- [ ] 개인정보 처리방침 작성
|
||||
|
||||
#### 오후
|
||||
- [ ] [AI] 출시 버전 빌드 및 테스트
|
||||
- [ ] 릴리스 빌드 생성
|
||||
- [ ] 최종 테스트 진행
|
||||
- [ ] 배포 준비
|
||||
|
||||
### 9일차: 사용자 가이드 및 문서 작성 (2025년 3월 5일 예정)
|
||||
|
||||
#### 오전
|
||||
- [ ] [AI] 사용자 가이드 작성
|
||||
- [ ] 주요 기능 사용법
|
||||
- [ ] 자주 묻는 질문 (FAQ)
|
||||
- [ ] 문제 해결 가이드
|
||||
|
||||
#### 오후
|
||||
- [ ] [AI] 개발자 문서 작성
|
||||
- [ ] 아키텍처 문서
|
||||
- [ ] API 문서
|
||||
- [ ] 유지보수 가이드
|
||||
|
||||
## 3. 기술 스택 및 도구
|
||||
|
||||
### 테스트 도구
|
||||
- Flutter 테스트 프레임워크
|
||||
- Firebase Test Lab
|
||||
- Flutter Performance 모니터링 도구
|
||||
- 자체 개발한 성능 프로파일링 도구
|
||||
|
||||
### 성능 최적화 도구
|
||||
- Flutter DevTools
|
||||
- Lighthouse (웹 버전)
|
||||
- Firebase Performance Monitoring
|
||||
- 자체 개발한 메모리 관리 및 성능 모니터링 도구
|
||||
|
||||
### 배포 도구
|
||||
- Fastlane
|
||||
- Firebase App Distribution
|
||||
- Google Play Console
|
||||
- Apple App Store Connect
|
||||
|
||||
## 4. 품질 지표 및 목표
|
||||
|
||||
### 성능 목표
|
||||
- 앱 시작 시간: 2초 이내
|
||||
- 화면 전환 시간: 300ms 이내
|
||||
- 메모리 사용량: 최대 100MB
|
||||
- 배터리 소모: 1시간 사용 시 5% 이내
|
||||
- 프레임 드롭률: 1% 이하
|
||||
|
||||
### 안정성 목표
|
||||
- 크래시 비율: 0.1% 이하
|
||||
- ANR (Application Not Responding): 0.05% 이하
|
||||
- 오프라인 동기화 성공률: 99% 이상
|
||||
- 메모리 누수 발생률: 0%
|
||||
|
||||
### 사용자 경험 목표
|
||||
- 앱 스토어 평점: 4.5 이상
|
||||
- 사용자 이탈률: 20% 이하
|
||||
- 일일 활성 사용자 (DAU): 초기 목표 1,000명
|
||||
|
||||
## 5. 출시 전략
|
||||
|
||||
### 단계적 출시
|
||||
1. 내부 테스트 (알파)
|
||||
- 개발팀 및 내부 사용자 대상
|
||||
- 주요 버그 및 성능 이슈 식별
|
||||
- 개발자 모드를 통한 성능 데이터 수집
|
||||
|
||||
2. 제한된 공개 테스트 (베타)
|
||||
- 선별된 외부 사용자 대상
|
||||
- 사용자 피드백 수집 및 개선
|
||||
- 성능 모니터링 데이터 분석
|
||||
|
||||
3. 정식 출시
|
||||
- 구글 플레이 스토어 및 애플 앱 스토어 출시
|
||||
- 마케팅 활동 시작
|
||||
|
||||
### 마케팅 전략
|
||||
- 소셜 미디어 홍보
|
||||
- 금융/가계부 관련 커뮤니티 홍보
|
||||
- 보도자료 배포
|
||||
- 인플루언서 협업
|
||||
|
||||
## 6. 위험 요소 및 대응 계획
|
||||
|
||||
### 잠재적 위험
|
||||
1. **성능 이슈**
|
||||
- 위험: 대용량 데이터 처리 시 성능 저하
|
||||
- 대응: 페이지네이션 및 지연 로딩 구현, 데이터 캐싱 최적화, 개발자 모드를 통한 지속적인 성능 모니터링
|
||||
|
||||
2. **동기화 충돌**
|
||||
- 위험: 오프라인 모드에서 동일 데이터 수정 시 충돌
|
||||
- 대응: 충돌 해결 알고리즘 구현, 사용자 선택 옵션 제공, 동기화 로그 및 통계 기능을 통한 문제 추적
|
||||
|
||||
3. **Provider 관련 오류**
|
||||
- 위험: Provider 패턴 사용 시 의존성 주입 문제로 앱 실행 오류 발생
|
||||
- 대응: 모든 Provider를 MultiProvider에 등록하고, 의존성 주입을 통해 서비스 공유, 일관된 네이밍 컨벤션 적용
|
||||
|
||||
4. **API 요청 실패**
|
||||
- 위험: 서버 연결 불안정 또는 API 오류로 인한 데이터 로딩 실패
|
||||
- 대응: 모든 API 호출에 대한 로컬 데이터 대체 로직 구현, 오프라인 모드 강화, 사용자 친화적 오류 메시지 제공
|
||||
|
||||
5. **사용자 수용성**
|
||||
- 위험: 복잡한 기능으로 인한 사용자 혼란
|
||||
- 대응: 직관적인 UI/UX 개선, 튜토리얼 및 도움말 강화
|
||||
|
||||
6. **보안 취약점**
|
||||
- 위험: 개인 금융 데이터 유출 가능성
|
||||
- 대응: 데이터 암호화, 보안 감사, 취약점 테스트
|
||||
|
||||
## 7. 해결된 주요 이슈
|
||||
|
||||
### Provider 관련 오류
|
||||
- **문제**: ConnectivityProvider를 찾을 수 없는 `ProviderNotFoundException` 오류 발생
|
||||
- **원인**:
|
||||
1. `main.dart`에 `ConnectivityProvider`가 MultiProvider 목록에 포함되지 않음
|
||||
2. `ConnectivityProvider` 생성자가 새로운 `ConnectivityService` 인스턴스를 생성하여 의존성 공유 불가
|
||||
- **해결**:
|
||||
1. `main.dart`의 MultiProvider 목록에 `ConnectivityProvider` 추가
|
||||
2. `ConnectivityProvider` 생성자 수정하여 외부에서 `ConnectivityService` 주입 가능하도록 변경
|
||||
3. `isConnected` getter 추가하여 `isOnline`과 동일하게 동작하도록 함
|
||||
|
||||
### 예산 데이터 로딩 오류
|
||||
- **문제**: 예산 화면에서 "예산 사용 현황을 불러오는 중 오류가 발생했습니다: Exception: 예산 사용 현황 조회 실패: Exception: 서버 오류: 404" 메시지 표시
|
||||
- **원인**: 서버에서 예산 데이터를 가져오는 API 요청이 404 오류를 반환하고, 오류 발생 시 로컬 데이터를 사용하는 대체 로직이 없었음
|
||||
- **해결**: `BudgetService`의 `getBudgetUsage` 메서드를 수정하여 API 호출이 실패할 경우 로컬 데이터를 사용하도록 변경
|
||||
|
||||
## 8. 유지보수 계획
|
||||
|
||||
### 정기 업데이트
|
||||
- 월 1회 기능 업데이트
|
||||
- 2주 1회 버그 수정 및 안정성 개선
|
||||
- 사용자 피드백 기반 개선 사항 우선순위 지정
|
||||
|
||||
### 모니터링 시스템
|
||||
- Firebase Crashlytics를 통한 오류 모니터링
|
||||
- Firebase Analytics를 통한 사용자 행동 분석
|
||||
- 자체 개발한 성능 모니터링 도구를 통한 성능 데이터 수집 및 분석
|
||||
- 사용자 피드백 수집 및 분석 시스템
|
||||
|
||||
## 9. 개발자 모드 및 성능 모니터링 도구 활용 계획
|
||||
|
||||
### 개발자 모드 활용
|
||||
- 내부 테스트 중 성능 데이터 수집
|
||||
- 사용자 환경에서의 실제 성능 측정
|
||||
- 문제 발생 시 상세 진단 정보 수집
|
||||
|
||||
### 성능 모니터링 도구 활용
|
||||
- 프레임 렌더링 성능 지속적 모니터링
|
||||
- 메모리 사용량 추적 및 최적화
|
||||
- 성능 병목 현상 조기 발견 및 해결
|
||||
- 사용자 기기별 성능 차이 분석
|
||||
|
||||
### 메모리 관리 도구 활용
|
||||
- 메모리 누수 조기 발견 및 해결
|
||||
- 리소스 사용 최적화
|
||||
- 저사양 기기에서의 성능 개선
|
||||
|
||||
## 10. 결론 및 기대 효과
|
||||
|
||||
### 기대 효과
|
||||
- 앱의 안정성과 성능이 향상되어 사용자滿足도가 증가할 것으로 기대
|
||||
- 사용자 피드백을 반영한 지속적인 개선으로 앱의 품질이 유지될 것으로 기대
|
||||
- 마케팅 활동을 통해 사용자 수와 앱 스토어 평점이 개선될 것으로 기대
|
||||
|
||||
## 11. 참고자료
|
||||
|
||||
- [Git 이슈 트래킹 시스템 설정](1.%20Project/2.%20ZELLYY/젤리의%20적자%20탈출/04_참고자료/Git_이슈_트래킹_시스템.md)
|
||||
Reference in New Issue
Block a user