← 프로젝트 목록으로
03 / Project

AI 자세 교정 앱

Google ML Kit Pose Detection으로 카메라 영상에서 신체 33개 랜드마크를 추출해 운동 자세를 실시간으로 분석하는 Flutter 앱입니다. 대학 졸업작품으로 3명이 함께 만들었고, 저는 팀장으로서 전체 기획과 자세 채점 알고리즘, 핵심 로직을 담당했습니다.

FlutterDartML Kit RiverpodSupabase
구분대학 졸업작품
인원3인 팀 (팀장)
담당자세 채점 알고리즘, 핵심 로직, 리팩터링

화면

아키텍처

카메라 실시간 영상 ML Kit 33개 랜드마크 추출 각도 계산 + 스무딩 프레임 노이즈 보정 PoseScorer 구간별 채점 로직 피드백 UI 점수 · 자세 교정 AI 식단추천 Edge Function AI 운동추천 Edge Function

문제와 해결

Problem

단순히 "자세가 맞다/틀리다"로만 판정하면 사용자가 어디를 어떻게 고쳐야 하는지 알기 어려웠습니다.

Solution

관절별 각도 오차를 허용 오차의 50%/100%/150%/200% 구간으로 나눠 100점부터 선형으로 감점하는 채점 로직을 직접 설계해, 관절 단위로 구체적인 피드백을 줄 수 있도록 했습니다.

Problem

개발 중반, 팀원 간 데이터베이스 스키마를 사전 논의 없이 전면 수정하면서 팀원 간 의견 충돌과 데이터 불일치 문제가 발생했습니다.

Solution

팀장으로서 양쪽 입장을 조율해 갈등을 해소하고, 주말 시간을 들여 코드를 전면 리팩터링해 문제를 해결했습니다.

Problem

카메라로 인식한 관절 좌표가 프레임마다 미세하게 흔들려, 같은 자세를 취해도 각도 값이 불안정하게 튀는 문제가 있었습니다.

Solution

랜드마크와 각도 값에 스무딩(smoothing) 로직을 별도로 적용해 프레임 간 노이즈를 줄이고, 안정적인 자세 판정이 가능하도록 구현했습니다.

Problem

사용자마다 목표(체중감량, 근력강화 등)와 신체 조건이 달라, 일반적인 식단표·운동 루틴만으로는 개인화된 도움을 주기 어려웠습니다.

Solution

Supabase Edge Function으로 AI 기반 식단·운동 루틴 추천 기능을 각각 구현해, 사용자 프로필과 목표를 기반으로 맞춤 식단과 운동 루틴을 자동 생성하도록 했습니다.

Problem

OpenAI API 키가 만료되거나 일시적으로 요청에 실패하면, 추천 기능 전체가 멈춰버릴 위험이 있었습니다.

Solution

API 키가 없거나 호출에 실패한 경우, 목표·선호도 기반의 로컬 규칙으로 자동 대체(fallback)되도록 설계해 AI 응답 여부와 무관하게 항상 결과를 받을 수 있도록 했습니다.