구글 플레이 비공개 테스트 12명 모집기 — 품앗이로 발송 당일 12명, 그리고 API 비용 천장부터 닫은 이유

미리 3줄로 보면
  • 뭘 했나: 제 계정에선 앱을 정식 출시하려면 먼저 비공개 테스터를 모아 14일을 버텨야 했습니다. 알파 심사가 37분 만에 통과된 날, 준비 3종을 점검하고 오픈채팅·테스터 품앗이로 일제 발송했더니 옵트인이 그날 4 → 7 → 11 → 12명으로 채워져 14일 시계가 당일 돌기 시작했습니다
  • 같이 한 일: 테스터가 생기는 순간 «앱 안 PREMIUM 결제가 테스트카드라 실제 돈은 안 나가는데, 그 상태로 AI를 무한 호출할 수 있다»는 우려가 현실이 됐습니다. 보류해 뒀던 GCP 가드레일 3종(할당량 상한·예산 알림·키 제한)을 그날 걸었습니다
  • 한계: 이제부터 14일간 12명을 유지해야 하고 한 명이라도 빠져 12 미만이 되면 시계가 리셋됩니다. 옵트인 수엔 제 계정이 섞여 있을 수 있고, 품앗이 사이트 경유는 그날 0명이었습니다
안경 쓴 딱따구리가 게시판 앞에 서서 작은 새 실루엣 열한 개가 붙은 출석표에 도장을 찍고 있는 모습, 게시판 옆 벽에는 커다란 벽시계, 책상 위에는 작은 열쇠와 자물쇠
안경 쓴 딱따구리가 게시판 앞에 서서 작은 새 실루엣 열한 개가 붙은 출석표에 도장을 찍고 있는 모습, 게시판 옆 벽에는 커다란 벽시계, 책상 위에는 작은 열쇠와 자물쇠 (AI 생성 삽화)

왜 이걸 해야 했나

1) 앱을 만들었는데 «출시» 버튼이 없다

학생들 가르치는일을 하다보니, 수업 관련 도구를 AI로 만들 생각을 많이 해봅니다. 그 중, 학생 관리 도구를 AI로 만들다 재미가 붙어서, 이번엔 수업과 상관없는 앱을 하나 만들어 봤습니다 — 아기 이름을 사주로 추천해 주는 안드로이드 앱입니다. 앱은 다 만들었는데 정식 출시가 안 됩니다. 제 계정 기준으로는 비공개 테스트를 먼저 통과해야 프로덕션 액세스를 신청할 수 있었거든요. 콘솔의 «프로덕션 액세스 요건» 카드에는 이렇게 떠 있었습니다 — ① 비공개 테스트 버전 게시 ② 테스터 12명 이상 참여 선택 ③ 12명 대상 14일 이상 테스트 실행.

프로덕션 액세스 요건 3단 — 비공개 테스트 게시, 테스터 12명 옵트인(12명째가 T0), 12명 대상 14일 이상 실행, 그다음 프로덕션 액세스 신청으로 이어지는 흐름과 «시계는 사람이 옵트인해야만 돈다» 주석
프로덕션 액세스 요건 3단 — 비공개 테스트 게시, 테스터 12명 옵트인(12명째가 T0), 12명 대상 14일 이상 실행, 그다음 프로덕션 액세스 신청으로 이어지는 흐름과 «시계는 사람이 옵트인해야만 돈다» 주석

무대를 한 문장으로 — 앱 출시의 마지막 관문은 코드가 아니라 «모르는 사람 12명이 내 앱을 깔고 2주간 지우지 않는 것»입니다. 시계는 12명째가 옵트인하는 날(저는 T0라고 부릅니다)부터 돌고, 그 전까지는 아무리 코드를 고쳐도 하루도 안 갑니다. 그래서 «T0 전에는 고도화 코드에 손대지 않는다»를 규칙으로 못 박아 뒀습니다.

2) 링크만 뿌리면 안 되는 이유

12명이면 지인만으로 될 것 같지만, 두 가지가 걸립니다. 첫째, 테스터는 콘솔의 «테스터 그룹»에 등록된 계정이어야 옵트인이 잡힙니다. 링크만 받아서는 안 됩니다. 둘째, 지인에게 14일 유지까지 부탁하기가 부담이었습니다. 그래서 설치만 해두고 14일간 지우지만 말아 달라로 부탁을 줄이고, 서로 앱을 깔아 주는 테스터 품앗이를 같이 썼습니다.

준비 — 재개 첫 작업, 점검 3종

