Files
zellyy-finance/docs/archive/03_개발_단계/3단계/3단계_계획.md

7.5 KiB

/Users/hansoo./Documents/my vault/3. Resource/Users/hansoo./Documents/my vault/3. Resource# 적자 탈출 가계부 - 3단계 계획

1. 3단계 목표

3단계의 주요 목표는 적자 탈출 가계부 앱의 프론트엔드를 개발하고, 백엔드 API와 연동하여 완전한 사용자 경험을 제공하는 것입니다. 이 단계에서는 Flutter를 사용하여 크로스 플랫폼 모바일 앱을 개발합니다.

핵심 목표

  1. Flutter 프로젝트 설정 및 기본 구조 구현
  2. UI 컴포넌트 개발 및 디자인 시스템 구축
  3. 백엔드 API와의 연동 구현
  4. 핵심 화면 및 기능 구현
  5. 사용자 테스트 및 피드백 수집

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 업데이트)

완료된 작업

  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. 로컬 데이터베이스 성능 이슈

    • 문제: 대용량 데이터 처리 시 지연 발생
    • 해결: 인덱싱 및 페이지네이션 적용, 비동기 처리 최적화