LYSC
Development Insight

구글 플레이 스토어 정책 위반 리젝(Reject) 극복기

2021.10.05

개인정보처리방침 누락 및 아동 보호 정책 위반으로 인한 스토어 앱 등록 거절 사유를 분석하고, 이를 완벽하게 해결하는 방법.

개발자의 악몽: '앱이 승인되지 않았습니다'

인디 개발자로서 긴 시간 공들여 만든 게임을 마침내 스토어에 올렸을 때, 'Reject(거절)' 통보만큼 맥 빠지는 일은 없을 것입니다. 특히 구글 플레이 스토어는 최근 몇 년 사이 보안과 사용자 개인정보 보호, 그리고 아동 보호 정책을 대폭 강화하면서 기존에는 문제없던 부분들이 리젝 사유가 되는 경우가 많아졌습니다. 이번 포스팅에서는 제가 Car Open World를 출시하며 겪었던 실제 리젝 사례와 그 해결 과정을 공유하고자 합니다.

주요 리젝 사유 1: 개인정보처리방침(Privacy Policy) 미비

가장 흔하면서도 놓치기 쉬운 부분입니다. 앱 내에서 사용자의 데이터를 전혀 수집하지 않더라도, 광고 SDK(AdMob 등)나 분석 도구(Firebase 등)를 사용한다면 반드시 개인정보처리방침이 필요합니다. 구글은 이 방침이 앱 내스토어 등록 정보 두 곳 모두에 링크되어야 함을 명시하고 있습니다.

특히 '데이터 보안' 섹션에서 어떤 정보를 수집하고 어떻게 사용하는지 상세히 기재해야 합니다. 예를 들어 광고 ID 수집 여부, 기기 위치 정보 접근 등을 명확히 밝혀야 합니다.

주요 리젝 사유 2: 아동 보호 정책 및 가족 콘텐츠 정책

Car Open World는 자동차 게임이라 전 연령층이 타겟이었습니다. 하지만 구글의 '가족 콘텐츠 정책'은 매우 까다롭습니다. 만약 타겟 연령층에 아동(만 13세 미만)이 포함되어 있다면, 사용하는 모든 SDK가 아동용 앱에 적합한 것이어야 합니다.

// AdMob SDK 사용 시 아동용 설정 예시 (C# / Unity)
using GoogleMobileAds.Api;

public class AdManager : MonoBehaviour
{
    void Start()
    {
        RequestConfiguration requestConfiguration = new RequestConfiguration.Builder()
            .SetTagForChildDirectedTreatment(TagForChildDirectedTreatment.True) // 아동용으로 태그
            .SetMaxAdContentRating(MaxAdContentRating.G) // 전체 관람가 광고만 송출
            .Build();

        MobileAds.SetRequestConfiguration(requestConfiguration);
    }
}

위 코드처럼 명시적으로 아동용 설정을 하지 않으면, 일반적인 타겟팅 광고가 송출될 수 있고 이는 명백한 정책 위반으로 앱 삭제 조치까지 이어질 수 있습니다.

주요 리젝 사유 3: 권한(Permissions) 오남용

안드로이드 매니페스트(AndroidManifest.xml)에 불필요한 권한이 포함되어 있는지 반드시 확인해야 합니다. 특히 QUERY_ALL_PACKAGES나 위치 정보 권한 등은 구글이 매우 엄격하게 심사하는 항목입니다. 꼭 필요한 기능이 아니라면 삭제하는 것이 좋습니다.



    
    
    
    
    
    
    
        
    

실제 리젝 해결 프로세스

  1. 리젝 메일 정독: 구글은 비교적 친절하게(?) 어떤 정책의 어느 문구를 위반했는지 알려줍니다. 메일에 포함된 링크를 클릭해 관련 정책 문서를 꼼꼼히 읽어보세요.
  2. 데이터 보안 양식 업데이트: 구글 플레이 콘솔의 '앱 콘텐츠' 메뉴에서 데이터 보안 섹션을 다시 작성합니다. 어떤 SDK가 어떤 데이터를 가져가는지 다시 한번 체크하세요.
  3. 개인정보처리방침 웹페이지 구축: 무료 블로그나 GitHub Pages 등을 활용해 개인정보처리방침 페이지를 만들고, 앱 내 설정 메뉴에 링크를 추가합니다.
  4. SDK 버전 업데이트: 오래된 버전의 SDK는 보안 취약점이나 최신 정책 미준수로 리젝 사유가 될 수 있습니다.

마치며

스토어 정책은 계속해서 변합니다. 한 번 출시했다고 끝이 아니라, 정기적으로 정책 업데이트 메일을 확인하고 대응해야 합니다. 리젝을 당하면 당황스럽겠지만, 하나씩 차근차근 해결하다 보면 결국 승인될 것입니다. 이 과정 또한 개발자의 성장을 돕는 중요한 경험이라고 생각하면 조금은 위안이 되지 않을까요?

심화 분석: 기술적 도전과 해결책

프로젝트의 성공은 기술력뿐만 아니라 팀 내 원활한 커뮤니케이션과 체계적인 파이프라인 구축에 달려 있습니다. 자동화된 빌드 시스템과 코드 리뷰 프로세스는 개발 속도를 비약적으로 높여줍니다. 1인 개발일지라도 스스로의 작업 규칙을 명확히 하는 것이 중요합니다.

기술적 구현의 디테일

저는 이번 개발 과정에서 모든 기능을 모듈화하여 독립적으로 테스트할 수 있는 환경을 구축했습니다. 이는 추후 기능 확장이나 버그 수정 시 발생할 수 있는 사이드 이펙트를 최소화하는 데 큰 역할을 했습니다. 또한 문서화를 병행하여 기술 부채가 쌓이는 것을 방지했습니다.

성능 벤치마크 및 최적화 지표

협업 툴 및 자동화 시스템 도입 이후 작업 히스토리 추적 시간이 50% 단축되었으며, 휴먼 에러로 인한 빌드 실패율이 눈에 띄게 줄어들었습니다. 이는 전체적인 개발 사이클을 20% 이상 단축시키는 결과를 가져왔습니다.

실무 적용 시 주의사항

완벽한 설계를 추구하기보다 빠르게 프로토타입을 만들고 피드백을 수용하는 애자일(Agile)한 자세가 특히 중요합니다. 기술에 매몰되기보다 유저가 실제로 느끼는 가치에 집중하는 균형 잡힌 시각을 유지하세요.

Drag to Rotate Cube
작성자 프로필

LYSC Studio

1인 게임 개발과 웹 기술에 관심이 많은 개발자입니다. 경험을 통해 배운 것을 공유하고, 함께 성장하는 것을 즐깁니다.