알파 트랙에 새 빌드를 제출한 게 새벽 3시 3분, 게시된 게 3시 40분이었습니다. 제 콘솔 안내 기준 최대 7일 걸릴 수 있다던 것에 비하면 37분은 기록이었어요. 저는 게시 11분 전인 새벽 3시 29분에 «자고 일어나서 오전 11시쯤 다시 시작하자»로 세션을 닫은 상태였고, 오전에 작업을 재개하자마자 게시된 걸 확인했습니다. 그 자리에서 AI에게 콘솔을 열어 발송 전 준비를 점검시켰습니다.

Play Console 알파 트랙에서 테스터 탭이 Google 그룹스 방식으로 그룹 A(직접 모집용)와 그룹 B(품앗이 사이트 공용)를 갖고, 오픈채팅 발송은 그룹 A로·품앗이 사이트는 그룹 B로 유입돼 옵트인 링크를 거쳐 설치·14일 유지로 이어지는 모집 인프라 구조도
Play Console 알파 트랙에서 테스터 탭이 Google 그룹스 방식으로 그룹 A(직접 모집용)와 그룹 B(품앗이 사이트 공용)를 갖고, 오픈채팅 발송은 그룹 A로·품앗이 사이트는 그룹 B로 유입돼 옵트인 링크를 거쳐 설치·14일 유지로 이어지는 모집 인프라 구조도
점검확인한 것결과
테스터 그룹콘솔 테스터 탭이 «Google 그룹스» 방식이고, 직접 모집용 그룹이 등록돼 있는지등록됨(미저장 변경 없음)
옵트인 링크링크를 직접 열어 앱 아이콘·이름과 «Become a tester» 버튼이 뜨는지정상
품앗이용 공용 그룹 (권고는 등록 전, 저는 등록 직후 확정)품앗이 사이트가 요구하는 공용 그룹 주소가 테스터 탭에 «함께» 있는지처음엔 화면으로 확정 못 함 → 등록 단계에서 칩 2개 저장 완료 확인
테스터 그룹을 «Google 그룹스» 방식으로 두는 이유

콘솔은 테스터를 이메일 목록으로도, 구글 그룹으로도 받습니다. 그룹 방식이면 그룹에 가입한 사람이 자동으로 테스터가 되니, 품앗이 사이트처럼 «공용 그룹 하나에 가입»으로 굴러가는 곳과 맞물립니다.

품앗이 사이트에 앱을 등록할 때 «안드로이드 링크» 칸이 있었는데, 폼의 예시는 apps/test/… 형식이었고 제 콘솔이 발급한 «Android에서 참여» 링크는 스토어 상세 페이지 형식이었습니다. AI의 판단은 콘솔이 정본이라 그 값을 그대로 넣으라는 것이었고, 그렇게 했습니다.

앱 설명 칸은 8월에 써 둔 문구를 AI에게 폼 형식에 맞게 다듬어 달라고 했고, 나온 문장을 그대로 넣었습니다. 핵심 가치 한 줄 뒤에 부탁이 이렇게 붙었습니다.

테스터 등록 후 설치만 해두고 14일간 삭제만 안 해주시면 되며(매일 실행 불필요), 저도 같은 방식으로 맞테스트 참여합니다.

실제 흐름 1바퀴 — 발송에서 12명까지

오픈채팅 품앗이 모집방에 일제 발송하고, 품앗이 사이트에 앱을 등록하고, 다른 사람 앱 10개를 설치해 맞테스트를 개시했습니다. 그다음은 기다리는 일입니다. 저녁에 «지금 옵트인 현황 체크할 수 있어?»라고 물었고, AI가 콘솔 대시보드의 요건 카드를 직접 읽었습니다.

9월 1일 낮 발송 후 저녁 1차 옵트인 4명(본인 2계정 섞였을 수 있음), 저녁 2차 7명, 밤 11명, 같은 날 12명 도달로 요건 카드가 «작업이 완료됨»이 되어 T0=9/1·신청 가능일 9/15가 확정되고, 이후 14일간 12명 유지·이탈 시 리셋·버퍼 15명 모집이 남는 하루 타임라인
9월 1일 낮 발송 후 저녁 1차 옵트인 4명(본인 2계정 섞였을 수 있음), 저녁 2차 7명, 밤 11명, 같은 날 12명 도달로 요건 카드가 «작업이 완료됨»이 되어 T0=9/1·신청 가능일 9/15가 확정되고, 이후 14일간 12명 유지·이탈 시 리셋·버퍼 15명 모집이 남는 하루 타임라인
실측 시점옵트인읽을 때 주의
저녁 1차48월 말 «설치 사용자 2»가 제 계정 둘이었으니, 순수 외부 유입은 2~4로 보는 게 안전
저녁 2차7 (+3)품앗이 사이트 경유는 여전히 0 — 되갚기는 보통 하루 이상 시차
세 번째 확인11 (+4)T0까지 1명. 목표는 12가 아니라 15(이탈 버퍼 3)
네 번째 확인12요건 카드가 «작업이 완료됨»으로 바뀜 — T0 = 9월 1일, 프로덕션 신청 가능일 9월 15일

