# 적자 탈출 가계부 앱 프로젝트 계획서

## 1. 프로젝트 개요

### 1.1 프로젝트 배경 및 목적
많은 사람들이 신용카드를 사용한 후 상환 관리에 어려움을 겪고 있으며, 실시간으로 지출을 파악하지 못해 적자 상황에 빠지는 경우가 많습니다. 이 프로젝트는 사용자들이 실시간으로 자신의 재정 상태를 파악하고 관리할 수 있는 모바일 가계부 앱을 개발하여 적자 상황을 예방하는 것을 목적으로 합니다.

### 1.2 목표 사용자
- 신용카드 사용 후 상환 관리에 어려움을 겪는 사람들
- 지출 관리와 예산 계획이 필요한 개인 및 가족
- 재정 상태를 실시간으로 파악하고 싶은 사용자
- 적자 상황을 예방하고 싶은 사용자

### 1.3 핵심 가치 제안
- 실시간 지출 추적으로 재정 상태 즉시 파악
- 예산 설정 및 알림 기능으로 과소비 방지
- 직관적인 UI/UX로 쉽고 빠른 지출 기록
- 카테고리별 지출 분석으로 소비 패턴 이해
- 적자 예방을 위한 맞춤형 알림 및 조언

## 2. 프로젝트 범위 및 기능

### 2.1 MVP(Minimum Viable Product) 핵심 기능
- **사용자 관리**
  - 회원가입 및 로그인
  - 사용자 프로필 관리
  
- **신용카드 한도 관리**
  - 월간 카드 사용 한도 설정
  - 카드별 한도 설정 (선택적)
  - 실시간 사용량 추적 및 시각화
  - 한도 임계치 접근 시 알림 기능
  
- **카드 사용 내역 관리**
  - 카드 사용 내역 수동 입력
  - 기본적인 카테고리 분류
  - 내역 조회 및 필터링
  
- **대시보드**
  - 현재 카드 사용액 및 남은 한도 표시
  - 월간 카드 사용 요약
  - 카테고리별 사용 비율 차트
  
- **기본 분석**
  - 카테고리별 카드 사용 분석
  - 주간/월간 사용 추이 그래프

### 2.2 향후 확장 기능 (MVP 이후)
- 다중 카드 관리 및 통합 분석
- 카드사 API 연동을 통한 자동 내역 가져오기
- 영수증 스캔 및 자동 분류
- 예산 관리 및 저축 목표 설정
- 가계부 공유 기능
- 지출 패턴 기반 맞춤형 조언
- **AI 기반 지능형 재정 어시스턴트**
  - 경량 LLM을 활용한 소비 패턴 분석
  - 실시간 지출 조언 및 알림
  - 맞춤형 절약 전략 제안
  - 재정 목표 달성을 위한 단계별 가이드
  - 하이브리드 접근(기기 내 경량 모델 + 서버 기반 심층 분석)

## 3. 기술 스택 및 아키텍처

### 3.1 모바일 앱
- **프레임워크**: Flutter (iOS/Android 크로스 플랫폼)
- **상태 관리**: Provider 또는 Riverpod
- **로컬 데이터베이스**: Hive 또는 SQLite
- **UI 컴포넌트**: Flutter Material Design

### 3.2 백엔드 (자체 서버 + Supabase)
- **데이터베이스**: PostgreSQL (Supabase 내장)
- **인증 시스템**: Supabase Auth
- **API**: Supabase 자동 생성 API
- **배포 환경**: 자체 서버에 Docker로 Supabase 설치

### 3.3 데이터 모델
- **사용자(users)**: id, email, password, name, created_at
- **카드(card)**: id, user_id, card_number, expiration_date, limit, created_at
- **카드 사용 내역(card_transactions)**: id, card_id, amount, date, category_id, memo, created_at
- **카테고리(categories)**: id, name, icon, color

## 4. 개발 일정 및 마일스톤

### 4.1 1단계: 기획 및 설계 (1주)
- MVP 범위 정의 및 요구사항 명세
- 데이터 모델 및 API 설계
- UI/UX 와이어프레임 작성
- 기술 스택 최종 결정

### 4.2 2단계: 백엔드 구축 (1주)
- Supabase 자체 서버 설치 및 설정
- 데이터베이스 스키마 설정
- API 엔드포인트 구성
- 인증 시스템 설정

