Skip to content

Solid9966/MGK

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

410 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

readme

반려동물 케어 및 비용 관리 기반 시니어 생활 금융 서비스

👫 Team

Profile Name Roles Contributions
전유진
@Yujin0827
Project Manager
·
Full Stack Developer
·
Data Analysis
<프로젝트 총괄 및 협업 전략 구축>
- 팀장으로서 전체 일정 관리 및 역할 분배 수행
- 초기 TBD 기반 개발 → Git Flow 전환 협업 구조 구축

<서비스 방향 재정립 및 데이터 기반 금융 구조 설계>
- 기존 기능 나열형 서비스에서 보이스 기반 데이터 수집 → 재정 분석 → 금융상품 연계 구조로 서비스 방향 전환
- 데이터 기반 재정관리 서비스 구조 설계

<프론트엔드 개발 환경 구축>
- Next.js 기반 프론트엔드 개발 환경 구성
- 프로젝트 구조 설계 및 초기 개발 표준 수립

<서비스 아키텍처 설계 및 개발 표준 수립>
-프론트/백엔드 전반 구조 설계 및 공통 컴포넌트 구축
- 데이터 흐름 기반 구조 설계를 통한 확장성 및 유지보수성 확보

<마이데이터 기반 재정 분석 시스템 구현>
- 사용자 맞춤형 재정 분석 로직 설계 및 구현
- 반려동물 생애주기 및 연령별 의료비를 반영한 비용 예측 모델 구현

<금융상품 연계 및 분석 기능 구현>
- 절감 가능 비용을 분석하는 데이터 기반 금융 상품 추천 및 리포트 로직 구현
- 실질적인 금융 활용 구조 구현

<Full Stack 개발 수행>
- 공통 컴포넌트 설계 및 개발
- 자산 분석 리포트 화면 및 API 구현
- 마이데이터 연동 API 및 데이터 처리 로직 구현
정그린
@Green-JEONG
Sub Project Manager
·
Full Stack Developer
·
UX Architect
<GitHub 레포지토리 구축 및 협업 환경 초기 세팅>
- 프로젝트 GitHub 레포지토리 생성 및 초기 구조 설정
- 협업을 위한 코드 관리 기반 환경 구축

<AI 기반 데이터 디지털화 및 자동 수집 구조 구현>
- Google Vision OCR 기반 진료 내역 데이터 추출 및 구조화 기능 개발
- 사용자 입력 없이 데이터를 축적할 수 있는 자동 데이터 수집 구조 구축

<사용자 행동 기반 데이터 수집 기능 구현>
- HealthKit 기반 만보기 및 산책 데이터 자동 수집 기능 구현
- 알림-응답 기반 UX 설계를 통해 사용자 입력 최소화

<UX Design>
- 시니어 친화적 에러 처리 UX 설계 및 상황 기반 인터페이스 구현

<인프라 및 인증 환경 구축>
- DNS(SPF, DKIM, DMARC) 기반 메일 인증 환경 구축
- 매직 링크 기반 인증 시스템 구현

<Full Stack 개발>
- 온보딩 기능 개발
- 건강관리 : 산책 기능 전반 개발
김선우
@Seon-U
Security Specialist
·
Full Stack Developer
·
Data Modeler
<서비스 아이디어 제안 및 기획 기여>
- 프로젝트 초기 단계에서 서비스 아이디어 제안
- 반려동물 관리와 재정관리 결합 방향 설정에 기여

<인증 및 보안 시스템 설계 및 구현>
- Spring Security + NextAuth 기반 인증/인가 시스템 구축
- JWT 및 Refresh Token 기반 인증 흐름 구현으로 보안성과 안정성 확보

<데이터 모델링 및 구조 설계>
- ERD 설계 및 PK-FK 기반 관계형 데이터 모델 구축
- 서비스 확장을 고려한 데이터 구조 설계

<핵심 도메인 로직 구현>
- 접종 일정 관리 및 인증 기능 구현
- 보이스 응답 기반 일정 등록 기능 개발

<배포 이슈 해결 및 로그 기반 트러블슈팅>
- 배포 과정에서 발생한 오류를 로그 기반으로 분석
- 실제 서비스 운영 환경에서의 문제 해결 경험 확보

<Full Stack 개발>
- 회원가입 플로우 화면 구현 및 설정 기능 연결
- Resend 기반 비밀번호 재설정 매직 링크 기능 구현
- 백신 접종 기능 개발(백신 관련 정보 정규화, 요약 대시보드)
박성원
@Solid9966
DevOps Engineer
·
Full Stack Developer
·
Backend Architect
<백엔드 개발 환경 구축>
- Spring Boot 기반 백엔드 개발 환경 구성
- 서버 구조 및 API 개발 기반 환경 설정

<클라우드 기반 서비스 인프라 구축 및 운영>
- AWS EC2, S3, RDS 기반 서비스 배포 환경 구축
- 실제 서비스 운영 가능한 수준의 인프라 설계 및 적용

<CI/CD 자동화 환경 구축>
- GitHub Actions 기반 자동 배포 파이프라인 구축
- 개발-배포 프로세스 자동화로 협업 효율성 향상

