걸으면 풀리는 퍼즐 게임 — 개발 일지 #4: MVP 완성과 회고
완성한 것
약 10일 동안의 개발이 끝났다. MVP를 정의하고 그 범위 안에서 마무리했다.
완성된 기능
| 기능 | 상태 | 상세 |
|---|---|---|
| Water Sort Puzzle | ✅ | 10개 스테이지, 5단계 난이도, 별점 시스템 |
| 걸음 수 연동 | ✅ | HealthKit/Health Connect, 30초 자동 동기화 |
| 보상 시스템 | ✅ | 2,000보 = 힌트 1개, 걸음 수 기반 스테이지 해금 |
| 로컬 저장 | ✅ | 진행 상황, 힌트 이력, 걸음 수 기록 |
| AI 힌트 | ✅ | 3가지 전략 기반 최선의 수 제안 |
실제로 빌드해서 실기기에서 돌아가는 앱이 나왔다. 걸어다니면서 힌트가 쌓이고, 퍼즐을 풀 수 있다. 처음 구상했던 핵심 루프는 구현된 셈이다.
보류한 것
만들고 싶었지만 이번에 넣지 않은 기능들이다.
서버 기능
- 사용자 계정 / 로그인
- 리더보드 (걸음 수 랭킹)
- 클라우드 동기화
- 소셜 기능
GPS 위치 기반
- 랜드마크 특별 퍼즐
- 지역별 콘텐츠 (서울, 부산, 제주...)
- 위치 기반 이벤트
추가 콘텐츠
- 퍼즐 종류 확대
- 스토리 모드
- 커스터마이징
왜 여기서 멈췄나
세 가지 이유가 있다.
1. 비용
서버를 올리면 월 $10~20의 고정비가 생긴다. 사용자가 없는 상태에서 매달 비용을 내는 건 비합리적이다. GPS API도 무료 크레딧을 넘기면 과금이 시작된다.
사이드 프로젝트에서 고정비가 생기는 순간 부담이 된다. MVP에서 검증하고, 반응이 있으면 그때 투자하는 게 맞다고 판단했다.
2. 시간
본업이 있는 상태에서 사이드 프로젝트에 쓸 수 있는 시간은 한정적이다. 10일 동안 핵심 기능에 집중한 게 효율적이었다. 여기서 서버까지 만들면 한 달은 더 걸린다.
3. 앱스토어 등록
Apple Developer 계정($99/년)은 있지만, 앱스토어에 올리려면 스크린샷, 개인정보 처리방침, 심사 대응까지 추가 작업이 필요하다. MVP 검증 전에 이 작업을 하는 건 순서가 맞지 않다고 생각했다.
기술적으로 배운 것
Flutter 크로스 플랫폼의 현실
"한 번 짜면 양쪽 다 된다"는 절반만 맞다.
- UI 코드 → 공유된다
- 비즈니스 로직 → 공유된다
- 권한 설정 → iOS/Android 각각
- HealthKit vs Health Connect → 완전히 다른 API
- 빌드 설정 → Xcode, Gradle 각각
체감상 전체 코드의 80%는 공유하고, 20%는 플랫폼별로 처리해야 했다.
실기기 테스트는 필수
걸음 수, GPS는 에뮬레이터에서 불가능하다. 코드 수정 → 빌드 → 밖에 나가서 걷기 → 로그 확인의 사이클이 길었다. 사무실에서 왔다갔다 하면서 테스트한 날이 많았다.
배터리 최적화의 어려움
30초마다 HealthKit에서 걸음 수를 읽어오는데, 이게 배터리에 어떤 영향을 주는지 체감하기 어렵다. 시뮬레이터로는 배터리 소모를 측정할 수 없고, 실기기에서 하루 종일 켜두고 비교해야 한다.
결론적으로 30초 간격은 괜찮았다. HealthKit 읽기 자체가 가벼운 작업이라 배터리 영향이 미미했다.
프로젝트 관리에서 배운 것
MVP를 잘 정의하면 끝낼 수 있다
처음 아이디어가 나왔을 때는 GPS 연동, 관광지, 리더보드까지 한번에 하려고 했다. 그랬으면 아직도 개발 중일 것이다.
범위를 줄이고 나니 10일 만에 돌아가는 앱이 나왔다. "나중에 추가할 수 있지만, 없어도 돌아가는 것"은 전부 빼는 게 맞았다.
완벽주의를 버려야 끝난다
스테이지 10개가 적다고 느꼈다. 50개는 만들어야 하지 않나? 하지만 10개로도 핵심 메커니즘을 충분히 보여줄 수 있다. 콘텐츠는 구조만 잡아놓으면 나중에 얼마든지 추가할 수 있다.
문서화는 미래의 나를 위한 것이다
개발 일지를 4편에 걸쳐 작성한 건 블로그용이기도 하지만, 나중에 이 프로젝트를 다시 열었을 때 어디까지 했는지, 왜 이런 결정을 했는지 바로 파악할 수 있도록 하기 위해서다.
현재 상태와 다음 단계
MVP는 완성됐다. 소스 코드는 GitHub에 공개할 예정이다.
다음에 이 프로젝트를 다시 열게 된다면:
- Firebase 기반 서버 — 인증, 데이터 동기화 (월 무료 티어로 시작)
- GPS 위치 기반 콘텐츠 — 원래 핵심이었던 관광지 연동
- 앱스토어 등록 — TestFlight 베타부터
언제가 될지는 모르겠다. 하지만 MVP가 있으니 다시 시작할 때의 허들이 훨씬 낮다.
시리즈 요약
| 편 | 주제 | 핵심 |
|---|---|---|
| #1 | 아이디어 | 운동 × 퍼즐 × 관광 컨셉 |
| #2 | 기술 스택 | Flutter + GPS + HealthKit 선정 |
| #3 | 구현 | Water Sort + 걸음 수 연동 + 보상 시스템 |
| #4 | 회고 | MVP 완성, 비용/시간 제약, 배운 것 |
기술 스택: Flutter 3.x, Dart, HealthKit, Health Connect, Provider
소스 코드: GitHub
시리즈: 퍼즐 게임 개발 일지 #4 / 4 (완결)
'프로젝트 > 퍼즐 게임' 카테고리의 다른 글
| 운동하면서 즐기는 퍼즐 게임 만들기 - 개발일지 #3 (0) | 2026.01.26 |
|---|---|
| 운동하면서 즐기는 퍼즐 게임 만들기 - 개발 일지 #2 (0) | 2026.01.19 |
| 운동하면서 즐기는 퍼즐 게임 만들기 - 개발 일지 #1 (0) | 2026.01.18 |