1. 프로젝트 개요

<aside> 💡

SciFit-Sync — 스포츠 과학 논문 RAG 기반 개인 맞춤형 운동 루틴 생성 모바일 앱

</aside>

기존 운동 앱들은 루틴 추천 시 과학적 근거 없이 일반적인 가이드라인만 제공합니다. SciFit-Sync는 PubMed 스포츠 과학 논문을 RAG(Retrieval-Augmented Generation) 파이프라인으로 분석하여, 사용자의 신체 정보·운동 목표·보유 기구에 맞는 근거 기반 운동 루틴을 자동 생성합니다.

항목 내용
과목 캡스톤 디자인 (2025년 1학기)
개발 기간 2025.03 ~ 2025.06 (16주)
GitHub SciFit-Sync/scifiit-sync
Figma 캡스톤 와이어프레임

1-1. 핵심 기능 (4가지)

기능 설명
논문 기반 루틴 생성 PubMed 스포츠 과학 논문을 RAG 파이프라인으로 검색·분석하여 근거 있는 운동 루틴을 자동 생성하고, 참고 논문 출처 카드를 첨부
도르래 비율 보정 케이블 머신 등 도르래 기반 기구의 실효 부하를 자동 계산하여 기구 간 정확한 중량 비교 지원
AI 챗봇 운동 관련 질문에 관련 논문을 검색한 뒤, 논문 출처 카드를 첨부하여 근거 기반 답변 제공
Progressive Overload 운동 기록을 분석하여 목표 달성 시 자동 중량 증가 제안, 기구 한계 도달 시 대안 안내

2. 시스템 아키텍처

graph TB
    subgraph "Mobile App"
        A["React Native + Expo"]
    end
    
    subgraph "Backend Server"
        B["FastAPI (Python 3.11+)"]
        B1["Auth Service<br>JWT + Refresh Token Rotation"]
        B2["Routine Service<br>Load Calculation Engine"]
        B3["Chat Service<br>RAG Pipeline"]
        B4["Equipment Service<br>Kakao Local API Proxy"]
    end
    
    subgraph "Database"
        C["PostgreSQL (Supabase)<br>28 Tables"]
        D["ChromaDB<br>Vector DB (In-Process)"]
    end
    
    subgraph "External Services"
        E["Gemini 1.5 Flash<br>GPT-4o-mini Fallback"]
        F["Kakao Local API"]
        G["PubMed / PMC"]
    end
    
    subgraph "MLOps"
        H["GitHub Actions Cron<br>Monthly Paper Ingestion"]
    end
    
    A -->|"HTTPS / SSE"| B
    B --> B1
    B --> B2
    B --> B3
    B --> B4
    B1 --> C
    B2 --> C
    B3 --> D
    B3 --> E
    B4 --> F
    H --> G
    H --> D

2-1. 통신 방식

id: evt_001
data: {"type": "chunk", "content": "..."}

id: evt_002
data: {"type": "day_complete", "day": 1, "data": {...}}

id: evt_final
data: {"type": "done", "routine_id": "uuid"}

data: [DONE]

3. 기술 스택

영역 기술 비고
모바일 React Native 0.76.6 + Expo 52 (Managed) Expo Go 개발, EAS Build 배포, New Architecture 활성화
상태 관리 TanStack Query 5 + Zustand 5 서버 상태(Query) + 클라이언트 상태(Zustand) 분리
네비게이션 React Navigation 7 native-stack + bottom-tabs
백엔드 FastAPI (Python 3.11+) Pydantic v2, SQLAlchemy 2.0 async
DB 마이그레이션 Alembic 단독 관리, Supabase 대시보드 직접 수정 금지
관계형 DB PostgreSQL 15 (Supabase) asyncpg 드라이버
Vector DB ChromaDB 인프로세스 PersistentClient(), /chroma-data 볼륨 필수
LLM Gemini 1.5 Flash → GPT-4o-mini 환경변수로 교체, 자동 fallback
임베딩 BAAI/bge-large-en-v1.5 1024차원
배포 AWS (EC2/ECS Fargate) Docker 이미지, ALB + HTTPS
CI/CD GitHub Actions PR 테스트 + 월간 논문 파이프라인
코드 품질 ruff (Python) / Prettier + ESLint (TS) CI에서 자동 검사, 머지 차단
청킹 자체 구현 Section-Aware 300~512 토큰, overlap 50
토큰 보안 expo-secure-store JWT 안전 저장

4. 데이터베이스 설계 (28개 테이블)