«옵트인 다시 확인해봐, 12명 됐는지»가 그날의 마지막 확인 질문이었고, 답은 12였습니다. 목표로 잡았던 «발송 + 3~5일»이 당일 달성으로 당겨진 겁니다. 다만 AI가 매번 같은 주의를 붙였습니다 — 품앗이 사이트의 «참여중 N명»은 참고치일 뿐이고 정본은 콘솔의 옵트인 수라는 것, 그리고 12명째 옵트인 날짜(T0)만은 반드시 기록하라는 것. 그리고 12가 되자마자 주의는 하나로 줄었습니다. 14일간 12명 유지. 중간 이탈로 12 미만이 되면 시계가 리셋되니 15명까지 버퍼 모집은 계속하라고요.

같이 걸어 둔 것 — API 비용 천장

옵트인 4명을 확인한 그 저녁, 제가 떠올린 게 이겁니다.

그리고 앱 내 PREMIUM 결제가 현재 테스트카드로 결제라 실제 돈나가는게 아니니까 테스터들이 계속 Gemini API를 요청할 수가 있단말이지. 이 앱의 테스트 비용 수치도 매번 확인해야할것 같아.

테스터가 테스트카드로 PREMIUM을 결제하면 실제 과금 없이 앱이 게이트웨이를 거쳐 Gemini API를 부르고 청구는 내 프로젝트로 가며, 앱 안에는 막을 장치가 없어 최종 방어선이 프로젝트 할당량 상한이 되는 비용 경로 개념도
테스터가 테스트카드로 PREMIUM을 결제하면 실제 과금 없이 앱이 게이트웨이를 거쳐 Gemini API를 부르고 청구는 내 프로젝트로 가며, 앱 안에는 막을 장치가 없어 최종 방어선이 프로젝트 할당량 상한이 되는 비용 경로 개념도

AI의 답은 «맞는 우려이고, 더 중요한 트리거가 하나 걸린다»였습니다. 지난주 GCP 가드레일 3종을 보류하면서 재검토 조건을 «실제 설치자가 생기면»으로 적어 뒀는데, 오늘 그 조건이 걸렸다는 겁니다. 테스트카드 결제라 앱 안에서는 남용을 막을 게 없고, 최종 방어선은 프로젝트 할당량뿐이라고요. AI가 먼저 비용부터 실측했습니다 — 지난 7일 청구 ₩108(계정 전체), 이번 달 누적 ₩0, 최근 2일 트래픽 1~2건. 아직 평온했지만, 저는 «가드레일 승인, 지금 걸어줘»라고 했습니다.

가드레일 3종 — 할당량 상한(일 10,000→500·분당 1,000→20, 정상 세션 최대 약 13콜 근거), 예산 알림(월 ₩30,000, 50/90/100% 이메일, 지출은 막지 않음), 키 API 제한(Gemini API 1개만) 요약 도식
가드레일 3종 — 할당량 상한(일 10,000→500·분당 1,000→20, 정상 세션 최대 약 13콜 근거), 예산 알림(월 ₩30,000, 50/90/100% 이메일, 지출은 막지 않음), 키 API 제한(Gemini API 1개만) 요약 도식
가드레일결과
할당량 상한오늘 적용 — 앱이 쓰는 모델의 일일 요청 10,000 → 500, 분당 1,000 → 20
예산 알림이미 있음 — 월 ₩30,000, 50/90/100%에 이메일(결제 계정 전체 범위)
키 API 제한이미 걸려 있음 — 키가 Gemini API 하나만 허용

상한 값의 근거가 마음에 들었습니다. 모델은 서버(게이트웨이)가 고정하니 그 모델 행만 막으면 되고, 정상 PREMIUM 세션 한 번이 최대 13콜쯤이라 분당 20이면 한 세션 + 여유, 일일 500이면 하루 38세션까지 허용됩니다. 최악의 남용도 하루 500콜에서 막힙니다. 수학 문제로 치면 «구하려는 값의 범위를 먼저 정해 놓고 푸는» 셈이죠.

예산 알림은 지출을 막지 않습니다

「예산 및 알림」은 이메일만 보냅니다. 한도에 닿아도 호출과 청구는 계속됩니다. 실제로 막는 건 할당량뿐이라, 셋 중 하나만 한다면 할당량 상한입니다.

