
Claude Code로 헬스장 스케줄러 앱을 만들어 보았습니다. 그 결과는 다음과 같습니다.
요약
Claude Code를 활용하여 개인적인 문제를 해결하기 위한 헬스장 스케줄러 앱 개발 과정을 소개합니다. 코드를 작성하기 전 Claude와 함께 상세한 프로젝트 계획 문서를 수립하며 아키텍처부터 배포 전략까지 체계적으로 설계하는 과정을 다룹니다.
핵심 포인트
- Claude Code를 활용한 체계적인 프로젝트 계획 수립 과정
- 단순 코드 작성을 넘어 프로젝트 매니저로서의 AI 활용법
- 아키텍처, DB, API 등 방대한 계획 문서 생성 경험
- 아이디어 브레인스토밍부터 로드맵 완성까지의 워크플로우
모든 프로젝트는 문제에서 시작됩니다
대부분의 발명품이나 아이디어가 그렇듯, 저의 프로젝트 또한 하나의 문제에서 시작되었습니다.
저에게 그 문제는 바로 헬스장에서 발생했습니다.
저는 여러 가지 이유로 — 어떤 것은 제 통제 범위를 완전히 벗어난 이유로 — 운동을 이따금씩 거르게 되는 자신을 자주 발견했습니다. 그 부분은 정상입니다. 삶을 살다 보면 그런 일이 생기기 마련이니까요.
제가 어려움을 겪었던 부분은 그것으로부터 어떻게 **회복(recover)**할지를 결정하는 것이었습니다.
대부분의 사람들은 단순히 이렇게 말할 것입니다:
"등 운동(Back Day)을 놓쳤다면, 그냥 내일 하세요."
네, 그것도 방법입니다.
하지만 저는 항상 특정 날에 특정 운동을 하는 것을 좋아해 왔습니다. '월요일은 언제나 나의 가슴 운동(Chest Day) 날이다' 😤
그때 아이디어가 떠올랐습니다.
만약 제가 운동을 놓칠 때마다 남은 일주일의 일정을 지능적으로 재구성할 수 있는 **헬스장 스케줄러(Gym Scheduler)**를 만든다면 어떨까?
장기적인 비전은 궁극적으로 AI를 통합하여 사용자의 목표, 일정, 그리고 놓친 세션에 따라 개인화된 운동 조정을 생성할 수 있도록 하는 것입니다.
그리고 이 문제가 저 개인에게 영향을 미치기 때문에, 이것은 만들기에 완벽한 프로젝트처럼 느껴졌습니다.
코드를 작성하기 전, 우리는 계획을 세웠습니다
저의 코딩 멘토가 가르쳐준 가장 가치 있는 교훈 중 하나는 이것이었습니다:
"만들기 전에 항상 계획을 세워라."
키보드에 손을 대기 전에 상황을 충분히 생각하는 것만으로도 놀라울 정도로 많은 개발 문제들을 피할 수 있습니다.
이 점은 Claude Code와 같은 강력한 도구와 함께 작업할 때 더욱 중요해졌습니다.
저의 초기 프롬프트는 대략 다음과 같았습니다:
"헬스장 스케줄러(Gym Scheduler) 앱을 만들고 싶어. 먼저 아이디어를 브레인스토밍해 보자. 나에게 질문을 많이 던져주고, 우리가 모든 것을 정리할 수 있는 계획 파일(planning file)을 만들어줘."
그리고 정확히 그렇게 진행되었습니다.
단순한 아이디어로 시작된 것이 빠르게 다음과 같은 내용을 다루는 **방대한 계획 문서(massive planning document)**가 되었습니다:
- 아키텍처 (Architecture)
- 인증 (Authentication)
- 데이터베이스 구조 (Database structure)
- API 경로 (API routes)
- 기능 (Features)
- 배포 전략 (Deployment strategy)
- 빌드 단계 (Build phases)
단 한 줄의 코드도 작성되기 전에, 프로젝트 전체의 로드맵이 완성되었습니다.
솔직히 말해서, 계획 파일이 이렇게 커질 줄은 몰랐습니다 😅
Claude가 나의 프로젝트 매니저가 되었습니다 😅
저는 아직 배울 것이 많은 학생 개발자이기 때문에, Claude가 단순히 저를 대신해 코드를 작성해 주는 것만을 원하지 않았습니다.
저는 Claude가 저를 가르쳐 주기를 원했습니다.
몇몇 지점에서는 Claude에게 무엇을 하고 있는지, 그리고 왜 그렇게 하고 있는지 설명해 달라고 요청하기도 했습니다.
이 프로젝트의 목표 중 하나는 다음 사항들을 더 잘 이해하는 것이었습니다:
- 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)
- SOLID 원칙 (SOLID Principles)
- 애플리케이션 아키텍처 (Application architecture)
Claude는 다음과 같은 스택을 제안했습니다:
| 기술 (Technology) | 역할 (Role) |
|---|---|
| React | 프론트엔드 프레임워크 (Frontend framework) |
| ... |
하지만 제안을 맹목적으로 받아들이는 대신, 저는 모든 선택에 대한 근거를 제시해 달라고 요청했습니다.
왜 React인가? 왜 MongoDB인가? 왜 다른 것은 안 되는가?
결과적으로 이 과정은 프로젝트에서 가장 교육적인 부분 중 하나가 되었습니다. 단순히 무엇을 사용할지가 아니라, 언제 그것을 사용해야 하는지를 이해하는 데 도움이 되었습니다.
단계별 빌드 (Building It Phase by Phase)
계획이 완료된 후, 우리는 마침내 빌드를 시작했습니다.
제가 Claude에게 특별히 요청한 것 중 하나는 애플리케이션 전체를 한 번에 생성하지 말 것이었습니다.
대신, 단계별로 (phase by phase) 빌드하기를 원했습니다.

