← 프로젝트 목록

대표 프로젝트

ELANFIT — AI 피트니스 코칭 앱 (모바일 · 백엔드 · 인프라 단독)

AI 코치 · 트래킹 · 커뮤니티를 갖춘 피트니스 앱을 Flutter + FastAPI로 전면 재구축하고 GCP 인프라까지 1인으로 설계 · 개발 · 운영 — 모바일 · 백엔드 · 어드민 · 인프라 풀스택

2026.02 – 현재 · 기획 · 모바일 · 백엔드 · 어드민 · 인프라 단독 (Flutter · FastAPI · React · GCP)
  • Flutter
  • Dart
  • Riverpod
  • FastAPI
  • PostgreSQL
  • React
  • OpenAI
  • RAG
  • MCP
  • GCP
  • Terraform
  • Docker

개요

ELANFIT은 AI 코칭, 운동 · 식단 · 인바디(체성분) 트래킹, 커뮤니티 피드를 한 앱에 담은 피트니스 모바일 앱입니다. 2026년 2월 첫 출시되어 iOS · Android에서 운영 중이며, 기획부터 모바일 · 백엔드 · 어드민 · 클라우드 인프라까지 1인으로 설계 · 개발 · 운영합니다.

기존 React Native + Expo 기반 레거시를 Flutter + FastAPI 스택으로 전면 재구축하고, 온프레미스 서버에서 GCP로 인프라를 무중단 이전한 마이그레이션 프로젝트이기도 합니다.

LLM 프로바이더 추상화, MCP 툴콜링 기반 AI 코치, 벡터 RAG, 인앱결제 영수증 서버 검증 등 실서비스 운영에 필요한 요소를 직접 구현했습니다.

아키텍처 · 데이터 흐름

  1. 인증 — 소셜 로그인(구글 · 애플 · 페이스북) → 백엔드가 ID 토큰 검증 후 자체 JWT(슬라이딩 토큰) 발급
  2. 트래킹 — 운동 세션 · 식단 · 인바디 · 루틴을 앱에서 기록, 음식 사진은 비전 LLM으로 분석, 인바디 결과지(CSV)는 파싱해 저장
  3. AI 코치 — 사용자 메시지를 ReAct 루프로 처리해 MCP 도구(운동 생성 · 요약 조회 · 피드 검색 · 설정 변경)를 호출하고 RAG로 지식 보강
  4. 기억 — 채팅 이력을 주기적으로 요약해 누적 사용자 메모리로 적재, 다음 대화의 장기 맥락으로 활용
  5. 구독 — 인앱결제(App Store Server API) 영수증을 서버에서 검증하고 플랜별 기능을 게이팅
  6. 운영 — React 어드민 콘솔에서 회원 · 공지 · 구독 · 쿠폰을 역할 기반 접근제어로 관리

모바일 앱 (Flutter)

5탭 네비게이션, Riverpod 상태관리, Material 3 다크테마, 5개 국어 현지화. 운동 · 식단 · 인바디 · AI코치 · 커뮤니티를 하나의 앱으로 제공.

API 서버 (FastAPI)

async SQLAlchemy + PostgreSQL(40+ 테이블), 14개 라우터. 결과 봉투(envelope) 패턴과 슬라이딩 JWT(자동 갱신)로 일관된 API 계약 제공.

AI 코치 엔진

LLM 프로바이더 추상화로 클라우드↔로컬 모델을 폴백 전환, MCP 툴콜링과 벡터 RAG로 운동 생성 · 요약 · 검색을 자율 수행.

어드민 콘솔 (React)

React 19 + Vite SPA. 역할 위계(master/admin/user) 기반으로 회원 · 공지 · 구독 · 쿠폰 관리와 KPI 대시보드 제공.

구독 · 결제

인앱결제(App Store) 영수증을 App Store Server API로 서버 검증(ES256 JWT · JWS 체인 검증), 쿠폰 · 플랜 수명주기 관리.

클라우드 인프라

