개인정보와 권한
개인정보 처리방침 URL · App Store 의 앱 개인정보 응답 · Google Play 의 데이터 보안 양식 · 계정 삭제 · 권한 사용 사유 문구를 한 번에 맞추는 순서를 정리합니다.
목차
스토어는 앱이 어떤 개인정보를 모으고 어떻게 쓰는지를 스토어 소개 화면에 공개하게 합니다. 이 페이지는 개인정보 처리방침, 스토어별 선언 양식, 계정 삭제, 권한 사용 사유 문구를 한 번에 맞추는 순서를 안내합니다. 가장 중요한 원칙은 방침 · 선언 · 실제 앱 동작이 서로 같아야 한다는 것입니다. Google 은 선언과 앱 동작이 다른 것을 알게 되면 집행 조치를 할 수 있다고 안내합니다.
주의
이 가이드는 스토어 요건만 다룹니다. 개인정보 보호법을 비롯해 앱을 제공하는 지역의 법령상 의무는 따로 확인하세요. Apple 도 앱이 제공되는 모든 지역의 법적 요구사항을 따라야 하고 확실하지 않으면 법률 전문가에게 확인하라고 안내합니다.
준비물
- 데이터 목록 — 앱이 입력받거나 기기에서 읽는 정보(계정 · 위치 · 사진 · 연락처 · 기기 식별자 · 사용 기록 등), 그 정보를 어디로 보내는지(내 서버 · 분석 · 광고 · 오류 수집 · 결제 · 로그인), 얼마나 보관하는지. 서드파티 SDK 가 보내는 정보도 포함합니다.
- 공개 URL — 개인정보 처리방침을 올릴 웹 페이지 주소. 로그인 없이 열려야 합니다.
- 문의 연락처 — 방침에 적고, 스토어의 지원 URL · 이메일에도 씁니다.
- 계정 기능 — 앱에서 계정을 만들 수 있다면 계정 삭제 기능이 있어야 합니다.
스토어별 요건
| 항목 | App Store · Mac App Store | Google Play | Microsoft Store |
|---|---|---|---|
| 개인정보 처리방침 | 모든 앱에 필수입니다. App Store Connect 에 URL 을 넣고 앱 안에서도 쉽게 찾을 수 있어야 합니다 | 데이터 보안 양식을 채우는 데 필요합니다. 데이터를 전혀 수집하지 않아도 양식과 방침 링크가 필요합니다(내부 테스트 트랙만 쓰는 앱은 제외) | 개인정보에 접근 · 수집 · 전송하면 필수입니다. Win32 · Desktop Bridge 제품은 늘 방침이 있어야 한다고 정책(10.5.1)에 있습니다 |
| 데이터 선언 | 「앱이 수집하는 개인정보(App Privacy)」 질문에 응답하고 제품 페이지에 공개합니다 | 「앱 콘텐츠(App content)」의 「데이터 보안(Data safety)」 양식을 제출합니다 | 제출의 「속성(Properties)」에서 개인정보 접근 여부와 방침 URL 을 입력합니다 |
| 서드파티 코드 | 앱에 넣은 서드파티 코드의 개인정보 관행도 응답에 포함합니다 | SDK · 라이브러리가 수집 · 공유하는 데이터도 양식에 반영합니다 | 방침이 앱이 접근 · 수집 · 전송하는 개인정보를 설명해야 합니다 |
| 생성형 · 제3자 AI | 개인정보를 제3자 AI 를 포함한 제3자와 공유하는 곳을 분명히 밝히고, 공유하기 전에 명시적 허락을 받아야 합니다(심사 지침 5.1.2(i)) | 사용자 데이터 요건이 서드파티 AI 연동에도 적용된다고 2026-07-15 정책 공지가 밝혔습니다 | 실시간 생성형 AI 응답이 있으면 메타데이터에 사용 사실을 밝히고 제출할 때 파트너 센터에 표시하며 사용자 신고 수단을 제공해야 합니다(정책 11.16) |
| 계정 삭제 | 계정 생성을 지원하면 앱 안에서 삭제를 시작할 수 있어야 합니다 | 계정 생성을 지원하면 앱 안 삭제 경로와 웹 삭제 요청 링크가 모두 필요합니다 | 계정 삭제를 직접 요구하는 조항은 정책에서 확인하지 못했습니다. 다만 제3자에게 개인정보를 공개하려면 옵트인 동의와 철회 수단이 필요합니다(10.5.2) |
| 권한 사유 | Info.plist 의 사용 설명 문자열 필수 | 핵심 기능에 필요한 권한만, 필요한 순간에 요청 | 패키지에 선언한 capabilities 에 따라 방침이 요구될 수 있습니다 |
단계
-
데이터 목록을 만듭니다. 앱이 하는 일을 화면별로 따라가며 입력 · 읽기 · 전송 · 저장을 적습니다. Google 은 앱에서 기기 밖으로 전송하는 것을 「수집」으로 정의하고, 서드파티 SDK 가 보내는 것도 포함합니다.
pubspec.yaml의 의존성에서 네트워크로 데이터를 보내는 패키지를 찾아 그 패키지의 안내(개인정보 · 데이터 보안 문서)를 확인하세요. -
개인정보 처리방침을 쓰고 게시합니다. Apple 은 방침이 다음을 분명히 밝혀야 한다고 정합니다: 앱이 수집하는 데이터 · 수집 방법 · 모든 사용 목적, 서드파티(분석 · 광고 · SDK 포함)가 같은 수준으로 보호한다는 확인, 데이터 보관 · 삭제 정책과 사용자가 동의를 철회하거나 삭제를 요청하는 방법. Microsoft 는 접근 · 수집 · 전송하는 개인정보, 사용 · 저장 · 보호 방식, 공개하는 상대의 종류, 사용자가 가진 통제 방법을 요구합니다. 새 기능을 더할 때마다 방침을 최신으로 유지하세요.
-
스토어에 선언을 입력합니다.
- Apple — App Store Connect 에서 앱을 선택하고 사이드바의 「앱이 수집하는 개인정보(App Privacy)」 → 「시작하기(Get Started)」로 들어가 수집 여부를 고르고 데이터 유형마다 질문에 답한 뒤 「게시(Publish)」를 누릅니다. 같은 화면의 Privacy Policy 옆 「편집(Edit)」에서 방침 URL 을 넣습니다.
- Google — Play Console 의 「앱 콘텐츠(App content)」 페이지에서 개인정보처리방침 링크와 「데이터 보안(Data safety)」 양식을 채우고, 계정 삭제 질문에도 답합니다. 같은 페이지에서 광고 포함 여부 · 로그인 세부정보(Sign-in details, 한국어 도움말의 「앱 액세스 권한」) · 타깃 연령층 · 광고 ID 선언에도 답해야 합니다(제출 전 체크리스트 참고).
- Microsoft — 파트너 센터 제출의 「속성(Properties)」에서 앱이 개인정보에 접근 · 수집 · 전송하는지 표시하고 방침 URL 을 넣습니다. 필요한데 빠지면 인증에 실패할 수 있고, 패키지에 개인정보에 접근할 수 있는 capability 가 있으면 스토어가 이 질문을 자동으로 「예」로 바꾸고 방침 URL 을 요구합니다.
-
Apple 은 개인정보 매니페스트도 챙깁니다. 앱과 SDK 가 쓰는 「필수 사유 API(required reasons API)」에는 승인된 사유를 적어야 새 앱이나 업데이트를 App Store Connect 에 올릴 수 있습니다(2024-05-01 부터). Apple 문서는 iOS · iPadOS · tvOS · visionOS · watchOS 앱을 대상으로 적고 macOS 는 그 목록에 없습니다. 사유는
PrivacyInfo.xcprivacy파일에 적고, Xcode 에서는 File → New File 의 App Privacy File 로 만듭니다. Apple 이 개인정보 매니페스트를 요구하는 서드파티 SDK 목록에는 Flutter 와 흔히 쓰는 Flutter 플러그인(path_provider·url_launcher·share_plus등)도 들어 있으니, 플러그인을 더하거나 올릴 때 Apple 의 SDK 목록을 확인하세요. 목록의 이름이 현재 패키지 이름과 다를 수 있으니 플러그인이 쓰는 API 로도 확인하세요. -
권한 사용 사유 문구를 씁니다. 아래 「권한 문구 쓰는 법」을 보세요.
-
계정 삭제 경로를 만듭니다(계정 생성이 있는 앱). Apple 은 앱 안에서 계정 삭제를 시작할 수 있어야 하고, 계정을 잠시 비활성화하는 것만으로는 부족하다고 안내합니다. 삭제를 끝내려고 웹사이트로 보낸다면 그 삭제 페이지로 바로 가는 링크를 넣으세요. Google 은 앱 안 경로와 함께 웹에서 삭제를 요청할 수 있는 링크를 요구합니다. Sign in with Apple 을 쓰면 REST API 로 토큰을 폐기해야 하고, 한국에 있는 개발자는 새 Services ID 를 등록할 때 서버 간 알림 엔드포인트도 제공해야 합니다.
참고
제3자 · 소셜 로그인 서비스로 앱의 기본 계정을 만들거나 인증하는 앱은 조건을 갖춘 동등한 다른 로그인 수단(데이터 수집을 이름 · 이메일로 제한하고, 이메일 비공개를 지원하며, 동의 없이 광고 목적으로 앱 내 상호작용을 수집하지 않는 수단)도 함께 제공해야 합니다(App Store 심사 지침 4.8). 지침이 예로 드는 서비스는 Facebook · Google · X · LinkedIn · Amazon · WeChat 로그인입니다.
-
셋이 같은지 확인합니다. 방침 · 스토어 선언 · 실제 앱 동작을 나란히 놓고 다른 곳이 없는지 봅니다. SDK 를 더하거나 바꾼 뒤에는 이 확인을 다시 합니다.
권한 문구 쓰는 법
- iOS · macOS — 카메라 · 위치 · 사진 같은 보호된 데이터에 접근하는 API 를 쓰면 앱의
Info.plist에 해당 키(예:NSCameraUsageDescription)와 사용자에게 보이는 사용 설명 문자열이 있어야 하고, 사용자 데이터에 접근하는 앱은 모두 이 문자열을 포함해야 합니다. 앱이 그 데이터를 어떻게 쓰는지 분명하고 완전하게 설명하고, 예시를 들면 사용자가 이유를 이해하는 데 도움이 됩니다. Apple 은 문구를 짧고 완전한 한 문장으로 쓰고, 여러 언어를 지원하는 앱이면 사용 설명 문자열도 현지화하라고 안내합니다. iOS · iPadOS 에서 사용자를 추적하거나 광고 식별자(IDFA)에 접근하려면 App Tracking Transparency 로 허락을 받아야 하고NSUserTrackingUsageDescription문구가 필요합니다. 이 키 없이 ATT 를 쓰면 앱이 종료됩니다(macOS 에는 해당하지 않습니다). 또 iOS 는 연결된 플러그인 · SDK 가 참조하는 API 의 사유 문자열도 App Review 에 필요하니, 업로드 때 누락된 키 오류가 나면 그 키를 추가하세요. - Android — 스토어에 알린 핵심 기능에 필요한 권한만 요청하고, 사용자가 이유를 알 수 있게 필요한 순간에 맥락 안에서 요청합니다. 위험 권한은 런타임에 분명한 설명과 함께 요청하고, 거절해도 쓸 수 있는 대안을 두는 것이 좋습니다.
- 권한은
android/app/src/main/AndroidManifest.xml에 선언합니다(릴리스 빌드에서 인터넷을 쓰는 앱은android.permission.INTERNET도 필요합니다). - 사용자가 예상하기 어려운 방식으로 개인 · 민감 데이터를 수집한다면(예: 백그라운드 위치) 권한이나 동의를 요청하기 직전에 앱 안에서 데이터 접근 · 수집 · 사용 · 공유를 설명하는 공개 문구를 보여 주고 사용자의 명시적 행동으로 동의를 받아야 하며, 방침이나 이용약관에만 적어서는 안 됩니다.
- SMS · 통화 기록 같은 위험성이 높은 권한은 Play Console 의 권한 선언 양식과 Google Play 승인이 필요할 수 있고 처리에 최대 수주가 걸릴 수 있습니다.
- 광고 ID 를 쓰는 앱(SDK 가 쓰는 경우 포함)이 Android 13(API 수준 33) 이상을 타깃하면
com.google.android.gms.permission.AD_ID권한도 선언해야 하며, Google Mobile Ads SDK 처럼 라이브러리 매니페스트가 이미 병합해 주는 경우도 있습니다. - Google 은 2027-01-27 부터 연락처 권한 정책을 새로 두어 광범위한 접근이 필요 없는 앱은 Android Contact Picker 를 쓰게 하고, 위치 권한 정책에서는 정밀 위치의 권장 최소 범위를 위치 버튼으로 개정한다고 예고했습니다.
- 권한은
- Windows — MSIX 패키지에 앱이 쓰는 capabilities 를 선언합니다. Flutter 의
msix패키지는msix_config의capabilities로 정하고, 제한된 기능인runFullTrust는 항상 매니페스트에 넣습니다(3.18.0 기준). 제한된 기능은 제출할 때 사유를 입력해야 승인되고 심사 시간이 늘 수 있습니다.
| 쓰지 말 것 | 이렇게 쓰세요 |
|---|---|
| 카메라 접근이 필요합니다. | 프로필 사진을 바로 찍어 등록하려고 카메라를 사용합니다. |
| 위치 권한이 필요합니다. | 지금 계신 곳에서 가까운 매장을 보여 주려고 위치를 사용합니다. 위치는 서버에 저장하지 않습니다. |
| 앱 사용을 위해 모든 권한을 허용해 주세요. | 권한마다 따로, 그 기능을 처음 쓰는 순간에 이유와 함께 요청합니다. |
확인
- 방침 URL 이 로그인 없이 열리고, 앱 안에서도 방침 링크를 찾을 수 있습니다.
- Apple 은 「앱이 수집하는 개인정보」 응답을 게시했고, Google 은 데이터 보안 양식을 제출했으며, Microsoft 는 속성에 방침 URL 을 넣었습니다.
- 앱이 쓰는 권한마다 사유 문구가 있고, 쓰지 않는 권한은 선언에서 뺐습니다(iOS 는 플러그인 · SDK 가 참조하는 API 의 사유 문자열이 남아 있어야 할 수 있습니다).
- 계정을 만들 수 있는 앱이면 앱 안에서 계정 삭제를 시작할 수 있습니다.
자주 겪는 문제
데이터를 전혀 수집하지 않는데도 양식이 필요한가요?
네. Google 은 데이터를 수집하지 않는 앱도 데이터 보안 양식과 개인정보처리방침 링크를 제출해야 한다고 안내합니다. Apple 은 「아니요, 이 앱에서 데이터를 수집하지 않습니다(No, we do not collect data from this app)」를 선택하면 더 답하지 않아도 되지만, 개인정보 처리방침 URL 은 모든 앱에 필수입니다.
서드파티 SDK 가 수집하는 것도 선언해야 하나요?
네. Apple 은 앱에 넣은 서드파티 파트너 코드의 개인정보 관행까지 응답에 포함하라고 안내하고, Google 은 SDK 가 수집 · 공유하는 데이터를 양식에 반영하라고 안내합니다.
심사에서 개인정보 때문에 거절됐습니다
Apple 이 자주 드는 사유는 방침이 수집 데이터 · 서드파티 보호 · 보관과 삭제 방법을 밝히지 않은 경우, 그리고 사용 설명 문자열이 불분명한 경우입니다. 방침을 위 항목과 하나씩 대조하고 문자열을 구체적으로 고치세요.
Windows 앱인데 개인정보 처리방침이 꼭 필요한가요?
Microsoft 정책 10.5.1 은 Win32 · Desktop Bridge 제품은 개인정보에 접근하는 것으로 보고 항상 방침을 요구한다고 정합니다. Flutter 의 Windows 앱은 Win32 창을 쓰는 데스크톱 앱이므로, 방침 URL 을 준비해 두는 편이 안전합니다.
다음 단계
개인정보 준비까지 끝났으면 제출 직전에 한 번에 점검합니다. 제출 전 체크리스트로 이어서 진행하세요.
출처
- developer.apple.com/app-store/review/guidelines
- developer.apple.com/distribute/app-review
- developer.apple.com/help/app-store-connect/manage-app-information/manage-app-privacy
- developer.apple.com/help/app-review/guideline-reference/5-1-1-account-deletion
- developer.apple.com/documentation/bundleresources/privacy-manifest-files
- developer.apple.com/news/upcoming-requirements
- support.google.com/googleplay/android-developer/answer/10787469
- support.google.com/googleplay/android-developer/answer/13327111
- support.google.com/googleplay/android-developer/answer/16558241
- support.google.com/googleplay/android-developer/answer/10144311
- support.google.com/googleplay/android-developer/answer/9214102
- support.google.com/googleplay/android-developer/answer/6048248
- support.google.com/googleplay/android-developer/answer/17134731
- support.google.com/googleplay/android-developer/answer/9859455
- learn.microsoft.com/en-us/windows/apps/publish/store-policies
- learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/enter-app-properties
- docs.flutter.dev/deployment/android
- pub.dev/packages/msix
- developer.apple.com/documentation/bundleresources/describing-use-of-required-reason-api
- developer.apple.com/documentation/uikit/requesting-access-to-protected-resources
- developer.apple.com/documentation/bundleresources/information-property-list/nsusertrackingusagedescription
- developer.apple.com/support/third-party-SDK-requirements
- developers.google.com/android-publisher/app-store-review/policy-declarations
- learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/support-info