<데이터베이스 설계 및 전반 관리>
- 서비스 전반의 데이터 구조 설계 및 DB 아키텍처 구축
- ERD 기반 테이블 설계 및 관계 구조 정의
- 데이터 저장·조회·처리 흐름을 고려한 DB 구조 개선 및 최적화
- 개발 전반에서 발생하는 DB 이슈 대응 및 관리 총괄

<AI 기반 대화 시스템 핵심 구현>
- Spring AI 및 Gemini 기반 STS 시스템 설계 및 구현
- 음성/텍스트 입력을 데이터로 전환하는 핵심 인터페이스 구축

<데이터 처리 및 시스템 안정성 개선>
- OCR 파이프라인 개선 및 이미지 처리 안정화
- 환경변수 및 배포 이슈 반복 개선을 통한 운영 안정성 확보

<Full Stack 개발 수행>
- 대시보드 및 재정관리 핵심 기능 개발
허혁
@hyeok1028
Data Interface Specialist
·
Full Stack Developer
<프론트엔드 구조 설계 및 공통 컴포넌트 구축>
- Atomic Design 기반 UI 구조 설계
- 재사용 가능한 컴포넌트 설계를 통해 개발 효율성 향상

<핵심 사용자 인터페이스 개발>
- 메인 홈 및 설정 화면 구현
- 사용자 흐름 중심 UI 설계 및 구현

<데이터 기반 UI 개선>
- 반려동물 및 재정 데이터를 반영한 UI 구성
- 사용자 인터랙션 최적화 및 접근성 개선

<최종 발표 및 서비스 전달>
- 프로젝트 결과 발표 담당
- 서비스 구조, 핵심 기능 및 데이터 기반 금융 연결 흐름 전달

<Full Stack 개발 수행>
- 재정·건강 데이터를 연결한 추천 로직 및 화면 반영 구조 설계

🛠️ Tech Stack & Tool

[Frontend]

Next.js TailwindCSS TypeScript VS Code

[Backend & DB]

Java Spring Node.js MySQL JPA Swagger IntelliJ IDEA

[Testing & AI/API]

JUnit5 Google Cloud Google Gemini

Resend

[Infrastructure & Tools]

Git GitHub Docker AWS GitHub Actions Amazon EC2 Amazon S3 PNPM Gradle

[Mobile & Hybrid]

iOS Capacitor Apple HealthKit

🧱 System Architecture

최조조종 금쪽같은 내새끼 아키텍처 drawio 1

시니어 사용자의 음성 및 OCR(영수증 스캔) 입력을 기반으로 한 하이브리드 모바일 앱 시스템 구성도입니다. Next.js 기반의 프론트엔드와 iOS HealthKit API를 네이티브 컨테이너로 통합했으며, Spring Boot 백엔드는 Gemini AI(대화형 STS), Google Vision OCR, 마이데이터 연동 서비스를 처리합니다.

🪧 ERD

erd_mgk

1. users

속성명 타입(추정) 설명
id bigint 사용자 고유 식별자(PK)
name varchar(100) 사용자 이름
email varchar(255) 로그인 및 인증에 사용하는 이메일, 유니크
password varchar(255) 저장된 비밀번호 문자열
email_verified_at datetime, nullable 이메일 인증 완료 시각
deleted_at datetime, nullable 탈퇴 처리 시각
created_at datetime 회원 생성 시각
updated_at datetime 회원 정보 수정 시각

2. accounts

속성명 타입(추정) 설명
id bigint 계좌 고유 식별자(PK)
user_id bigint 사용자 FK -> users.id
account_number varchar(50) 계좌번호, 유니크
bank_name varchar(100) 은행명
money_amount decimal(19,2) 예치 금액
reward_amount decimal(19,2) 적립 금액
total_amount decimal(19,2) 총 금액
created_at datetime 계좌 생성 시각
updated_at datetime 계좌 수정 시각

3. account_books

속성명 타입(추정) 설명
id bigint 가계부 고유 식별자(PK)
user_id bigint 사용자 FK -> users.id
pet_id bigint, nullable 반려동물 FK -> pets.id
account_id bigint, nullable 계좌 FK -> accounts.id
title varchar(200) 지출/수입 제목
amount decimal(19,2) 금액
category varchar(20) 가계부 카테고리 enum (Hospital, Food, Etc)
memo varchar(1000), nullable 메모
spend_date datetime 사용/지출 시각
created_at datetime 생성 시각
updated_at datetime 수정 시각

4. calendars

속성명 타입(추정) 설명
id bigint 캘린더 이벤트 고유 식별자(PK)
pet_id bigint 반려동물 FK -> pets.id
name varchar(200) 일정명
date date 일정 날짜
memo varchar(1000), nullable 일정 메모
event_type varchar(100) 이벤트 유형
created_at datetime 생성 시각
updated_at datetime 수정 시각

5. maps

속성명 타입(추정) 설명
id bigint 위치 고유 식별자(PK)
name varchar(200) 장소명
latitude decimal(10,7) 위도
longitude decimal(10,7) 경도
category varchar(100) 장소 카테고리

6. medical_documents