Terraform IaC로 GCP 단일 VM에 Caddy(자동 HTTPS) · Docker Compose · PostgreSQL을 배포, Secret Manager로 비밀 관리.

AI 활용

LLM 프로바이더 추상화 (폴백)

클라우드 LLM을 기본으로, 개발/오프라인에서는 로컬 모델(Ollama)로 자동 전환해 비용을 0으로. 동일 인터페이스로 모델 교체 가능.

MCP 툴콜링 (ReAct)

AI 코치가 운동 생성 · 요약 조회 · 피드 검색 · 선호 설정 변경 등 MCP 도구를 ReAct 루프로 호출해 단순 답변을 넘어 실제 작업을 수행.

비전 음식 분석

음식 사진을 비전 LLM으로 분석해 식단 기록을 자동화하고, 인바디 결과지(CSV)를 파싱해 체성분 추세를 추적.

벡터 RAG (numpy)

마크다운 지식베이스를 임베딩해 numpy 코사인 유사도로 top-k 검색, pgvector 없이 가볍게 맥락을 보강.

대화 요약 → 사용자 메모리

채팅 이력을 백그라운드 배치로 요약해 누적 사용자 메모리에 적재, 장기 맥락을 유지하면서 토큰 비용을 절감.

데이터 최소화 로깅

프롬프트 본문은 저장하지 않고 메타(토큰 · 모델 · 버전)만 분리 기록, 프롬프트는 버전 · 모델 단위로 관리.

서비스 자동화 · 운영

Terraform IaC

GCP 컴퓨트 · 네트워킹 · 스토리지 · 시크릿 · DNS를 코드로 관리, VM 시작 스크립트로 도커 설치 · 배포 · 백업까지 자동 부트스트랩.

컨테이너 배포

Docker Compose로 API · PostgreSQL · 어드민을 한 번에 기동, Caddy가 다중 도메인 라우팅과 자동 HTTPS를 담당.

대화 요약 배치

FastAPI lifespan 루프로 주기적 요약 작업을 돌려 사용자 메모리를 갱신, 별도 워커 없이 인프로세스로 운영.

백업 자동화

일일 스케줄로 데이터를 클라우드 스토리지에 타르볼 백업(버저닝 · 보존기간 적용)해 복구 가능성 확보.

환경 분리

동일 인프라에서 운영/개발 백엔드를 별도 DB · 라우트로 분리 운영해 안전하게 기능을 검증.

레거시 무중단 이전

온프레미스 레거시(React Native 백엔드)를 신규 GCP 스택으로 병행 운영하며 사용자 임계치 도달 후 단계적으로 전환.

기술 스택

모바일

  • Flutter
  • Dart
  • Riverpod
  • go_router
  • Freezed
  • dio

백엔드

  • FastAPI
  • async SQLAlchemy
  • PostgreSQL
  • PyJWT
  • Firebase Admin

AI / LLM

  • OpenAI
  • 로컬 LLM(Ollama)
  • 벡터 RAG(numpy)
  • MCP 툴콜링
  • 비전 분석

어드민 · 프론트

  • React 19
  • Vite
  • React Router
  • Playwright

인프라 · 운영

  • GCP
  • Terraform
  • Docker Compose
  • Caddy
  • Secret Manager

결제 · 인증

  • In-App Purchase
  • App Store Server API
  • 소셜 로그인
  • AdMob

핵심 역할 · 성과

  • 기획 · 모바일 · 백엔드 · 어드민 · 인프라까지 전 스택을 1인으로 설계 · 개발 · 운영
  • React Native 레거시를 Flutter + FastAPI로 전면 재구축하고 온프레미스→GCP로 무중단 이전
  • LLM 프로바이더 추상화 + MCP 툴콜링 + 벡터 RAG로 실제 작업을 수행하는 AI 코치 구현
  • Terraform IaC와 Docker로 단일 VM 클라우드 인프라를 코드로 구성 · 자동 배포
← 프로젝트 목록