개인 정보 보호 권장사항

Android는 사용자가 최신 혁신 기술을 활용할 수 있도록 돕는 동시에 보안과 개인 정보 보호를 최우선으로 합니다.

이 페이지에서 설명하는 권장사항 중 일부는 요약본에도 나와 있습니다.

권한에 주의하기

투명성을 유지하고 사용자가 앱 사용 환경을 직접 관리하도록 지원하여 사용자와 신뢰 관계를 구축하세요.

  • 기능에 필요한 최소 권한을 요청합니다. 앱에 중요한 변경사항을 적용할 때마다 요청된 권한을 검토하여 앱의 기능에 여전히 권한이 필요한지 확인합니다.

    • 최신 버전의 Android에서는 권한을 요구하지 않고도 개인 정보를 안전하게 보호하는 방식으로 데이터에 액세스하는 방법을 도입하는 경우가 많습니다. 자세한 내용은 앱에서 권한을 선언해야 하는지 평가하기를 참고하세요.
    • 앱이 Google Play에 배포된 경우 Android vitals는 앱에서 권한을 거부하는 사용자의 비율을 알려줍니다. 이 데이터를 사용하여 필수 권한이 가장 많이 거부된 기능의 설계를 다시 평가합니다.
  • 권장되는 흐름에 따라 앱의 기능에 권한이 필요한 이유를 설명합니다. 앱이 시작할 때보다는 권한이 필요할 때 이를 요청하여 사용자가 권한이 필요한 이유를 명확히 알 수 있도록 합니다.

  • 사용자나 시스템은 권한을 여러 번 거부할 수 있습니다. Android는 사용자의 선택을 존중하기 위해 동일한 앱의 권한 요청을 무시합니다.

  • 사용자가 권한을 거부하거나 취소하는 경우 단계적으로 성능을 저하합니다. 예를 들어 사용자가 마이크 사용 권한을 부여하지 않으면 앱의 음성 입력 기능을 사용 중지할 수 있습니다.

  • 앱을 업데이트할 때 앱에 더 이상 필요하지 않은 런타임 권한에 대한 앱의 액세스를 삭제합니다.

  • 위험 권한으로 보호되는 데이터에 액세스하는 SDK 또는 라이브러리를 사용하고 있다면 사용자는 앱에 문제가 있는 것으로 생각합니다. 따라서 SDK에 필요한 권한과 그 이유를 확실하게 이해해야 합니다.

    • Android 11(API 수준 30)에서 앱을 테스트하는 경우 데이터 액세스 분석을 사용하여 코드 및 서드 파티 라이브러리 코드에서 비공개 데이터에 액세스하는 위치를 찾습니다.

위치 사용 최소화하기

어떠한 위치 데이터도 요청하지 않고 사용 사례를 지원할 수 있다면 위치 정보 액세스 권한을 요청하지 말아야 합니다. 앱에서 위치 액세스 권한을 요청하는 경우 사용자가 충분한 정보를 바탕으로 결정을 내릴 수 있게 도와야 합니다.

  • 앱에서 위치 정보를 수집해야 하는 경우 사용자에게 특정 혜택을 제공하기 위해 앱이 이 정보를 어떻게 사용하는지 설명해야 합니다.
  • 앱에서 블루투스 또는 Wi-Fi를 통해 사용자 기기를 근처 기기와 페어링해야 한다면 위치 정보 액세스 권한이 필요 없는 컴패니언 기기 관리도구를 사용합니다.
  • 앱에 필요한 위치 세부사항의 수준을 검토합니다. 대부분의 위치 관련 사용 사례는 대략적인 위치 정보에 액세스하는 것으로 충분히 실행할 수 있습니다.
  • 앱이 사용자에게 표시되는 동안 위치 데이터에 액세스합니다. 이렇게 하면 사용자가 앱에서 위치 정보를 요청하는 이유를 더 정확하게 이해할 수 있습니다.
  • 지오펜싱을 구현할 때와 같이 앱에 백그라운드 위치 액세스가 필요하면 앱의 핵심 기능에 반드시 필요한지 확인하고 사용자에게 명확한 방식으로 실행되도록 해야 합니다. 백그라운드 위치 액세스 사용 고려사항에 관해 자세히 알아보세요.
  • Android 10(API 수준 29) 이상에서는 앱 사용 중에 사용자가 앱의 위치 액세스를 제한할 수 있습니다. 앱에서 항상 위치 정보에 액세스할 수 있는 것이 아니라면 단계적으로 성능이 저하되도록 앱을 설계합니다.
  • 사용자가 앱 UI에서 다른 앱으로 이동한 후에도 사용자가 시작한 진행 중인 작업을 위해 앱이 위치 정보에 계속 액세스해야 한다면, 앱이 백그라운드로 전환되기 전에 포그라운드 서비스를 시작합니다. 이 작업은 onPause()와 같은 Android의 수명 주기 콜백에서 실행할 수 있습니다.
  • 백그라운드에서 포그라운드 서비스를 시작하면 안 됩니다. 대신, 알림에서 앱을 실행한 다음 앱의 UI가 표시될 때 위치 코드를 실행하는 것을 고려해보세요.

데이터를 안전하게 처리하기

참고: Google Play 개발자 정책 센터의 사용자 데이터 관련 도움말 페이지에서 민감한 정보로 간주되는 데이터에 관해 자세히 알아볼 수 있습니다.

민감한 정보를 처리하는 방식은 투명하고 안전해야 합니다.

Jetpack에서는 앱 데이터를 더 안전하게 보호하기 위해 여러 라이브러리를 제공합니다. 가이드에서 Jetpack 보안 라이브러리Jetpack 환경설정 라이브러리의 사용 방법에 관해 자세히 알아보세요.

재설정할 수 있는 식별자 사용하기

사용자의 개인 정보를 존중하고, 재설정 가능한 식별자를 사용합니다. 자세한 내용은 고유 식별자 권장사항을 참고하세요.