속성명 타입(추정) 설명
id bigint 진료 문서 고유 식별자(PK)
pet_id bigint 반려동물 FK -> pets.id
pet_name varchar(100) 반려동물 이름
date date, nullable 진료/접종 날짜
type varchar(50) 문서 유형 enum (VACCINATION, CHECKUP, ETC)
hospital_name varchar(255) 병원명
details varchar(2000), nullable 진료 상세 내용
total_amount int, nullable 총 금액
image_url varchar(255), nullable 추정 증빙 이미지 경로
created_at datetime 문서 등록 시각

7. pets

속성명 타입(추정) 설명
id bigint 반려동물 고유 식별자(PK)
user_id bigint 사용자 FK -> users.id
name varchar(100) 반려동물 이름
species varchar(100), nullable 종/품종
image varchar(100), nullable 프로필 이미지 경로
age double, nullable 나이
size varchar(20), nullable 크기 enum (소형, 중형, 대형)
walk_count int, nullable 누적 산책 수치
walk_time int, nullable 누적 산책 시간
last_walk_at datetime, nullable 마지막 산책 시각
eat_meal varchar(10), nullable 식사 여부 enum (YES, NO)
created_at datetime 생성 시각
updated_at datetime 수정 시각

8. pet_walk_records

속성명 타입(추정) 설명
id bigint 산책 기록 고유 식별자(PK)
pet_id bigint 반려동물 FK -> pets.id
source varchar(50) 산책 데이터 출처
walked_at datetime 산책 기준 시각
step_count int 걸음 수
walk_time_seconds int 산책 시간(초)
distance_km double 이동 거리(km)
reward_amount int 적립 보상 수치
completed boolean, nullable 산책 완료 여부
status varchar(20), nullable 산책 상태
started_at datetime, nullable 산책 시작 시각
ended_at datetime, nullable 산책 종료 시각
created_at datetime 생성 시각
updated_at datetime 수정 시각

9. products

속성명 타입(추정) 설명
id bigint 상품 고유 식별자(PK)
name varchar(200) 상품명
product_type varchar(30) 상품 유형 enum (INSURANCE, SAVINGS, CARD)
description varchar(1000), nullable 상품 설명
url varchar(255), nullable 상품 링크
benefit_rate decimal(10,2), nullable 혜택 비율
benefit_amount decimal(19,2), nullable 혜택 금액
benefit_limit_amount decimal(19,2), nullable 혜택 한도 금액
benefit_limit_count int, nullable 혜택 한도 횟수
benefit_period varchar(20), nullable 한도 기간 enum (MONTH, YEAR)
target_category varchar(255), nullable 타겟 카테고리
source_type varchar(30) 참조 데이터 소스 enum (ACCOUNT_BOOK, ACCOUNT)
is_active boolean 활성 여부
created_at datetime 생성 시각
updated_at datetime 수정 시각

10. transactions

속성명 타입(추정) 설명
id bigint 거래 고유 식별자(PK)
send_user_id bigint 송신 사용자 FK -> users.id
receive_user_id bigint, nullable 수신 사용자 FK -> users.id
account_id bigint 계좌 FK -> accounts.id
amount decimal(19,2) 거래 금액
type varchar(10) 거래 유형 enum (IN, OUT)
category varchar(100) 거래 카테고리
created_at datetime 거래 생성 시각

11. verifications

속성명 타입(추정) 설명
id bigint 인증 레코드 고유 식별자(PK)
user_id bigint 사용자 FK -> users.id
identifier varchar(255) 인증 식별자
token varchar(255), nullable 인증 토큰
expires_at datetime 만료 시각
created_at datetime 생성 시각

Branch 전략

본 프로젝트는 빠른 개발과 협업 효율을 위해 초기에는 TBD (Trunked Based Development) 방식을 적용하고,
개발이 안정화된 이후(컴포넌트 개발 이후)에는 Git Flow 기반의 Feature 브랜치 전략으로 전환한다.

초기 단계에서는 develop 브랜치를 단일 기준 브랜치로 사용하여 모든 개발을 진행하며, 짧은 주기로 코드 통합을 수행한다.
이를 통해 빠른 기능 구현과 초기 구조 안정화를 목표로 한다.

이후 개발이 안정화되면 기능 단위로 브랜치를 생성하여 작업을 진행하고, dev 브랜치로 병합하는 방식으로 운영한다.
또한 기능별 테스트가 완료된 이후 dev 브랜치를 main 브랜치로 병합한다.

※ dev : 개발 및 통합 기준 브랜치
※ main : 배포용 브랜치

⚠️ 주의사항

Clone 후, FE/BE 폴더별 패키지 설치 및 설정 각각 필요

1. 'FE' 폴더 실행/설치

> cd FE
> pnpm install

2. 'BE' 폴더 환경설정

  • docker port: 3330
  • gradle 사용

About

반려동물 케어 및 비용 관리 기반 시니어 생활 금융 서비스 금쪽 같은 내새끼

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 53.3%
  • Java 44.6%
  • Swift 1.5%
  • CSS 0.6%
  • HTML 0.0%
  • Dockerfile 0.0%