콘솔 작업은 AI가 브라우저로 했는데, 함정이 둘 있었습니다. 할당량 표가 633행이라 모델 이름으로 45행까지 좁혀야 했고, 그러고도 처음엔 무료 티어 행(값 20)이 잘못 선택돼 있어서 되돌리고 유료 티어의 10,000 행을 다시 골랐습니다. «95% 감소» 확인 대화상자가 뜨는 게 정상입니다. 로컬에 gcloud가 없어서 전부 콘솔 UI로 했다는 것도 적어 둡니다.

써보니 — 후기와 한계

1) 좋았던 것

  • 심사 37분. 최대 7일 안내를 보고 하루쯤 각오했는데 새벽에 바로 게시됐습니다. 재개하자마자 점검부터 돌린 덕에 그날 낮에 발송할 수 있었습니다.
  • 당일 12명. 링크만 뿌렸으면 안 됐을 겁니다. «설치만, 14일만»으로 부탁을 줄이고 맞테스트를 건 게 먹혔습니다. 발송 + 3~5일로 잡았던 T0가 당일로 당겨졌습니다.
  • 비용 루틴이 생겼습니다. 세션마다 옵트인 수와 함께 청구액·2일 트래픽·모르는 트래픽 여부를 같이 보는 걸 AI가 자기 기억에 적어 뒀습니다.

2) 한계와 주의사항

  • 12명은 시작이지 끝이 아닙니다. 이제부터 14일간 12명을 유지해야 하고, 한 명이라도 빠져 12 미만이 되면 시계가 리셋됩니다. 그래서 목표는 15명이고, 다음 날부터도 모집은 계속입니다.
  • 옵트인 수에 제 계정이 섞여 있을 수 있습니다. 같은 폰의 두 번째 계정은 옵트인엔 잡혀도 «설치 유지» 판정에는 취약합니다. 12명은 실제 사람으로 채운다는 원칙을 지켰습니다.
  • 품앗이 사이트 경유는 그날 0명. 등록 하루도 안 된 시점이라 되갚기 시차가 있습니다. 매일 체크인이 상대에게 보이는 신뢰 지표라 그건 제 손으로 매일 해야 합니다.
  • 가드레일은 «앱 쪽 프로젝트»에 건 것입니다. 제 경우 키가 둘로 갈라진 사정이 있어(별도 글에서), 상한은 키가 있는 프로젝트마다 확인해야 합니다.

FAQ

Q. 테스터 12명이라는 숫자는 어디서 나온 건가요?
제 콘솔의 «프로덕션 액세스 요건» 카드에 그렇게 떠 있었습니다(작성 시점 2026-09-01). 계정이나 시기에 따라 다를 수 있으니 자기 콘솔 카드를 기준으로 하세요.

Q. 테스터에게 매일 앱을 실행해 달라고 해야 하나요?
저는 «설치만 해두고 14일간 지우지 말아 달라»로 부탁했습니다. 요건 카드가 보는 건 옵트인과 기간이었고, 부탁이 가벼울수록 응답이 빨랐습니다.

Q. 테스트카드 결제인데 왜 비용 걱정을 하나요?
결제는 가짜여도 AI 호출은 진짜라서요. 앱이 서버를 거쳐 Gemini를 부르고 청구는 제 프로젝트로 옵니다. 앱 안에서 막을 수 없으니 프로젝트 할당량으로 천장을 쳤습니다.

Q. 할당량을 너무 낮게 잡으면요?
저도 막힙니다. 그래서 정상 세션의 최대 호출 수(약 13콜)를 먼저 세고 그 배수로 잡았습니다. 값은 콘솔에서 언제든 다시 올릴 수 있습니다.

마치며 — 오늘 할 수 있는 것

  1. 오늘: 콘솔의 «프로덕션 액세스 요건» 카드를 열어 자기 숫자를 확인하고, 테스터 탭이 그룹 방식인지·옵트인 링크가 살아 있는지 점검.
  2. 이번 주: 부탁 문구를 «설치만, N일만»으로 줄여 발송하고, 품앗이 사이트에 등록해 맞테스트 개시. 옵트인 수는 사이트가 아니라 콘솔에서 읽기. 12명째 날짜(T0)를 기록하고 버퍼까지 계속 모집.
  3. 꾸준히: 테스터가 1명이라도 생기면 그날 할당량 상한부터. 세션마다 옵트인·청구액·트래픽 세 숫자를 같이 본다.

앱은 코드가 끝나도 끝나지 않습니다. 12명이 2주를 버텨 줘야 하고, 그동안 제 지갑은 제가 지켜야 합니다. 그 둘을 같은 날 시작한 기록이었습니다.

댓글 남기기