Google Play Store 등록 및 심사 가이드
작성일: 2026-04-06 Last Updated: 2026-04-06 대상: Flutter Mobile App (Android) 공통 참조:
../common/security.md(코드 서명),../common/ci-cd.md(배포 파이프라인)
목차
- Google Play Console 등록
- 앱 등록 및 설정
- 데이터 안전 섹션
- 콘텐츠 등급 (IARC)
- 스크린샷 및 그래픽 규격
- 테스트 트랙
- Google Play Billing
- 앱 번들 (AAB) vs APK
- 타겟 API 레벨 요구사항
- Play Store 정책 핵심
- 체크리스트
1. Google Play Console 등록
사전 요구사항
| 항목 | 상세 | 비용 |
|---|---|---|
| Google 계정 | 개발자 등록용 | 무료 |
| 등록비 | 1회성 | $25 |
| D-U-N-S 번호 | 조직 계정 시 필수 (2023년~) | 무료 |
| 본인 확인 | 개인: 신분증, 조직: 사업자등록증 | - |
계정 유형
| 유형 | 요구사항 | 앱 공개 제한 |
|---|---|---|
| 개인 | 신분증 인증 | 20개/년 (신규 계정) |
| 조직 | D-U-N-S + 사업자등록증 | 제한 없음 |
권장: 상용 제품은 조직 계정으로 등록. 신규 개인 계정은 연간 앱 공개 수 제한 있음.
등록 단계
| 단계 | 작업 | 소요 시간 |
|---|---|---|
| 1 | Google Play Console 접속 (https://play.google.com/console) | - |
| 2 | 개발자 계정 생성 + $25 결제 | 즉시 |
| 3 | 본인/조직 인증 | 개인: 1-3일, 조직: 5-7일 |
| 4 | 앱 생성 (Create app) | 10분 |
| 5 | 스토어 등록정보 입력 | 1-2시간 |
| 6 | 콘텐츠 등급, 데이터 안전 작성 | 30분 |
| 7 | 빌드 업로드 (AAB) | 15분 |
| 8 | 테스트 트랙 or 프로덕션 제출 | - |
| 9 | 심사 대기 | 신규: 3-7일, 업데이트: 1-3일 |
2. 앱 등록 및 설정
스토어 등록정보
| 필드 | 제한 | 설명 |
|---|---|---|
| 앱 이름 | 30자 | 스토어 표시 이름 |
| 짧은 설명 | 80자 | 검색 결과에 표시 |
| 전체 설명 | 4,000자 | 상세 설명 |
| 앱 아이콘 | 512x512 PNG (32-bit) | 투명 배경 불가 |
| 기능 그래픽 | 1024x500 PNG/JPEG | 스토어 상단 배너 |
| 카테고리 | 최대 1개 | 앱 / 게임 선택 후 세부 카테고리 |
| 태그 | 최대 5개 | 관련 태그 선택 |
| 연락처 이메일 | 필수 | 공개되는 이메일 |
| 개인정보 처리방침 URL | 필수 | 유효한 URL |
앱 생성 시 초기 선택
| 선택 항목 | 옵션 | 변경 가능 |
|---|---|---|
| 앱/게임 | App 또는 Game | X |
| 유료/무료 | Free 또는 Paid | Free -> Paid 불가 |
| 선언 | 광고 포함 여부, 앱 내 구매 여부 | O |
3. 데이터 안전 섹션
개요
Google Play 데이터 안전 섹션은 앱이 수집/공유하는 데이터를 사용자에게 투명하게 공개하는 필수 항목.
데이터 유 형
| 카테고리 | 하위 항목 | SaaS 앱 해당 |
|---|---|---|
| 위치 | 대략적/정확한 위치 | 기능에 따라 |
| 개인 정보 | 이름, 이메일, 주소, 전화번호 | O |
| 금융 정보 | 결제 수단, 구매 이력 | O |
| 기기/기타 ID | 기기 ID, 광고 ID | O |
| 앱 활동 | 앱 인터랙션, 검색 기록 | O |
| 앱 성능 | 크래시 로그, 진단 | O |
| 메시지 | 이메일, 문자 내용 | 기능에 따라 |
작성 시 필수 확인 사항
| # | 질문 | 체크 |
|---|---|---|
| 1 | 앱이 사용자 데이터를 수집하는가? | |
| 2 | 수집한 데이터를 제3자에게 공유하는가? | |
| 3 | 데이터를 전송 중 암호화하는가? (HTTPS) | |
| 4 | 사용자가 데이터 삭제를 요청할 수 있는가? | |
| 5 | 제3자 SDK (Firebase, Sentry 등)의 데이터 수집을 포함했는가? |
Firebase SDK 데이터 수집 (일반적 포함 항목)
| Firebase 서비스 | 수집 데이터 | 카테고리 |
|---|---|---|
| Analytics | 앱 이벤트, 기기 정보 | 앱 활동, 기기 ID |
| Crashlytics | 크래시 로그, 기기 정보 | 앱 성능 |
| Cloud Messaging | FCM 토큰, 인스턴스 ID | 기기 ID |
| Performance | 네트워크 요청, 앱 시작 시간 | 앱 성능 |
데이터 삭제 요청 메커니즘
2024년부터 데이터 삭제 요청 수단 필수 제공.
앱 내 설정 > 계정 삭제
또는
웹: https://myapp.com/account/delete
// 계정 삭제 요청 구현 (Flutter)
Future<void> requestAccountDeletion(WidgetRef ref) async {
final confirmed = await showDialog<bool>(
context: context,
builder: (context) => AlertDialog(
title: const Text('계정 삭제'),
content: const Text(
'계정을 삭제하면 모든 데이터가 영구적으로 삭제됩니다.\n'
'이 작업은 되돌릴 수 없습니다.',
),
actions: [
TextButton(onPressed: () => Navigator.pop(context, false), child: const Text('취소')),
TextButton(
onPressed: () => Navigator.pop(context, true),
style: TextButton.styleFrom(foregroundColor: Colors.red),
child: const Text('삭제'),
),
],
),
);
if (confirmed == true) {
await ref.read(authRepositoryProvider).deleteAccount();
ref.read(authNotifierProvider.notifier).logout();
}
}