기존 운동 앱들은 루틴을 추천할 때 과학적 근거 없이 일반적인 가이드라인만 제공한다는 문제에서 출발했습니다.
PubMed 스포츠 과학 논문을 RAG 파이프라인으로 분석해, 사용자의 신체 정보·운동 목표·보유 기구에 맞는 근거 기반 운동 루틴을 자동 생성하는 캡스톤 디자인 프로젝트를 6명이 팀으로 개발했습니다.
| 모바일 | React Native + Expo(Managed), TanStack Query + Zustand 상태 관리 |
| 서버 | FastAPI (Python 3.11+, Pydantic v2), SQLAlchemy 2.0 async + asyncpg |
| DB | PostgreSQL(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 |
Alembic 마이그레이션으로 초기 스키마(28개 테이블)를 설계하고, 이후 스키마 재설계 마이그레이션과 시드 데이터 스크립트(seed.py)를 작성했습니다.
routines.py, sessions.py, users.py 등 팀 내에서 가장 많이 작업한 API로, 운동 루틴 생성·조회·삭제·이름변경, 세트·운동 기록 관리, Progressive Overload 알림 연동을 구현했습니다.
JWT 기반 인증과 헬스장·기구(gyms, equipment) API를 구현했고, 카카오 로컬 API 연동과 헬스장 삭제 기능 등을 추가했습니다.
팀에서 구축한 RAG 검색 결과를 반영해 루틴 생성 프롬프트를 재구성하고, Gemini/GPT-4o-mini 스트리밍 응답 생성(fallback 처리 포함)을 구현해 루틴 생성 API에 연동했습니다. RAG 파이프라인(논문 임베딩·벡터 검색) 자체는 다른 팀원이 구축했습니다.
load_calc.py, core_lifts.py, routine_targets.py에서 케이블 머신 등 도르래 기반 기구의 실효 부하를 계산하는 도르래 비율 보정 로직과 1RM(Epley) 계산 로직을 구현했습니다.
루틴 상세 화면(WR04), AI 챗봇 화면(WC01, SSE 스트리밍 연동), 운동 기록·홈 대시보드(WL01/WM01), 알림 화면(WN01)을 직접 구현했고, 타이머·키보드·알림 배지 관련 버그를 다수 수정했습니다.