이것은 프로젝트 전체를 통틀어 가장 잘한 결정 중 하나가 되었습니다.
저에게 주는 이점:
- 학습하기 더 쉬움
- 이해하기 더 쉬움
- 디버깅 (debug)하기 더 쉬움
Claude에게 주는 이점:
- 더 작은 작업 단위
- 더 적은 실수
- 더 나은 코드 리뷰 (code reviews)
한때는 모든 것을 멈추고 다음과 같이 질문하기도 했습니다:
"모델 (model)이란 정확히 무엇인가요?"
그러자 Claude는 저에게 코드를 던져주는 대신, 개념을 설명해 주고 그것이 프로젝트에 어떻게 부합하는지 알려주었습니다.
AI가 아무리 강력해지더라도 학습 과정은 언제나 중요합니다.
앱이 살아 움직이는 과정을 지켜보기 ✨
처음에는 React-Vite 로고가 떠 있는 빈 페이지뿐이었습니다.
그다지 흥미롭지는 않았죠 😭
그러다 점차 기능들이 하나씩 추가되면서 앱의 형태가 갖춰지기 시작했습니다:
- 로그인 시스템이 나타났습니다
- 운동 스케줄이 올바르게 표시되기 시작했습니다
- 운동 항목을 추가하거나 삭제할 수 있게 되었습니다
- 페이지들이 서로 연결되기 시작했습니다
그리고 갑자기, 계획 문서 안에만 존재하던 무언가가 **실제 애플리케이션 (Application)**이 되어가고 있었습니다.
이전 프로젝트들과 비교했을 때 개발 프로세스가 얼마나 빨라졌는지 정말 믿기지 않을 정도였습니다.
예를 들어, 이전 프로젝트에서 간단한 로그인 시스템을 구축할 때는 다음과 같은 과정이 필요했습니다:
- 1시간짜리 YouTube 튜토리얼 시청
- Firebase 문서 읽기
- ChatGPT에게 도움 요청하기
- 더 많은 에러 마주하기 😭
이번에는 완전히 다르게 느껴졌습니다.
물론... 모든 것이 완벽하게 진행된 것은 아니었습니다.
"내 컴퓨터에서는 잘 되는데" 모먼트 😭
마침내 로컬 (Local) 환경에서 모든 것을 작동시킨 후, 애플리케이션을 배포했습니다.
그러자 즉시 다음과 같은 상황을 맞닥뜨렸습니다:
제 컴퓨터에서는 모든 것이 완벽하게 작동했습니다. 하지만 프로덕션 (Production) 환경은 다른 계획을 가지고 있었나 봅니다.
몇 시간 동안 문제를 조사한 끝에, 원인이 Google Cloud Console 안에 숨어 있다는 것을 발견했습니다.
제 콜백 URI (Callback URI)가 localhost로만 설정되어 있었고, 배포된 Render URL이 누락되어 있었던 것입니다.
아주 작은 설정 실수 하나 때문에 몇 시간 동안 디버깅 (Debugging)을 해야 했습니다. 전형적인 개발자의 경험이죠 😭
하지만 결국 설정을 업데이트하고 재배포 (Redeploying)한 후에야 모든 것이 마침내 작동하기 시작했습니다.
첫 번째 버전은 예쁘지 않았습니다... 하지만 작동했습니다 💪
처음으로 작동한 버전은 제가 현재 사용하는 버전과는 전혀 달랐습니다.
화려한 도구도, 고급 기능도, 다듬어진 UX (User Experience)도, AI 스케줄링 (AI Scheduling)도 없었습니다.
그저 기본적인 기능뿐이었습니다:
- ✅ 운동 추가
- ✅ 운동 삭제
- ✅ 운동 분할 (Workout splits) 이름 변경
- ✅ 일정 저장
그리고 솔직히 말해서? 그것만으로 충분했습니다.
왜냐하면 작동했으니까요.
처음으로 제가 개인적으로 직면했던 실제 문제를 해결하는 기능적인 애플리케이션을 갖게 된 것입니다.
그리고 그 기분은 정말 최고였습니다.
다음 단계는?
첫 번째 버전은 기능적이었지만, 동시에 매우 거칠었습니다.
Part 2에서는 다음과 같은 기능들을 추가하여 단순한 스케줄러를 훨씬 더 세련된 결과물로 어떻게 변화시켰는지에 대해 이야기하겠습니다:
- 여러 프로그램
- 운동 순서 변경
- 현재 날짜 강조
- BMI 계산기
- 칼로리 계산기
- 더 나은 UI/UX
- 그리고 몇 가지 재미있는 헬스장 특화 요소들 😎
불행히도... 저를 기다리고 있었던 것은 지금까지의 프로젝트 전체를 통틀어 **가장 좌절스러운 버그 (Bug)**였습니다 😭🙏
다음 글에서 만나요 🚀
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

