칼럼

운영 기록③|277커밋과 17개 언어, 그래도 멈췄다 — 앱 2개가 움직이지 않게 되기까지

같은 달에 시작한 모바일 앱 2개의 중단 기록. 하나는 51일 동안 277커밋·17개 언어까지 만들어 넣었고, 하나는 17일 만에 전면적으로 다시 만들어 공개했다. 둘 다 수요를 확인하는 공정을 끼우지 않은 채, 커밋이 오지 않게 되며 멈췄다.

운영 기록③|277커밋과 17개 언어, 그래도 멈췄다 — 앱 2개가 움직이지 않게 되기까지

2026년 5월 말, 4일 차이로 모바일 앱을 2개 시작했다. 하나는 가족과 커플이 일상의 연락을 공유하는 앱, 다른 하나는 수족관을 경영하는 시뮬레이션 게임이다. 둘 다 개인 개발이고, 둘 다 스토어에 냈다. 그리고 둘 다 지금은 업데이트가 멈춰 있다.

이 회에서는 2개가 중단에 이르는 과정을 리포지토리 기록으로 늘어놓는다. 멈춘 방식이 전혀 달랐기에 대비로서 묶어 다룬다.

2개의 이력

공유 앱게임 앱
착수2026-05-312026-05-27
최종 커밋2026-07-212026-06-13
가동 일수51일17일
커밋 수27740
도달 버전1.14.0(빌드 49)1.2.0(빌드 10)
지원 언어17개 언어다국어 대응
배포 상황iOS 배포, Android는 비공개 테스트에 머무름iOS 배포, Android는 미제출

51일에 277커밋은 하루 5.4회. 그중 244회가 6월 한 달에 집중되어 있다. 같은 기간 돌리던 정보 사이트는 하루 2.4커밋이었으니, 손을 움직인 양만 보면 앱 쪽이 배 이상 빨랐다.

만들어 넣다가 멈춘 쪽

공유 앱은 51일 동안 여기까지 만들었다.

3개의 탭(공유 리스트·약속·대신 낸 돈 정산), 익명 인증, 복수 그룹 소속과 전환, 푸시 알림, 웹 읽기 전용 공유 링크, 구독 결제, 추천 프로그램, 계절별 일괄 알림 발송 스크립트. 버전은 1.14.0까지 새겼다.

그리고 17개 언어에 대응했다. 일본어와 영어에서 시작해 한국어·중국어·독일어·스페인어·프랑스어·이탈리아어·포르투갈어를 더하고, 7월에는 인도네시아어·베트남어·태국어·러시아어·터키어·힌디어·아랍어를 한 번에 추가했다. UI의 전체 키뿐 아니라 푸시 알림 문구도 스토어 소개문도, 그 언어 수만큼 준비했다.

여기서 이 작업이 무엇을 하고 있었는지를 차갑게 쓴다. 쓰는 사람이 몇 명인지 확인하지 않은 채, 공급 측의 면적을 17배로 늘렸다. 일본어권에서 얼마나 쓰이는지도 모르는 단계에서 아랍어 푸시 알림 문구를 쓰고 있었다. 번역을 더하는 것은 기술적으로 기분 좋은 작업이다. 진척이 세어지고 커밋이 쌓인다. 수요가 늘었는지는 거기에 표시되지 않는다.

리포지토리의 로드맵에는 설계까지 끝내고 착수하지 않은 항목이 그대로 남아 있다. 참가 승인제, 역할별 권한 분리. 설계는 계속 늘었는데, 쓰이고 있는지를 보는 작업만은 한 번도 들어가지 않았다.

7월 21일의 커밋은 스토어 게재 정보의 소소한 수정이었다. 결심하고 끝낸 것이 아니라, 거기서 손이 멈췄다.

다시 만들다가 멈춘 쪽

게임 쪽은 전혀 다르게 멈췄다.

5월 27일에 Swift와 SwiftUI로 착수해, 5월 31일에 “moved to flutter”라는 커밋이 들어 있다. 4일 만에 그때까지의 구현을 버리고 Flutter로 옮겼다. iOS뿐 아니라 Android에도 내고 싶었기 때문으로, 판단 자체는 앞뒤가 맞는다. 다만 이 시점에 17일 가동 중 4일을 다시 만들기에 쓴 셈이 된다.

거기서 6월 13일까지 2주 동안 다국어화, 가챠 조정, 방문자 수 밸런스 조정까지 해서 버전 1.2.0에 도달했다. 40커밋으로 한 바퀴 놀 수 있는 데까지 가져간 것은 빠른 편이라고 생각한다.

