본문 바로가기

공부/iOS

iOS - Protecting the User’s Privacy(유저 개인정보 보호)

안녕하세요. brody입니다.

다시 이론으로 돌아와서 이번 블로그에서는 Protecting the User’s Privacy에 대해서 공부해볼게요.

UIKit 토픽의 필수항목중 한개인데 이름만 봤을때는 생소하네요. 

개인정보 보호를 하는 방법이 뭐가 있을까 생각해 봤는데.... 잘 생각은 안나네요;;

너무 생각없이 개발을 했나ㅠ...

 

그럼 바로 문서를 볼게요!

 


Protecting the User’s Privacy(유저 개인정보 보호)

개인 데이터를 보호하고 데이터 사용 방법에 대한 user preferences를 준수합니다.

 

 

OverView

사용자 개인정보를 위한 설계는 중요합니다. 

 

대부분의 Apple device(아이폰,아이패드...)에는 사용자가 앱이나 external entities에 노출하지 않으려는 개인 데이터가 포함되어 있습니다.

 

앱이 부적절 하게 데이터에 액세스 하거나 사용하는 경우 사용자가 앱 사용을 중지하고 device에서 해당 앱을 삭제할 수 있습니다.

 

해당 법률에 따라 얻은 사용자의 사전 동의가 있어야 사용자 또는 device 데이터에 액세스 할 수 있습니다. 

 

또한 사용자 및 device 데이터를 보호하기 위하여 적절한 단계를 수행하고 사용법에 대해 투명하게 관리해야 합니다.

 

 

Request Access Only When Your App Needs the Data(앱에 대에터가 필요한 경우에만 액세스를 요청해야 합니다.)

앱이 위치, 연락처, 사진등 중요한 데이터를 필요로 할 때 사용자 또는 device데이터에 대한 액세스를 요청합니다.

 

앱의 Info.plist파일에서 시스템이 앱에 액세스 해야 하는 이유를 설명할 수 있는 문장(사용 설명 문자열이라고 함)을 제공해야 합니다.

 

사용자가 요쳥한 데이터에 대한 액세스 권한을 부여하지 않는 상황에는 적절한 예비동작을 제공해야 합니다.

(앱에서 액세스 권한이 없을때 Alert 띄우는 것을 말하고 있네요)

 

자세한 내용은 Requesting Access to Protected Resources. 를 참고하세요.

 

Be Transparent About How Data Will Be Used(데이터 사용 방법을 투명하게 공개해야 합니다.)

예를 들어, App Store에 앱을 제출할 때 App Store Connect 메타 데이터의 일부로 개인 정보 보호 정책 또는 문의 URL을 지정합니다.

 

또한 앱 설명에서 해당 정책 또는 설명을 요약할 수 있습니다.

 

 

Give the User Control Over Data and Protect Data You Collect(사용자가 데이터를 제어하고 수집한 데이터를 보호합니다.)

사용자의 환경 설정을 존중하고 앱에서 수집한 데이터를 보호하기 위해 합리적인 조취를 취해야 합니다.

  •  사용자가 중요한 정보에 대한 액세스를 비활성화 할 수 있는 설정을 제공해야 합니다.

    운영체제는 설정 앱개인정보 메뉴를 통해 위치, 연락처 및 상태데이터와 같은 보호된 시스템 리소스에 대하여 작업을 자동으로 수행합니다.

    이 동작을 이러한 소스에서 캐시하거나 직접 수집하는 데이터로 확장하십시오.

    예를 들어, 사용자가 개인정보가 포함 된 소셜 미디어 프로필을 작성하는 경우, 사용자에게 데이터를 삭제하는 방법을 제공해야 합니다. 

  • iOS에 파일을 저장할 때는 Encryping Your App's Files 에 설명 된대로 앱에 적합한 가장 강력한 데이터 보호 수준을 사용해야 합니다.

    NSAppTransportSecurity에 설명된 대로 네트워크를 통해 사용자 또는 device 데이터를 전송할 때 App Transport Security를 사용해야 합니다.

  • ASIdentifierManager 클래스를 사용하는 경우 isAdveretisingTrackingEnabled 속성 값을 존중해야 합니다.
    (위의 isAdvertisingTrackingEnabled속성은 deprecated되어 항상 NO를 반환한다고 합니다..하하...)

    사용자가 false로 설정한 경우, 주파수 제한, attribution, 변환 이벤트, 순 사용자 수 추정, 광고 부정 행위 탐지 및 디버깅과 같은 제한된 광고 목적으로만 ASIdentifierManager 클래스를 사용합니다.

    자세한 내용은 AdSupport 프레임워크를 참고하십시오.

  • 사용자를 지속적으로 식별해야 하는 경우 UIDevice 클래스의 identifierForVendor 속성 또는 ASIdentifierManager 클래스의 advisionIdentifier속성을 사용합니다.

 

Use the Minimum Amount of Data Required(필요한 최소 데이터양을 사용합니다.)

지정된 작업을 수행하는 데 필요한 사용자 또는 장치 데이터의 최소 양을 요청하고 사용해야 합니다.

 

불필요하거나 명백하지 않은 이유로 또는 나중에 유용하다고 생각하기 때문에 데이터에 액세스하거나 데이터를 수집하지 마십시오.

 

앱이 오디오 입력을 지원하는 경우 실제로 녹음을 시작하려는 시점에서만 오디션 세션을 구성해야 합니다.

 

지금 바로 녹음할 계획이 아니라면 오디오 세션을 구성하면 안됩니다.

 

시스템은 앱이 녹음을 위해 오디오 세션을 구성할 때 사용자에게 경고를 표시하고 사용자에게 앱 녹음을 비활성화 할 수 있는 옵션을 제공해야 합니다.

 


 

막상 문서를 보니 뭐 대단한 내용은 없고, 평상시에 앱을 사용할때 하는것들과 개발할때 기본적으로 했던것들이 포함되어 있네요.

 

근데 마지막 내용중의 "필요한 최소 데이터양을 사용합니다"를 보면서 궁금한 점이 생겼는데요.

 

어떤 알람앱들은 백그라운드에 앱을 계속 살고 있게 해야해서 무음mp3파일을 계속 백그라운드에서 돌린다고 하는데 

 

이런 경우는 앱을 리젝 먹을수도 있지 않을까 싶네요...

 

그럼 오늘은 여기까지!

 

ㅅㄱㄹ!