| 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 개발 수행> - 재정·건강 데이터를 연결한 추천 로직 및 화면 반영 구조 설계 |
시니어 사용자의 음성 및 OCR(영수증 스캔) 입력을 기반으로 한 하이브리드 모바일 앱 시스템 구성도입니다. Next.js 기반의 프론트엔드와 iOS HealthKit API를 네이티브 컨테이너로 통합했으며, Spring Boot 백엔드는 Gemini AI(대화형 STS), Google Vision OCR, 마이데이터 연동 서비스를 처리합니다.
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| id | bigint | 사용자 고유 식별자(PK) |
| name | varchar(100) | 사용자 이름 |
| varchar(255) | 로그인 및 인증에 사용하는 이메일, 유니크 | |
| password | varchar(255) | 저장된 비밀번호 문자열 |
| email_verified_at | datetime, nullable | 이메일 인증 완료 시각 |
| deleted_at | datetime, nullable | 탈퇴 처리 시각 |
| created_at | datetime | 회원 생성 시각 |
| updated_at | datetime | 회원 정보 수정 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 계좌 수정 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 수정 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 수정 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| id | bigint | 위치 고유 식별자(PK) |
| name | varchar(200) | 장소명 |
| latitude | decimal(10,7) | 위도 |
| longitude | decimal(10,7) | 경도 |
| category | varchar(100) | 장소 카테고리 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 문서 등록 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 수정 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 수정 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 수정 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| 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 | 거래 생성 시각 |
| 속성명 | 타입(추정) | 설명 |
|---|---|---|
| id | bigint | 인증 레코드 고유 식별자(PK) |
| user_id | bigint | 사용자 FK -> users.id |
| identifier | varchar(255) | 인증 식별자 |
| token | varchar(255), nullable | 인증 토큰 |
| expires_at | datetime | 만료 시각 |
| created_at | datetime | 생성 시각 |
본 프로젝트는 빠른 개발과 협업 효율을 위해 초기에는 TBD (Trunked Based Development) 방식을 적용하고,
개발이 안정화된 이후(컴포넌트 개발 이후)에는 Git Flow 기반의 Feature 브랜치 전략으로 전환한다.
초기 단계에서는 develop 브랜치를 단일 기준 브랜치로 사용하여 모든 개발을 진행하며, 짧은 주기로 코드 통합을 수행한다.
이를 통해 빠른 기능 구현과 초기 구조 안정화를 목표로 한다.
이후 개발이 안정화되면 기능 단위로 브랜치를 생성하여 작업을 진행하고, dev 브랜치로 병합하는 방식으로 운영한다.
또한 기능별 테스트가 완료된 이후 dev 브랜치를 main 브랜치로 병합한다.
※ dev : 개발 및 통합 기준 브랜치
※ main : 배포용 브랜치
Clone 후, FE/BE 폴더별 패키지 설치 및 설정 각각 필요
> cd FE
> pnpm install- docker port: 3330
- gradle 사용