멈춘 것은 다음에 무엇을 만들지 알 수 없게 되었기 때문이다. 플레이하는 사람이 무엇을 재미있어하는지 알 수단을 마련하지 않았기에, 밸런스 조정의 좋고 나쁨을 판단할 기준이 자신의 주관밖에 없다. “만원 방문자 수를 기준치의 4.5배로 재조정”이 마지막 커밋인데, 그 4.5가 맞는지 확인할 방법이 애초에 없었다.

공개하면 고칠 수 없게 되는 것이 있다

이 게임에는 지금 고칠 수 없는 부분이 하나 남아 있다.

iOS판 Bundle ID(앱을 식별하는 문자열)에 오타가 있어, 본래 들어가야 할 2글자가 빠져 있다. Android 쪽 식별자는 올바른 철자라서, 같은 앱인데 플랫폼에 따라 식별자가 어긋나 있다. App Store에 공개한 뒤의 Bundle ID는 변경할 수 없으므로 이것은 수정 불가능하다. 리포지토리 가이드에도 “typo. App Store 공개 완료로 변경 불가”라고 적어 남겨 두었다.

실질적 손해는 크지 않다. 그래도 이 한 줄은 스스로에게 상징적이었다. 서둘러 공개함으로써, 나중에 고칠 수 없는 형태로 고정된 판단이 존재한다. 릴리스를 앞당기는 데는 이점이 있지만, 앞당긴 만큼 확정되어 버리는 것도 있다.

하나 더, 릴리스 절차서에는 “주 대상은 Android, 배포의 주축은 Google Play”라고 쓰여 있다. 실제로 배포할 수 있었던 것은 iOS뿐이고, Play Console 쪽 사전 준비 표는 대부분의 행이 미착수인 채 남아 있다. 쓴 전략과 실행한 순서가 어긋나 있었다는 것을, 멈추고 나서 깨달았다.

2개에 공통이었던 것

멈춘 방식은 다른데, 빠져 있던 공정은 같았다. 둘 다 수요를 확인하는 공정이 한 번도 들어가지 않았다.

만들어 넣은 쪽은 기능과 언어를 계속 늘렸다. 다시 만든 쪽은 토대를 갈아 끼우고 공개까지 달렸다. 둘 다 공급 측의 작업이고, 둘 다 커밋 수로 세어진다. 쓰는 사람이 있는지는 커밋 수에 나타나지 않는다.

이 미디어에서 다루는 개인 개발 사례를 보면, 성장한 사례에는 공통으로 “밖에서 반응이 돌아오는 도선”이 최초기부터 있다. Product Hunt나 커뮤니티에 내서 반응을 보고 나서 만들어 넣는 유형이나, 1주일에 $150K를 번 뒤 스스로 접은 Avatar AI처럼 숫자가 나온 위에서 철수를 선택하는 유형이다. 접는 판단을 할 수 있는 것은 숫자가 있는 쪽뿐이다. 숫자가 없는 쪽에는 결단이 아니라 정지밖에 일어나지 않는다.

본업 틈틈이 Python 자동화 부업을 계속하다 누적 15만 엔 시점에 철수를 정한 사례는 금액으로는 작지만, 철수 판단에 숫자를 쓸 수 있었다는 점에서 이 2개보다 앞서 있다.

내지 않은 숫자에 대하여

다운로드 수와 결제액은 이 기사에서 내지 않는다. 수중에 나중에 검증 가능한 형태로 갖춰져 있지 않기 때문이다. 셀 수 있는 형태로 갖고 있지 않았다는 것 자체가 이 2개의 성격을 잘 보여 준다고 생각한다. 갖춰지면 이 기사에 덧붙인다.

낼 수 있는 것은 커밋 수와 날짜와 버전 번호뿐이었다. 만든 쪽의 노력량은 완전히 기록되어 있고, 쓰인 방식은 아무것도 기록되어 있지 않다. 그런 리포지토리가 되어 있었다.

이 연재

출처

이 글은 위 공개 정보의 요약과 분석입니다. 자세한 내용은 반드시 1차 자료를 확인하세요.

이 글은 출처 "Small Start(small-start.com)" 표기와 본 페이지 링크만 있으면 언론·블로그·생성형 AI 답변 등에서 자유롭게 인용·전재할 수 있습니다(사전 연락 불필요). 전재·인용 안내 →

도움이 되셨다면 공유해 주세요
X에 공유