단펫 5월 첫 2주 1인 개발 일지 | Play Store 출시 자동화 96%와 로그인 0% 버그 핫픽스 후기
5월에 가장 정신없이 굴린 프로젝트는 단연 단펫이었습니다. 같이 산책할 만한 반려동물 명소를 보여주는 웹·앱 서비스인데, 이번 2주 동안만 출시 자동화 플레이북 정립, Play Console 신규 앱 등록, AAB v1 internal track 업로드, 베타 트랙 진입, 그리고 Google 로그인 0% 버그 핫픽스까지 차례로 끝냈습니다. 1인으로 운영하는 부업 프로젝트라 "몰아치기"가 자주 일어나는데, 이번이 딱 그 시기였습니다.
👋 오늘의 개발 근황
단펫은 작년 가을부터 키워온 반려동물 산책 정보 서비스입니다. 처음엔 "내가 우리 강아지 산책시킬 만한 곳이 어디 있나"가 궁금해서 시작한 작은 사이드 프로젝트였는데, 어느 순간 전국 데이터를 다 모으고, AdSense를 붙이고, 모바일 앱까지 만들고 있는 자신을 발견했습니다. 5월 첫 2주는 거의 매일 단펫만 보고 있었습니다.
🎯 이 프로젝트는 무엇인가
단펫(DanPet)은 반려동물과 같이 갈 수 있는 장소·산책 코스·동물병원·반려동물 동반 카페·반려동물 동반 숙소·반려동물 미용실까지 13개 카테고리의 정보를 시군구 단위로 정리해서 보여주는 지도 서비스입니다. 웹은 pet.danmap.co.kr에서 바로 쓸 수 있고, 안드로이드 앱은 5월 둘째주 기준으로 베타 트랙에서 검토 막바지 단계에 있습니다.
주 타깃은 "우리 강아지·고양이랑 같이 가도 되는 곳을 찾는 사람"입니다. 단순한 POI 검색이 아니라, 시군구별 반려동물 산책 지수(미세먼지·자외선·날씨·산책로 밀도를 합산한 지수)를 같이 보여주는 게 차별점입니다.
🛠️ 이번 주 뭐가 바뀌었나
이번 2주 동안 굵직한 변화 세 가지를 정리하면 이렇습니다.
- 5월 7일 — 안드로이드 앱 출시 자동화 플레이북 정립 + Phase E 실행 96% 자동화 달성. 그동안 "Play Console 작업은 사용자가 직접 해주세요" 식으로 매번 떠넘기던 패턴을 영구 차단하기 위해, 9절 270줄 분량의 출시 자동화 플레이북을 작성했습니다. 같은 날 단펫 모바일 앱을 Play Console에 신규 등록하고, GCP OAuth Client 생성, AAB v1을 internal 트랙에 업로드, 테스터 3명 등록, 메타 정보 입력, 개인정보처리방침 URL 저장까지 한 번에 끝냈습니다.
- 5월 11일 — Google Play 정책 거절 "잘못된 개인정보처리방침" 전사 일괄 박멸. Play Console에 등록한 privacy URL이 SPA 빈 셸이라 Googlebot이 정책 페이지로 인식하지 못하고 거절했습니다. 단펫뿐 아니라 운영 중인 9개 도메인이 같은 폭탄을 안고 있었던 거라, nginx 9개 conf에 privacy snippet을 일괄 패치하고 모든 도메인을 301로 정상 정책 페이지로 리다이렉트시켰습니다. 단펫은 같은 날 베타 트랙 검토 재제출 완료.
- 5월 12일 — Google 로그인 0% 버그 핫픽스 v0.1.1+3 beta 검토 제출. 단펫 안드로이드 앱에서 Google 로그인 버튼을 누르면 100% 실패하는 버그가 있었습니다. 원인은 GoogleSignIn의 serverClientId를 환경변수에서 주입하도록 해뒀는데 빌드 시점에 --dart-define이 누락되어 빈 문자열로 들어가던 것이었습니다. 같은 단감 앱인 단낚시는 처음부터 하드코딩 패턴이라 정상 작동, 단펫만 풀려 있었던 셈입니다. 단낚시와 동일하게 OAuth Web client ID를 하드코딩으로 통일하고, 로그인 에러 메시지를 사용자 친화적으로 다듬은 다음 v0.1.1+3을 베타 트랙에 재제출했습니다.
📸 화면으로 보는 변화
위에서 정리한 변화들이 실제 단펫 화면에서는 어떻게 보이는지, 메인 페이지·콘텐츠·하단 영역 3개 지점을 캡처해서 첨부합니다. 1인 개발 프로젝트의 "진짜 현재 모습"이라고 봐주시면 됩니다.
💭 만들면서 느낀 점
이번 2주 동안 가장 크게 배운 건 "같은 떠넘기기 패턴을 반복하지 않으려면 플레이북으로 박아둬야 한다"는 것입니다. 그동안 안드로이드 앱 출시 작업 중 GCP OAuth Client 생성이나 Play Console 신규 앱 등록 같은 단계를 매번 "콘솔에서 직접 해주세요" 라고 미뤘는데, 사실은 Chrome MCP DOM 조작이나 Play Developer API로 95% 자동화가 가능한 작업이었습니다. 안 했던 게 아니라 안 해본 거였습니다.
플레이북 9절을 정리하면서 "이 6단계 중 진짜 사람 손이 필요한 건 Play Console 권한 부여 30초와 실기기 OTA 검증뿐"이라는 결론에 도달했습니다. 그 다음 같은 날 단펫 실제 출시 자동화에 적용해 보니 정말로 96%가 자동으로 돌아갔습니다. "미루지 않고 시도해보면 의외로 되는 것이 많다"가 5월 첫 주의 가장 큰 교훈이었습니다.
두 번째 배운 건 "비슷한 앱들 사이의 차이를 일찍 정리해 두자"입니다. 단낚시와 단펫은 같은 단감 가족 앱인데, 단낚시는 처음부터 하드코딩, 단펫은 환경변수로 풀려 있었던 작은 차이 하나가 결국 로그인 0% 버그로 이어졌습니다. 두 앱이 같은 표준을 따르고 있는지 사전에 비교했더라면 베타 출시 전에 잡혔을 문제입니다. 코드 리뷰 시점에 "기존 형제 앱과 동일한 패턴인가"를 체크리스트로 박아두는 것이 다음 단계의 숙제로 남았습니다.
세 번째는 "정책 페이지 같은 사소한 인프라가 9개 앱을 한꺼번에 막는 폭탄이 될 수 있다"는 점입니다. SPA 한 줄 리다이렉트 누락이 모든 단감 앱의 Play Store 검토 거절로 이어졌으니, 정책 페이지·약관 페이지·연락처 페이지처럼 "보이지 않는 기본 인프라"를 출시 전 체크리스트의 최상단에 둬야 합니다.
🔗 직접 써보기
단펫은 PC·모바일 웹에서 바로 써볼 수 있고, 안드로이드 앱은 베타 트랙 검토가 끝나는 대로 옵트인 URL을 통해 설치 가능해질 예정입니다. 가벼운 마음으로 들러서 "우리 동네 산책 가능한 장소" 정도만 한 번 검색해 보셔도, 만든 사람에게는 큰 응원이 됩니다.
버그 제보나 기능 제안은 dangamcorp@dangamcorp.co.kr로 보내주시면 다음 주 작업 우선순위에 바로 반영합니다. 다음 일지에서는 베타 트랙 검토 통과 결과와 단펫 모바일 v0.2 로드맵 이야기를 가져오겠습니다.