Skip to content

minju-22/DolFin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

673 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

S13P21B209# AI 저축 코치 서비스 - DolFin

"소비의 바다에서 허우적대는 당신을 위한 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가 복잡하고 불필요한 기능이 많음, 재미/동기 부여 요소가 부족하고, 충동 소비를 막아주지 못함

타겟 유저(Z세대)

  • 즉흥 소비형: 충동구매를 자주 하고, 월말이면 통장이 비는 사람
  • 목표 지향형: 여행,전자기기 등 구체적인 목표가 있어 단기 저축을 원하고, 동기부여가 필요한 사람
  • 습관 형성형: 꾸준한 저축을 하고 싶지만 쉽게 포기하는 사람

주요 기능

🪄 AI 저축 로드맵 생성

  • 목표 금액과 수입, 저축 성향을 입력하면 AI가 자동으로 저축 로드맵을 제안하고 코치를 매칭
  • AI 코치 유형에 따른 멘트 제공

📅 데일리 저축 미션

  • AI가 매일 달성 가능한 소액 저축 챌린지 제시 (커피값 절약, 배달음식 대신 해먹기 등)
  • 미션 성공 시 추가 금리 제공으로 동기 부여

💸 소비 내역 조회 및 충동소비 알림

  • 월별/일별 소비 내역을 그래프로 시각화, 카테고리별로 내역 조회
  • 특정 소비 발생 시 충동 소비 메시지 발송

💖 저축 동기 부여 요소

  • AI 코치 메시지: AI 코치 유형에 따른 실시간 응원,피드백 멘트 제공
  • 미래에서 온 편지: 목표 달성 후의 모습을 상상하게 하는 미래 편지 기능

👤 개인화 서비스

  • 회원 인증: 회원가입,로그인,로그아웃,회원탈퇴 지원
  • 계좌 관리: 사용자 연결 계좌 추가 연동/삭제
  • PWA 알림: 첫 로그인 시 환영 멘트, 클릭 시 랜덤으로 목표 페이지 이동
  • 목표 중단: 목표 중단 시 사용자 계좌 환급 또는 목표 전환 가능

🛠️ 개발 환경 & 기술 스택

Backend

- Language: Java
- Framework: Spring Boot 3.5.4
- ORM: JPA (Hibernate)
- Database: MySQL, Redis, Chroma
- Security: Spring Security, JWT
- Build Tool: Gradle

Frontend

- 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

Data/AI

- Language: Python
- Data Handling: Pandas, NumPy, scikit-learn, StandardScaler, ChromaDB, Ko-SBERT
- AI Model: scikit-learn 기반 로지스틱 회귀 모델, IsolationForest + 규칙 기반 모델

DevOps:

- Containerization: Docker, Docker Compose
- Web Server: NGINX
- Deployment: AWS EC2
- CI/CD: Jenkins
- Storage: Amazon S3

Communication

- Verson control: Git(GitLab)
- UI/UX Design: Figma
- Project Management: Notion, Jira

⚙️ 시스템 아키텍처


🗃️ ERD


🖌️ UI/UX

Dolfin 와이어프레임


🗂️ 디렉토리 구조

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 저축 로드맵 생성**

  • 사용자는 기입한 저축 목표, 목표 금액, 월 수입을 기입하고 이지선다 형식의 성향 답변
  • 응답 내용을 바탕으로 AI 저축 로드맵 생성 및 코치 매칭
  • 핵심 로직:
    • 금융 지식 RAG 기반 아키텍처 적용: 금융 기관 연구보고서와 전문가 저축 가이드 등 문서를 수집
    • Chroma Vetor DB와 Ko-SBERT 임베딩을 사용해 각 문단을 벡터화하고, 두가지 성격(일반 금융 정보/저축 전략 문서)의 문서로 분리
    • 사용자의 프로필(월 수입, 목표 금액, 긴급도 등)에 맞춰 다양한 형태의 응답 쿼리 생성
    • GPT 모델 기반 저축 로드맵과 AI 코치 매칭, 코치 성격에 따른 멘트 생성

📅 데일리 저축 미션

  • 사용자 소비 데이터와 미션 달성률을 바탕으로 AI가 데일리 미션을 생성
  • 미션 완료 시 해당 하는 금액 만큼 추가 저축, 달성 횟수에 따른 추가 금리 제공
  • 핵심 로직:
    • 최근 3개월 카드 내역으로 소비 유형 판별
    • 로지스틱 회귀 모델을 사용하며, 아래 3가지 Feature로 소비 유형 배정하고 미션 달성률도 추가 학습하여 데일리 미션을 생성
      • Lift: 개인 소비 비중/ 전체 소비 비중 (상대적 차이)
      • Gap: 개인 소비 비중 - 전체 소비 비중(절대적 차이)
      • Discretion: 재량 소비 성향 (필수/선택 지출에 따른 가중치)

💸 소비 내역 조회 및 충동소비 알림

  • 사용자의 월간 소비 내역 조회 가능, 전월 소비 그래프와 비교
  • AI 충동 소비 탐지 내역 탐지로 월간 충동 소비 총액 확인
  • 충동 소비가 아니라면 피드백 발송, 추후 정확도 개선에 활용
  • 핵심 로직:
    • 카드 거래 내역을 기반으로 충동 소비 여부를 감지
    • Isolation Forest 모델 사용, 사용자의 평균 거래 금액, 시간대 등을 고려해 소비 내역을 점수화
    • 충동 소비 고위험 시간대인 경우 추가 가중치를 적용
    • 주간/일간 추가 소비 발생 시 동적 가중치 추가
    • 추가 사용자의 충동 소비 피드백을 통해 개인별 충동 소비 임계값 조정

💖 저축 동기 부여 요소

  • 사용자는 목표별 페이지의 AI 코치 캐릭터를 클릭하면 성격 유형에 따른 응원/피드백 메시지를 확인 가능
  • 목표를 완성한 미래의 나에게서 온 편지를 확인하여 동기 부여

👤 개인화 서비스

  • 회원 가입
    • 이메일 인증 필요
    • 계정 생성 후 계좌 연동(1원 송금을 통한 계좌 확인)

  • 로그인/로그아웃

    • 이메일/비밀번호 입력
    • 비밀번호 변경 가능
  • 계좌 관리

    • 연동 계좌 추가 연결/해지 가능

  • 목표 중단

    • 목표를 중단할 수 있지만, 사용자 계좌로 환급하는 것 외에, 다른 목표에 추가하기도 가능
  • 회원 탈퇴

    • 회원 탈퇴가 가능하지만, 현재 저축 현황을 제공하여 유저가 한번 더 고민하게 만드는 UX로 설계

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors