# 적자 탈출 가계부 - 1단계 산출물 요약

## 1. 요구사항 문서

### 1.1 사용자 페르소나
- 3개의 대표 페르소나 정의 (직장인, 신혼부부, 대학생)
- 각 페르소나의 재정적 특성, 소비 패턴, 목표 정의
- 페르소나별 주요 문제점과 니즈 식별

### 1.2 핵심 문제 정의
- 신용카드 사용 관련 문제점 분석
- 기존 가계부/금융 앱의 한계 정리
- MVP 접근 방식 및 문제 해결 전략 수립

### 1.3 주요 사용 시나리오
- 3개의 사용자 시나리오 작성
  - 월간 카드 한도 관리
  - 충동 구매 방지
  - 부부 공동 카드 관리
- 각 시나리오별 사용자 여정 및 앱 기능 요구사항 정의

### 1.4 프로젝트 개요
- 프로젝트 목표, 범위, 기술 스택 정의
- MVP 핵심 기능 신용카드 관리 중심으로 수정
- 확장 기능에 AI 기반 재정 어시스턴트 추가

## 2. 사용자 스토리 및 기능 목록

### 2.1 사용자 스토리
- 카드 한도 관리 관련 스토리 (한도 설정, 현황 확인, 알림)
- 카드 사용 내역 관리 관련 스토리 (내역 기록, 조회/분석, 수정/관리)
- 대시보드 및 분석 관련 스토리 (메인 대시보드, 지출 분석, 리포트/인사이트)
- 사용자 관리 및 설정 관련 스토리 (프로필 관리, 데이터 관리, 다중 사용자 지원)

### 2.2 MVP 기능 목록 (MoSCoW 방법론)
- Must have: 월간 카드 한도 설정, 실시간 사용량 표시, 기본 알림 등
- Should have: 카테고리별 한도, 내역 템플릿, 기본 분석 기능 등
- Could have: 영수증 사진 촬영, 위치 기반 자동 완성, 맞춤형 리포트 등
- Won't have: 자동 내역 동기화, 다중 사용자 지원, AI 고급 분석 등

### 2.3 제외 기능 명확한 정의
- 자동 내역 동기화, 다중 사용자 지원, AI 기반 고급 분석 등 MVP에서 제외되는 기능 명확히 정의

## 3. 데이터 모델 설계

### 3.1 핵심 데이터 엔티티
- 사용자(Users) 테이블 구조
- 카드(Cards) 테이블 구조
- 카테고리(Categories) 테이블 구조
- 지출(Expenses) 테이블 구조
- 한도(Limits) 테이블 구조
- 알림(Notifications) 테이블 구조
- 템플릿(Templates) 테이블 구조

### 3.2 데이터 관계 및 제약 조건
- 테이블 간 관계 정의 (ERD 작성)
- 기본 카테고리 목록 정의
- 데이터 유효성 검사 규칙 정의

### 3.3 데이터베이스 인덱스 설계
- 성능 최적화를 위한 인덱스 설계
- 데이터 마이그레이션 전략
- 데이터 보안 고려사항

## 4. UI/UX 와이어프레임

### 4.1 핵심 화면 와이어프레임
- 로그인/회원가입 화면
- 메인 대시보드 화면
- 지출 입력 화면
- 지출 목록 화면
- 필터 및 검색 화면

### 4.2 추가 화면 와이어프레임
- 예산 설정 화면
- 분석 화면
- 설정 화면
- 카드 관리 화면
- 카드 추가 화면

### 4.3 화면 간 이동 흐름도
- 주요 사용자 흐름 정의
  - 신규 사용자 온보딩 흐름
  - 지출 기록 흐름
  - 지출 분석 흐름
  - 한도 관리 흐름
  - 지출 내역 검색 흐름

### 4.4 디자인 노트
- 색상 팔레트
- 타이포그래피
- 아이콘 및 시각적 요소
- 사용자 경험 고려사항
- 접근성 고려사항

## 5. 기술 스택 및 개발 환경

### 5.1 기술 스택
- 모바일 앱: Flutter (크로스 플랫폼)
- 백엔드: Supabase (PostgreSQL)
- AI 모델: 
  - 기기 내: TensorFlow Lite, 경량 모델 (DistilBERT)
  - 서버: Hugging Face 또는 OpenAI 모델

### 5.2 개발 환경 설정 계획
- 개발 환경 요구사항
- 필요한 개발 도구 목록
- 로컬 개발 환경과 서버 환경 설정 단계

## 6. 다음 단계 계획

### 6.1 2단계 목표
- 백엔드 구축 (Supabase 설정)
- 데이터베이스 스키마 구현
- 기본 API 엔드포인트 개발
- 인증 시스템 구현

### 6.2 향후 고려사항
- 개인정보 보호 방안
- LLM 모델 선택 및 최적화
- 사용자 피드백 반영 전략
- 단계별 기능 확장 계획