### 4.3 3단계: 모바일 앱 개발 (2주)
- 핵심 UI 컴포넌트 개발
- 사용자 인증 기능 구현
- 카드 한도 관리 및 사용 내역 관리 기능 구현
- 대시보드 및 기본 분석 기능 구현

### 4.4 4단계: 테스트 및 출시 준비 (1주)
- 내부 테스트 및 버그 수정
- 성능 최적화
- 앱 스토어 등록 준비
- 출시 자료 준비

### 4.5 총 개발 기간: 약 4주
- **1주차**: 기획 완료 및 백엔드 구축
- **2주차**: 핵심 UI 개발 및 기본 기능 구현
- **3주차**: 앱-서버 연동 및 추가 기능 구현
- **4주차**: 테스트, 버그 수정 및 출시 준비

## 5. 역할 분담

### 5.1 제품 기획 및 테스트 담당 (사용자)
- 앱 컨셉 및 요구사항 정의
- UI/UX 디자인 검토 및 피드백
- 사용자 테스트 케이스 작성
- 테스트 진행 및 피드백 제공
- 출시 자료 준비

### 5.2 기술 개발 담당 (AI 어시스턴트)
- 기술 스택 선정 및 아키텍처 설계
- 백엔드 개발 (Supabase 설정)
- 모바일 앱 개발 (Flutter)
- 데이터베이스 설계 및 구현
- 버그 수정 및 성능 최적화

## 6. 출시 전략

### 6.1 앱 스토어 등록
- Google Play 스토어 등록 (Android)
- App Store 등록 (iOS, 필요시)
- 앱 스토어 최적화 (ASO) 적용

### 6.2 초기 사용자 확보 전략
- 지인 네트워크를 통한 초기 사용자 모집
- 재정 관리 관련 커뮤니티 홍보
- 소셜 미디어 기본 홍보

### 6.3 피드백 수집 및 개선
- 인앱 피드백 시스템 구축
- 사용자 리뷰 모니터링
- 주요 피드백 기반 빠른 업데이트

## 7. MVP 이후 로드맵

### 7.1 단기 업데이트 (출시 후 1-2개월)
- 사용자 피드백 기반 UI/UX 개선
- 성능 최적화
- 기본 버그 수정

### 7.2 중기 업데이트 (출시 후 3-6개월)
- 다중 카드 관리 및 통합 분석
- 카드사 API 연동을 통한 자동 내역 가져오기
- 고급 분석 대시보드 추가

### 7.3 장기 업데이트 (출시 후 6개월 이상)
- 가계부 공유 기능
- 영수증 스캔 및 자동 분류
- AI 기반 지출 예측 및 조언 기능

## 8. 리스크 관리

### 8.1 기술적 리스크
- Supabase 자체 호스팅 안정성 이슈
- 모바일 기기 호환성 문제
- 데이터 동기화 충돌

### 8.2 대응 전략
- 정기적인 백업 시스템 구축
- 다양한 기기에서의 테스트 강화
- 오프라인 모드 및 충돌 해결 로직 구현

## 9. 성공 지표 및 평가

### 9.1 주요 성공 지표
- 사용자 등록 수
- 일일 활성 사용자 수 (DAU)
- 카드 사용 내역 기록 빈도
- 사용자 유지율
- 앱 스토어 평점

### 9.2 목표 수치 (출시 후 3개월)
- 사용자 등록: 500명 이상
- 일일 활성 사용자: 100명 이상
- 사용자 유지율: 40% 이상 (30일 기준)
- 앱 스토어 평점: 4.0 이상

## 10. 결론

본 프로젝트는 사용자들이 신용카드 사용 후 적자 상황에 빠지는 것을 방지하기 위한 실용적인 가계부 앱을 개발하는 것을 목표로 합니다. MVP 방식으로 약 4주 동안 핵심 기능을 개발하여 빠르게 출시한 후, 사용자 피드백을 바탕으로 지속적으로 개선해 나갈 계획입니다. 자체 서버에 Supabase를 설치하여 비용 효율적으로 백엔드를 구축하고, Flutter를 활용하여 iOS와 Android 플랫폼 모두를 지원하는 앱을 개발할 것입니다.

이 프로젝트를 통해 사용자들이 자신의 재정 상태를 실시간으로 파악하고 관리할 수 있게 되어, 적자 상황을 예방하고 건강한 재정 습관을 형성하는 데 도움이 될 것으로 기대합니다.