개발일지 #1

1인 개발자의 첫 Play Store 출시기
성운궤도를 만들기까지

회사 다니면서 혼자 게임을 만들어 Play Store에 출시했습니다. 수십 번의 빌드 실패, 리젝 통보, 그리고 마침내 프로덕션 출시까지 — 솔직한 기록입니다.

김동천 · KDC Lab · 2026년 5월 17일
시작: 왜 게임을 만들었나

아이디어는 단순했다

처음 아이디어는 단순했습니다. "숫자를 맞추는 퍼즐인데, 별을 연결하는 방식이면 어떨까?" 이 생각이 들었을 때 이미 비슷한 게임이 수십 개는 있다는 걸 알고 있었습니다. 그래도 직접 만들어보고 싶었습니다.

HTML, CSS, JavaScript만 쓰기로 했습니다. 유니티나 게임 엔진을 새로 배우는 시간 대신, 아는 언어로 빠르게 만들어보는 게 맞다고 판단했습니다. 별도의 서버나 데이터베이스 없이 단일 HTML 파일 하나로 완성하는 것이 목표였습니다.

첫 번째 플레이 가능한 버전 완성까지 약 2주. 그 후 "완성"까지 3개월이 더 걸렸습니다.
출시까지의 타임라인
2026년 1월
기본 게임 로직 완성
별 드래그, 합계 계산, 폭발 애니메이션. 핵심 루프는 생각보다 빨리 만들었지만, "재미있다"는 느낌을 만드는 게 훨씬 어려웠습니다.
2026년 2월
11개 행성 시스템 설계
지구부터 우주까지 11단계 진행 구조를 만들었습니다. 각 행성마다 난이도와 배경을 다르게 설정하는 작업이 생각보다 많은 시간이 걸렸습니다.
2026년 3월
TWA 빌드 첫 시도 — 실패
Trusted Web Activity(TWA)로 웹 게임을 Android 앱으로 패키징하려 했습니다. bubblewrap 설정, 키스토어 생성, 디지털 에셋 링크 설정까지 — 처음 해보는 것들이어서 빌드만 성공하는 데 2주가 걸렸습니다.
2026년 4월
비공개 테스트 신청 — 리젝
처음 신청했을 때 돌아온 답은 거절이었습니다. "테스터가 실제로 참여하지 않음"과 "피드백을 반영한 업데이트가 없음"이 이유였습니다. 테스터를 직접 모집해 피드백을 받고, 수정 사항을 반영한 후 재신청했습니다.
2026년 5월 3일
프로덕션 신청
비공개 테스트를 통과한 후 프로덕션 신청을 완료했습니다. 승인까지 며칠이 걸릴지 알 수 없었습니다.
2026년 5월 4일
프로덕션 출시 완료
신청 하루 만에 승인되었습니다. 100% 롤아웃으로 Play Store에 공개되었습니다.
기억에 남는 문제들
빌드 문제

bubblewrap이 파일을 덮어쓴다

TWA 빌드 도구인 bubblewrap으로 버전을 업데이트할 때마다 수동으로 수정했던 파일들이 덮어씌워지는 문제가 있었습니다. LauncherActivity.java와 AndroidManifest.xml에 뒤로가기 버튼 종료 처리를 추가했는데, 매 빌드마다 사라지는 것을 나중에야 발견했습니다.

교훈

bubblewrap update 이후에는 반드시 수동 변경사항을 재적용해야 합니다. 빌드 전 체크리스트를 만들어두는 것이 필수입니다.

리젝 경험

비공개 테스트 리젝 — 테스터 문제

Google Play 정책상 프로덕션으로 가기 전에 비공개 테스트(Internal/Closed Testing)를 일정 기간 진행해야 합니다. 단순히 테스터를 등록하는 것만으로는 부족하고, 테스터가 실제로 앱을 설치해서 플레이해야 했습니다.

지인들에게 링크를 보냈지만 실제로 설치한 사람이 거의 없었습니다. 두 번째 시도에서는 직접 피드백을 주고받으며 여러 번 업데이트를 진행했고, 그 후에야 통과할 수 있었습니다.

테스터는 최소 12명 이상이 실제로 앱을 설치하고 14일 이상 테스트 기간을 진행해야 합니다. 단순 등록이 아니라 실제 참여가 필요합니다.

설계 변경

타이머를 이동 횟수로 바꾼 이유

처음 버전은 제한 시간이 있었습니다. 타이머가 줄어드는 압박감이 "재미"라고 생각했는데, 테스터들의 반응은 달랐습니다. "시간에 쫓기는 느낌이 스트레스"라는 피드백이 많았습니다.

