"소비의 바다에서 허우적대는 당신을 위한 AI 저축코치"
Z세대를 위한 저축 습관 형성을 도와주는 서비스 입니다
- AI 저축 코치 서비스-Dolfin 은 귀여운 AI 저축 코치가 Z세대의 소비 관리를 함께하며 목표 기반 저축을 데일리 챌린지를 통해 돕고 리워드와 재미를 주는 서비스 입니다.
- 저축 로드맵 생성과 코치 매칭, 데일리 미션 제공, 충동 소비 감지 까지 3종 AI를 탑재했습니다.
- 개발 기간: 2025.08.25~2025.09.28 (5주)
- 프로젝트 목표: Z세대 맞춤형 목표 기반 저축 습관 형성을 돕는 AI 저축 코치 서비스 구축
| 정현서(팀장) | 제갈도현 | 한민주 | 안다빈 | 공윤서 | 임주빈 |
|---|---|---|---|---|---|
| Infra / BE / AI | BE / AI | BE / Data / AI | FE / PM | FE | FE |
- Dolfin은 다음과 같은 배경에서 기획되었습니다.
- 유연성 부족한 기존 자유 적금: 매달 정해진 기간과 금액을 넣어야 하고 각종 상품을 유저가 직접 고민하고 선택해야 함
- 기존 저축 서비스의 단점: UI/UX가 복잡하고 불필요한 기능이 많음, 재미/동기 부여 요소가 부족하고, 충동 소비를 막아주지 못함
- 즉흥 소비형: 충동구매를 자주 하고, 월말이면 통장이 비는 사람
- 목표 지향형: 여행,전자기기 등 구체적인 목표가 있어 단기 저축을 원하고, 동기부여가 필요한 사람
- 습관 형성형: 꾸준한 저축을 하고 싶지만 쉽게 포기하는 사람
🪄 AI 저축 로드맵 생성
- 목표 금액과 수입, 저축 성향을 입력하면 AI가 자동으로 저축 로드맵을 제안하고 코치를 매칭
- AI 코치 유형에 따른 멘트 제공
📅 데일리 저축 미션
- AI가 매일 달성 가능한 소액 저축 챌린지 제시 (커피값 절약, 배달음식 대신 해먹기 등)
- 미션 성공 시 추가 금리 제공으로 동기 부여
💸 소비 내역 조회 및 충동소비 알림
- 월별/일별 소비 내역을 그래프로 시각화, 카테고리별로 내역 조회
- 특정 소비 발생 시 충동 소비 메시지 발송
💖 저축 동기 부여 요소
- AI 코치 메시지: AI 코치 유형에 따른 실시간 응원,피드백 멘트 제공
- 미래에서 온 편지: 목표 달성 후의 모습을 상상하게 하는 미래 편지 기능
👤 개인화 서비스
- 회원 인증: 회원가입,로그인,로그아웃,회원탈퇴 지원
- 계좌 관리: 사용자 연결 계좌 추가 연동/삭제
- PWA 알림: 첫 로그인 시 환영 멘트, 클릭 시 랜덤으로 목표 페이지 이동
- 목표 중단: 목표 중단 시 사용자 계좌 환급 또는 목표 전환 가능
- Language: Java
- Framework: Spring Boot 3.5.4
- ORM: JPA (Hibernate)
- Database: MySQL, Redis, Chroma
- Security: Spring Security, JWT
- Build Tool: Gradle
- Language: TypeScript, JavaScript
- Package Manager: npm
- Library: React 19.0.0, react-dom 19.0.0
- Styling: Tailwind CSS, shadcn/ui
- State Management: Zustand 5.0.8
- Build/Runtime: Vite 6.0.11, Node.js v22.17.1 (LTS)
- PWA Support: vite-plugin-pwa 0.21.2, Workbox 7.3.0, vapid
- Language: Python
- Data Handling: Pandas, NumPy, scikit-learn, StandardScaler, ChromaDB, Ko-SBERT
- AI Model: scikit-learn 기반 로지스틱 회귀 모델, IsolationForest + 규칙 기반 모델
- Containerization: Docker, Docker Compose
- Web Server: NGINX
- Deployment: AWS EC2
- CI/CD: Jenkins
- Storage: Amazon S3
- Verson control: Git(GitLab)
- UI/UX Design: Figma
- Project Management: Notion, Jira
Backend
backend
├── gradle/ # Gradle wrapper 및 설정 파일
└── src
└── main
├── java
│ └── com.galmuri.dolfin
│ ├── account/ # 계좌 관련 도메인
│ │ ├── controller # REST API 컨트롤러
│ │ ├── dto # 데이터 전송 객체 (DTO)
│ │ ├── entity # JPA 엔티티 클래스
│ │ ├── repository # Spring Data JPA Repository
│ │ └── service # 비즈니스 로직 서비스 계층
│ │
│ ├── autotransfer/ # 자동이체 관련 도메인
│ │ ├── entity
│ │ ├── enums
│ │ ├── repository
│ │ ├── scheduler # 스케줄러 (자동 실행 작업)
│ │ └── service
│ │
│ ├── card/ # 카드 관련 도메인
│ │ ├── controller
│ │ ├── dto
│ │ ├── entity
│ │ ├── repository
│ │ └── service
│ │
│ ├── consumption/ # 소비 내역 관련 모듈
│ ├── global/ # 전역 설정, 공용 유틸, 예외 처리 등
│ ├── goal/ # 저축 목표 관련 도메인
│ ├── impulse/ # 충동 소비 관리 관련 도메인
│ ├── mission/ # 챌린지 및 미션 관련 도메인
│ └── moneycoach/ # AI 머니코치 관련 도메인
│
└── resources
├── database/ # DB 초기화 스크립트, SQL 파일
└── application.yml # Spring Boot 메인 환경설정 파일Frontend
frontend
└── dolfin
├── dist/ # 빌드 결과물 (배포용)
├── node_modules/ # 프로젝트 종속성 패키지
├── public/ # 정적 리소스 (favicon, manifest 등)
└── src/
├── app/ # 애플리케이션 진입 및 전역 설정
│ ├── AuthGuard.tsx # 인증 가드 (라우팅 보호)
│ ├── layout.tsx # 전역 레이아웃
│ ├── main.tsx # 엔트리 포인트
│ ├── paths.ts # 라우트 경로 상수 정의
│ ├── providers.tsx # Context Providers 등록
│ └── router.tsx # React Router 설정
│
├── assets/ # 이미지, 아이콘, 폰트 등 정적 리소스
│
├── components/ # Atomic Design 기반 UI 컴포넌트
│ ├── atoms/ # 최소 단위 UI 요소 (Button, Input 등)
│ ├── molecules/ # 여러 Atoms를 조합한 컴포넌트
│ └── ui/ # UI 유틸 컴포넌트 모음
│
├── lib/ # 공용 라이브러리, 유틸 함수
│
├── pages/ # 페이지 단위 컴포넌트
│ ├── Auth/ # 로그인/회원가입
│ ├── Consumption/ # 소비 내역 페이지
│ ├── Goals/ # 저축 목표 관련 페이지
│ ├── home/ # 홈 화면
│ ├── MyPage/ # 마이페이지
│ ├── Onboarding/ # 온보딩 플로우
│ └── NotFoundPage.tsx # 404 페이지
│
├── pwa/ # PWA 관련 설정 및 컴포넌트
│ ├── pwa-register-shim.ts
│ ├── PWABadge.tsx
│ ├── registerSW.ts
│ └── sw.ts # 서비스 워커
│
├── store/ # Zustand 상태 관리
├── styles/ # 글로벌 스타일 (Tailwind 등)
├── types/ # 전역 타입 정의 (TypeScript)
└── vite-env.d.ts # Vite 환경 변수 타입 선언- 사용자는 기입한 저축 목표, 목표 금액, 월 수입을 기입하고 이지선다 형식의 성향 답변
- 응답 내용을 바탕으로 AI 저축 로드맵 생성 및 코치 매칭
- 핵심 로직:
- 금융 지식 RAG 기반 아키텍처 적용: 금융 기관 연구보고서와 전문가 저축 가이드 등 문서를 수집
- Chroma Vetor DB와 Ko-SBERT 임베딩을 사용해 각 문단을 벡터화하고, 두가지 성격(일반 금융 정보/저축 전략 문서)의 문서로 분리
- 사용자의 프로필(월 수입, 목표 금액, 긴급도 등)에 맞춰 다양한 형태의 응답 쿼리 생성
- GPT 모델 기반 저축 로드맵과 AI 코치 매칭, 코치 성격에 따른 멘트 생성
- 사용자 소비 데이터와 미션 달성률을 바탕으로 AI가 데일리 미션을 생성
- 미션 완료 시 해당 하는 금액 만큼 추가 저축, 달성 횟수에 따른 추가 금리 제공
- 핵심 로직:
- 최근 3개월 카드 내역으로 소비 유형 판별
- 로지스틱 회귀 모델을 사용하며, 아래 3가지 Feature로 소비 유형 배정하고 미션 달성률도 추가 학습하여 데일리 미션을 생성
- Lift: 개인 소비 비중/ 전체 소비 비중 (상대적 차이)
- Gap: 개인 소비 비중 - 전체 소비 비중(절대적 차이)
- Discretion: 재량 소비 성향 (필수/선택 지출에 따른 가중치)
- 사용자의 월간 소비 내역 조회 가능, 전월 소비 그래프와 비교
- AI 충동 소비 탐지 내역 탐지로 월간 충동 소비 총액 확인
- 충동 소비가 아니라면 피드백 발송, 추후 정확도 개선에 활용
- 핵심 로직:
- 카드 거래 내역을 기반으로 충동 소비 여부를 감지
- Isolation Forest 모델 사용, 사용자의 평균 거래 금액, 시간대 등을 고려해 소비 내역을 점수화
- 충동 소비 고위험 시간대인 경우 추가 가중치를 적용
- 주간/일간 추가 소비 발생 시 동적 가중치 추가
- 추가 사용자의 충동 소비 피드백을 통해 개인별 충동 소비 임계값 조정
- 사용자는 목표별 페이지의 AI 코치 캐릭터를 클릭하면 성격 유형에 따른 응원/피드백 메시지를 확인 가능
- 목표를 완성한 미래의 나에게서 온 편지를 확인하여 동기 부여
- 회원 가입
- 이메일 인증 필요
- 계정 생성 후 계좌 연동(1원 송금을 통한 계좌 확인)
-
로그인/로그아웃
- 이메일/비밀번호 입력
- 비밀번호 변경 가능
-
계좌 관리
- 연동 계좌 추가 연결/해지 가능
-
목표 중단
- 목표를 중단할 수 있지만, 사용자 계좌로 환급하는 것 외에, 다른 목표에 추가하기도 가능
-
회원 탈퇴
- 회원 탈퇴가 가능하지만, 현재 저축 현황을 제공하여 유저가 한번 더 고민하게 만드는 UX로 설계









