운동 기록은 이미 해결되었습니다. 저는 그 다음 단계를 만들고 있습니다.
요약
운동 기록을 넘어 전문적인 코칭을 제공하는 AI 서비스 'WhyRep'의 개발 철학을 다룹니다. LLM의 환각을 방지하기 위해 결정론적 엔진으로 방법론을 구현하고, Claude를 대화 계층으로만 활용하는 하이브리드 구조를 설명합니다.
핵심 포인트
- LLM의 즉흥적 답변 대신 검증된 방법론 기반의 결정론적 엔진 사용
- Claude를 대화형 인터페이스(Conversational Layer)로만 제한하여 신뢰성 확보
- 생리학적 근거를 바탕으로 한 테스트 벡터와 엔진 구현 방식
- 사용자의 요구사항을 분석하여 프로그램을 동적으로 수정하는 에이전트 구조
제가 시도해 본 모든 운동 추적기(workout tracker)는 동일한 한계를 가지고 있었습니다. 당신이 무엇을 했는지는 기록하지만, 무엇이 잘못되고 있는지는 알려주지 않습니다.
운동을 마치고 세트(sets), 횟수(reps), 중량(weight)을 기록하면, 앱은 데이터를 저장하고 그것으로 끝입니다. 만약 당신이 성장을 멈췄거나, 지속적으로 실패 지점(failure)에 너무 가깝게 훈련하고 있거나, 디로드(deload)가 필요한 상황이라 하더라도, 당신 스스로 그것을 파악해야만 합니다.
그것이 저를 WhyRep을 만들게 한 계기가 되었습니다.
WhyRep은 당신의 훈련을 분석하고 무엇이 당신의 발목을 잡고 있는지 설명해 주는 코치(coach)가 내장된 운동 추적기입니다. 핵심적인 차이점은 모든 코칭 결정이 제가 사전에 작성하고 승인한 방법론(methodology)에 근거해야 한다는 점입니다. 결코 LLM이 즉석에서 지어낸 내용이 아닙니다.
맥락을 설명하자면, 저는 지난 3년 동안 근비대(muscle hypertrophy)에 초점을 맞추어 운동 과학(exercise science)을 연구해 왔습니다. AI에게 프로그래밍(programming)을 만들어내라고 요청하는 대신, 제가 먼저 코칭 방법론을 작성하고 검증한 다음, AI를 사용하여 이러한 결정들을 대화 형식으로 설명하도록 합니다.
"AI 코치"가 실제로 작동하는 방식 (아마 당신이 추측하는 것과는 다를 것입니다)
저는 근비대 데이터로 모델을 미세 조정(fine-tuning)하고 그것이 일반화되기를 바라는 방식이 아닙니다. 파이프라인(pipeline)은 다음과 더 가깝습니다:
-
제가 먼저 직접 방법론(methodology)을 작성합니다. 저의 생리학적 배경을 바탕으로 합니다. 점진적 과부하 규칙, 디로드(deload) 및 자가 조절(autoregulation) 로직, 정체기(plateau) 진단, 그리고 그 외 모든 것들은 단 한 줄의 코칭 코드가 작성되기 전에, 구체적인 테스트 벡터(특정 입력 → 특정 예상 출력)를 포함하여 제가 초안을 작성하고 승인하는 문서에서 시작됩니다.
-
결정론적 엔진(Deterministic engines)이 해당 문서들을 구현합니다.
ProgressionEngine,AutoregulationEngine,PlateauEngine등이 방법론을 구현하며, 이들은 "이게 맞는 느낌인가?"가 아니라 테스트 벡터를 통해 검증됩니다. -
LLM (Claude)은 오직 그 울타리 안에서만 작동합니다. LLM은 질문에 답하고, 결정을 쉬운 언어로 설명하며, 프로그램을 수정하도록 도와줌으로써 대화 계층(conversational layer)을 처리합니다. LLM은 승인된 방법론 내로 제한되며, 대화 도중에 새로운 훈련 과학을 마음대로 발명할 수 없습니다.
저는 이 상호작용을 정교하게 다듬는 데 엄청난 시간을 소비했습니다. 목표는 단순히 기본적인 질문에 답하는 것이 아닙니다. 모든 권장 사항을 문서화된 방법론에 근거하게 유지하면서, 지식이 풍부한 인간 코치에게 기대할 수 있는 종류의 미묘하고 정교한 코칭 대화를 나누는 것입니다.
예를 들어, 사용자가 코치에게 "팔을 키우고 싶어요"라고 말하면, 코치는 운동 초반에 팔 운동의 우선순위를 높이거나, 주간 볼륨(volume)과 빈도(frequency)를 조정하는 것과 같은 구체적인 변경 사항을 권장할 수 있으며, 사용자가 변경 사항을 승인하면 프로그램을 업데이트할 수 있습니다.
또한 이는 대부분의 사람들이 이미 알고 있는 조언 그 이상을 제공합니다. 많은 리프터(lifter)들은 상완근(brachialis)이 약점일 경우, 이두근(biceps)과 분리하여 상완근을 강조하기 위해 어깨를 굴곡(flexion) 상태로 두는 컬(curl) 변형 동작을 사용하여 더 효과적으로 훈련할 수 있다는 사실을 깨닫지 못합니다. 코치는 그러한 상황을 인식하고, 그 근거를 설명하며, 해당 변경 사항을 프로그램에 통합할 수 있습니다. 다시 말씀드리지만, 이 중 어느 것도 즉석에서 만들어진 것이 아닙니다. 모든 권장 사항은 제가 작성하고 승인한 근본적인 방법론으로 거슬러 올라가 추적될 수 있어야 합니다.
이것이 바로 제가 사람들이 코치에게 이의를 제기하는 것을 기꺼이 허용하는 이유이기도 합니다. 만약 코치가 무언가를 권장한다면, 저는 그 권장 사항을 만들어낸 방법론 (methodology)을 지목할 수 있어야 하며, 그 이면에 있는 생리학 (physiology)을 설명할 수 있어야 합니다. 만약 제가 그것을 과학적으로 정당화할 수 없다면, 그것은 제품에 포함되어서는 안 됩니다. 저는 그럴듯하게 들리지만 코치로서 책임질 수 없는 기능을 출시하느니, 차라리 방법론을 개선하는 데 일주일의 시간을 더 쓰겠습니다.
현재까지 실제로 출시된 것들
이것은 목업 (mockup)이 아닙니다. 현재 실제 기기에서 구축되어 실행 중인 기능은 다음과 같습니다:
- 전체 운동 추적기 (workout tracker): 세트 (sets), 반복 횟수 (reps), RIR (Reps In Reserve) 기록
- 점진적 과부하 감지 엔진 (Progression detection engine) — 방법론 문서 + 엔진 + 테스트 벡터 (test vectors) 모두 커밋 완료
- 자기 조절/디로드 엔진 (Autoregulation/deload engine) 및 정체기 진단 엔진 (plateau diagnosis engine), 동일한 문서 우선 (doc-first) 프로세스 적용
- 프로 단계 분석기 (Pro-gated analyzer): 무료 사용자를 위한 단순한 빨간색/노란색 경고, 유료 사용자를 위한 전체 솔루션 패널 (문서로 추적 가능한 수정 사항으로 제한됨)
- 월별 섹션, 심각도 배지, "분석 (Analyze)" vs "다시 수행 (Perform Again)" 분리가 포함된 세션 기록
- 실제 사진과 생성된 마네킹 아트 (mannequin art)가 포함된 운동 라이브러리 (~110개의 운동, 향후 더 추가 예정) 및 상세 페이지
- 앱과 랜딩 페이지 전체에 적용된 다크 모드 (현재 기본값)
- 하나의 공유된 Kotlin Multiplatform 코어 — 동일한 엔진 코드가 Android (Compose)와 iOS (SwiftUI) 모두를 위해 컴파일됩니다. 플랫폼 간의 로직 분기 (forked logic)가 없습니다.
- 방법론 문서가 컨텍스트 (context)에 캐싱된 상태로 Claude (Haiku 4.5)를 통해 실행되는 백엔드 코치 채팅
- 제3자 결제 프로세서가 아닌 네이티브 스토어 결제와 연결된 인증 (Auth) + 결제 시스템으로, 양쪽 앱 스토어의 규정을 준수함
비록 저는 방법론 자체가 곧 제품이라고 주장하겠지만 말입니다. 저는 아마도 AI 자체를 작성하는 것보다 방법론 문서를 작성하고, 검증하고, 다듬는 데 더 많은 시간을 보냈을 것입니다. 모든 점진적 과부하 규칙, 정체기 진단, 자기 조절 결정, 그리고 프로그램 수정은 코치에게 도달하기 전, 제가 초안을 작성하고, 이의를 제기하고, 수정하고, 테스트하는 방법론의 한 조각으로 시작됩니다.
이 방법론은 단순히 "가슴 운동을 두 세트 추가하세요"라는 수준보다 훨씬 더 깊이 들어갑니다. 라이브러리의 모든 운동은 모든 관련 근육 그룹에 대해 문서화된 분할 세트 기여도 (fractional set contributions)를 가지고 있습니다. 예를 들어, 랫 풀다운 (lat pulldown)은 단순히 하나의 광배근 세트로 계산되지 않습니다. 이는 이두근 (biceps)과 같은 근육에도 분할 볼륨 (fractional volume)을 기여합니다. 코치가 당신의 주간 볼륨을 늘릴지, 줄일지, 혹은 유지할지를 결정할 때, 이러한 간접적인 기여도는 모든 근육이 고립 운동 (isolation exercises)으로부터만 자극을 받는 것처럼 가정하는 대신, 이미 계산 과정에 반영되어 있습니다.
이것이 WhyRep와 대부분의 AI 피트니스 앱 사이의 가장 큰 차이점입니다. 저는 LLM (Large Language Model)에게 코치가 되어달라고 요청하는 것이 아닙니다. 저는 증거 기반의 코칭 방법론 (evidence-based coaching methodology)을 소프트웨어에 인코딩(encode)하려고 노력하고 있으며, 그 다음 LLM을 상호작용을 자연스럽게 느끼게 해주는 인터페이스로 사용하고 있는 것입니다. AI는 진실의 원천 (source of truth)이 아닙니다. 방법론이 진실의 원천입니다.
마케팅 진행 상황
현재 퍼널 상단 (Top-of-funnel): TikTok과 Instagram에서 군더더기 없는 교육적인 헬스 콘텐츠를 게시하며 천천히 오디언스를 구축하고 있습니다. 만약 여러분 중 트레이닝/근비대 (hypertrophy) 콘텐츠에 관심이 있다면 팔로우해 주시면 진심으로 감사하겠습니다. 그리고 이 분야의 빌드 인 퍼블릭 (build-in-public) 크리에이터들에게 무엇이 효과가 있고 없는지에 대한 의견이 있다면 듣고 싶습니다:
- TikTok: https://www.tiktok.com/@whyrep.ai
- Instagram: https://www.instagram.com/whyrepai/
- 랜딩 페이지 (Landing page): https://whyrep.com/
조언이 필요한 부분
이 글은 "내가 무엇을 만들었는지 보세요"라는 글인 동시에 "내가 생각할 수 있게 도와주세요"라는 글이기도 합니다. 구체적으로 다음과 같은 부분에 대한 의견을 듣고 싶습니다:
- 기술적인 제품과 함께 오디언스를 구축하고 있는 다른 분이 계신가요? 초기 단계에서 실제로 성과를 냈던(moved the needle) 것은 무엇이었나요?
- 정확성/신뢰가 (단순한 기능이 아닌) 핵심 셀링 포인트인 제품을 만드셨다면, 훈계조로 들리거나 과하게 설명하는 느낌을 주지 않으면서 이를 어떻게 전달하셨나요?
프로젝트가 진행됨에 따라 매주 계속 포스팅하겠습니다. 여기까지 읽어주셔서 감사합니다. 아마 다음 주에는 데모를 보여드릴 수 있을 것 같네요!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기