안드로이드 권한

토마스·2023년 5월 8일
1

안드로이드 권한이란?

앱 권한은 다음 항목에 대한 액세스를 보호하여 사용자 개인 정보 보호를 지원한다.

  • 제한된 데이터(예: 시스템 상태 및 사용자의 연락처 정보)
  • 제한된 작업(예: 페어링된 기기에 연결 및 오디오 녹음)

Android 앱 권한의 전체 목록을 보려면 권한 API 참조 페이지를 참고하자.

권한 사용 워크플로

앱에서 제한된 데이터나 제한된 작업에 액세스해야 할 수 있는 기능을 제공한다면 권한을 선언하지 않고도 정보를 가져오거나 작업을 실행할 수 있는지 알아보는 것이 좋다. 개발자는 권한을 선언하지 않고도 사진 찍기, 미디어 재생 일시중지, 관련 광고 표시 등 앱에서 여러 사용 사례를 처리할 수 있다.

앱에서 사용 사례를 처리하기 위해 제한된 데이터에 액세스하거나 제한된 작업을 실행해야 한다고 생각한다면 적절한 권한을 선언해야 한다. 설치 시간 권한이라고 하는 일부 권한은 앱이 설치될 때 자동으로 부여된다. 런타임 권한이라고 하는 다른 권한은 앱에서 추가 단계를 거쳐 런타임에 권한을 요청해야 한다.

아래 그림은 앱 권한을 사용하는 워크플로를 보여준다.
앱 권한을 사용하는 워크플로

권한 유형

  • 설치 시간 권한
    • 일반 권한
    • 서명 권한
  • 런타임 권한
  • 특별 권한
  • 권한 그룹

각 권한 유형에 대한 자세한 내용을 보고 싶다면 여기를 참고하자.

권장 사항

앱 권한은 시스템 보안 기능에 기반하며 앱 권한을 통해 Android에서는 사용자 개인 정보 보호와 관련된 다음 목표를 지원할 수 있습니다.

  • 제어: 사용자가 앱과 공유하는 데이터를 직접 제어한다.
  • 투명성: 사용자가 앱이 사용하는 데이터와 앱이 이 데이터에 액세스하는 이유를 파악합니다.
  • 데이터 수집 최소화: 앱에서는 사용자가 호출하는 특정 작업에 필요한 데이터에만 액세스하여 이를 사용합니다.

최소 개수의 권한 요청

사용자가 앱에서 특정 작업을 요청할 때 앱은 작업을 완료하는 데 필요한 권한만 요청해야 한다. 권한을 사용하는 방법에 따라 민감한 정보에 액세스하지 않고도 앱의 사용 사례를 처리하는 다른 방법이 있을 수 있다.

런타임 권한을 특정 작업과 연결

최대한 앱의 사용 사례 흐름에서 늦게 권한을 요청해라. 예를 들어 앱에서 사용자가 영화를 예매하고 나서 상영 시간 30분 전에 알림을 받기를 허용하는 경우 사용자가 예매하기 버튼을 누를 때까지 기다린다. 사용자가 버튼을 누르고 나면 앱에서 알림 권한을 요청할 수 있다.

앱의 종속 항목 고려

라이브러리를 포함하면 권한 요구사항도 상속된다. 각 종속 항목에 필요한 권한과 이러한 권한의 사용 목적을 알고 있어야 한다.

투명성 확보

권한을 요청할 때는 사용자가 충분한 정보를 바탕으로 결정을 내릴 수 있도록 액세스하는 대상, 액세스하는 이유, 권한이 거부될 경우 영향을 받는 기능을 명확히 해야 한다.

시스템 액세스 명확하게 알리기

민감한 정보 또는 하드웨어(예: 카메라나 마이크)에 액세스할 때 아직 시스템에서 관련 표시기를 제공하지 않는 경우 앱에 지속적으로 알림을 표시해라. 알림을 통해 사용자는 언제 앱이 제한된 데이터에 액세스하거나 제한된 작업을 실행하는지 정확히 파악할 수 있다.

profile
안드로이드 개발자 지망생

0개의 댓글