전체 프로젝트
Capstone Project

SciFit-Sync

스포츠 과학 논문을 RAG 파이프라인으로 분석해, 사용자의 신체 정보·운동 목표·보유 기구에 맞는 근거 기반 운동 루틴을 자동 생성하는 앱입니다.

기간
2026.03 – 2026.06 (16주)
팀 구성
6명
역할
백엔드 개발 · 앱 화면 구현
완성 여부
완성 ✓
PythonFastAPISQLAlchemy 2.0PostgreSQL AlembicJWTReact NativeTypeScriptDocker
01

기획 의도

기존 운동 앱들은 루틴을 추천할 때 과학적 근거 없이 일반적인 가이드라인만 제공한다는 문제에서 출발했습니다.

PubMed 스포츠 과학 논문을 RAG 파이프라인으로 분석해, 사용자의 신체 정보·운동 목표·보유 기구에 맞는 근거 기반 운동 루틴을 자동 생성하는 캡스톤 디자인 프로젝트를 6명이 팀으로 개발했습니다.

핵심 가치 — 논문 기반 근거 있는 루틴 생성 + 도르래 비율 보정으로 정확한 중량 비교 지원
02

시연 영상

03

시스템 구조

모바일React Native + Expo(Managed), TanStack Query + Zustand 상태 관리
서버FastAPI (Python 3.11+, Pydantic v2), SQLAlchemy 2.0 async + asyncpg
DBPostgreSQL(Supabase, Alembic 마이그레이션) + ChromaDB(인프로세스 벡터 검색)
RAG 파이프라인
(팀원 구축)
PubMed 논문 크롤링(월 1회, GitHub Actions Cron) → Section-Aware 청킹 → BAAI/bge-large-en-v1.5 임베딩 → ChromaDB 저장 → 한→영 번역 후 코사인 유사도 검색(top_k=10) → LLM 응답 생성(Gemini 2.5 Flash, GPT-4o-mini 폴백), SSE 스트리밍
배포
(팀원 구축)
AWS ECS Fargate(단일 Task), ALB + ACM HTTPS, EFS, ECR, GitHub Actions CI/CD
04

담당 역할 · 주요 구현

1

DB 스키마 설계

Alembic 마이그레이션으로 초기 스키마(28개 테이블)를 설계하고, 이후 스키마 재설계 마이그레이션과 시드 데이터 스크립트(seed.py)를 작성했습니다.

2

루틴 · 세션 · 유저 API

routines.py, sessions.py, users.py 등 팀 내에서 가장 많이 작업한 API로, 운동 루틴 생성·조회·삭제·이름변경, 세트·운동 기록 관리, Progressive Overload 알림 연동을 구현했습니다.

3

인증 · 헬스장/기구 도메인

JWT 기반 인증과 헬스장·기구(gyms, equipment) API를 구현했고, 카카오 로컬 API 연동과 헬스장 삭제 기능 등을 추가했습니다.

4

루틴 생성 LLM 연동

팀에서 구축한 RAG 검색 결과를 반영해 루틴 생성 프롬프트를 재구성하고, Gemini/GPT-4o-mini 스트리밍 응답 생성(fallback 처리 포함)을 구현해 루틴 생성 API에 연동했습니다. RAG 파이프라인(논문 임베딩·벡터 검색) 자체는 다른 팀원이 구축했습니다.

5

중량 계산 엔진

load_calc.py, core_lifts.py, routine_targets.py에서 케이블 머신 등 도르래 기반 기구의 실효 부하를 계산하는 도르래 비율 보정 로직과 1RM(Epley) 계산 로직을 구현했습니다.

6

앱(React Native) 화면 구현

루틴 상세 화면(WR04), AI 챗봇 화면(WC01, SSE 스트리밍 연동), 운동 기록·홈 대시보드(WL01/WM01), 알림 화면(WN01)을 직접 구현했고, 타이머·키보드·알림 배지 관련 버그를 다수 수정했습니다.

05

성과

28개
PostgreSQL 테이블 스키마 설계 (초기 구축 + 재설계)
6개
React Native 화면 구현 (루틴상세·챗봇·기록·홈·알림 등)
16주
캡스톤 디자인 프로젝트 완주
354 / 1,618
전체 커밋 (약 22%, 6명 중 2위)
← 이전 프로젝트마디 (Madi)