이동 횟수 제한으로 바꾸자 분위기가 달라졌습니다. 한 번의 이동을 아깝게 쓰기 싫어서 더 신중하게 생각하게 되는 것이죠. 이 "아깝다"는 감정이 플레이어를 게임에 더 몰입시키고, 이동 횟수를 추가하는 아이템 구매 의욕으로도 이어질 수 있습니다.

게임 디자인의 핵심은 "이기는 재미"가 아니라 "아쉬운 감정"을 만드는 데 있다고 느꼈습니다.
이름 변경

게임 이름을 바꿔야 했다 — Starweave → 성운궤도

처음에는 게임 이름을 Starweave로 정했습니다. 별(Star)과 연결(Weave)을 합친 이름으로 게임의 핵심을 잘 담았다고 생각했습니다. 패키지명도 com.kdclab.starweave로, 코드와 파일 구조 전체가 이 이름을 기반으로 만들어졌습니다.

그런데 Play Store에 등록 준비를 하다가 문제가 생겼습니다. 검색해보니 이미 'Starweave'라는 이름의 게임이 스토어에 존재했습니다. 이름 중복은 사용자 혼동을 일으킬 수 있고, 향후 브랜드 구축에도 불리합니다. 이름을 바꾸기로 결정했습니다.

새 이름으로 성운궤도 (Nebular Orbit)를 골랐습니다. 별들이 성운(Nebula) 속을 궤도(Orbit)처럼 움직이며 연결되는 게임의 분위기를 담았고, 한국어 이름과 영어 부제를 함께 써서 검색 노출도 넓혔습니다.

고민했던 부분

패키지명(com.kdclab.starweave)과 서버 디렉토리 경로(/games/starweave/)는 이미 빌드와 배포에 깊이 연결되어 있었습니다. 이름만 바꾸고 내부 경로는 그대로 유지하는 방향을 선택했습니다. Android 앱의 패키지명은 한 번 스토어에 등록하면 변경이 불가능하고, URL 경로 변경은 SEO와 링크 정합성 문제를 일으킬 수 있기 때문입니다.

교훈

게임 이름은 개발 시작 전에 Play Store 검색을 꼭 해보세요. 패키지명, 도메인, 소셜 계정 확보 가능 여부까지 함께 확인하는 것이 나중의 번거로움을 줄입니다.

해결

versionCode 충돌

Play Console에서는 업로드할 때마다 versionCode가 반드시 이전보다 높아야 합니다. 여러 번 빌드를 테스트하다 보니 어떤 버전을 이미 올렸는지 헷갈리게 되었습니다. 프로덕션 신청 직전에 versionCode 32를 이미 사용한 것을 확인하지 못하고 32로 빌드해서 업로드에 실패한 적이 있었습니다.

이후 twa-manifest.json을 항상 먼저 확인하고, 버전 관리 스프레드시트를 별도로 만들어 관리하고 있습니다.

1인 개발의 현실

혼자 하면 모든 게 내 일이다

게임 로직 개발, UI 디자인, 사운드 선택, 서버 설정, 배포 스크립트 작성, 마케팅 문구 작성, 스크린샷 제작, Play Store 정책 검토, AdSense 신청, 법적 문서(개인정보처리방침, 이용약관) 작성까지 — 전부 혼자 했습니다.

그 중에서 가장 예상보다 오래 걸린 것은 법적 문서와 스토어 메타데이터였습니다. 게임 자체를 만드는 것보다 출시 준비에 더 많은 시간이 들었습니다.

1인 개발자를 위한 체크리스트

개인정보처리방침 · 이용약관 · 스크린샷 최소 4장 · 기능 설명 영상 (선택) · 광고 정책 확인 · 테스터 최소 12명 · 콘텐츠 등급 설문 · 타겟 연령층 설정 · 앱 카테고리 설정 · 디지털 에셋 링크 (.well-known/assetlinks.json)

앞으로의 계획

성운궤도는 시작일 뿐입니다. KDC Lab은 더 많은 HTML5 게임을 개발할 계획입니다. 각 게임은 단순하지만 중독성 있는 핵심 루프를 중심으로 설계하고, 브라우저에서 바로 플레이할 수 있는 접근성을 유지할 것입니다.

다음 개발일지에서는 성운궤도 업데이트 내용과 새로운 게임 개발 과정을 공유할 예정입니다. 1인 개발의 크고 작은 이야기를 계속 기록하겠습니다.

개발 이야기를 읽으셨다면
직접 플레이해보세요.
별을 연결하는 10분이 생각보다 길게 느껴질 겁니다.

성운궤도 플레이하기