You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Next.js 16 기반 가계부 애플리케이션. 목표 금액을 설정하고 수입/지출/저축을 관리하며 자산 달성률을 추적합니다.
주요 기술 스택
Framework: Next.js 16 (App Router)
Language: TypeScript
Styling: Tailwind CSS
UI Components: shadcn/ui
Database: Neon PostgreSQL
ORM: Drizzle ORM
Authentication: NextAuth.js
State Management: Zustand
Icons: Lucide React
시작하기
# 의존성 설치
bun install
# 개발 서버 시작
bun run dev
데이터베이스 스크립트
bun run db:generate # 마이그레이션 파일 생성
bun run db:migrate # 마이그레이션 실행
bun run db:push # 스키마를 DB에 직접 푸시 (개발용)
bun run db:studio # Drizzle Studio 실행 (DB GUI)
bun run db:seed # 시드 데이터 삽입
프로젝트 구조
100m/
├── app/ # Next.js App Router
├── actions/ # DB 연결 API 로직 (Server Actions)
├── components/ # 재사용 가능한 컴포넌트
│ └── ui/ # shadcn/ui 기반 UI 컴포넌트
├── db/ # 데이터베이스 스키마 및 설정
│ ├── schema.ts # Drizzle 스키마 정의
│ ├── index.ts # DB 연결
│ └── seed.ts # 시드 데이터
├── lib/ # 유틸리티 함수
│ └── validations/ # Zod 스키마 타입
└── stores/ # Zustand 스토어
IA (Information Architecture)
진입 플로우
스플래시 - 로고 + 앱 이름 (1초)
소셜 로그인 - Google / Kakao / Apple(선택)
온보딩 (최초 진입 시)
Step 1: 목표 금액 설정 (기본값: 1억원)
Step 2: 초기 자금 입력
Step 3: 완료 후 홈 진입
탭 구조
탭
이름
설명
Tab 1
홈 (Home)
목표 달성률, 이번 달 요약, 월별 자산 추이 차트
Tab 2
가계부 (Transactions)
월별 캘린더 뷰, 일별 상세 바텀시트, 수입/지출 등록
Tab 3
자동화 (Automation)
고정 지출/저축 관리, 자동 반영
Tab 4
자산 (Assets)
자산 계좌 관리, 입출금 내역
Tab 5
더보기 (More)
분석 리포트, 목표 설정, 카테고리 편집, 다크모드
핵심 로직
순자산 계산
현금 = 초기자금 + 수입 - 지출 - 저축납입 + 저축해지
저축 = Σ(assets.balance)
순자산 = 현금 + 저축
달성률 = (순자산 / 목표금액) * 100