스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
명확한 목적 문자열 쓰기
앱에서 카메라, 위치, 건강 데이터와 같은 보호되는 리소스에 접근해야 하는 이유를 사용자가 이해하는 데 도움이 되는 명확하고 간결한 목적 문자열을 작성하는 방법을 알아보십시오. 간결한 목적 문자열을 작성하는 데 도움이 되는 모범 사례를 소개하고 권한 요청의 문구를 개선할 수 있는 방법을 보여드립니다.
리소스
- Data Collection and Storage - App Store Review Guidelines
- Explore the Human Interface Guidelines for privacy
- Requesting access to protected resources
관련 비디오
Tech Talks
-
다운로드
App Store 개발자님, 안녕하세요 저는 App Store 심사 팀의 Greg입니다 오늘은 명확하고 간결한 목적 문자열을 작성하는 데 도움이 되는 저희 팀의 팁을 공유해 드리려 합니다
Apple은 개인정보 보호가 모두가 누려야 할 기본적인 인권이라고 믿습니다 따라서 Apple 제품은 개인정보를 보호하고 사용자가 자신의 정보를 직접 관리하도록 설계되었습니다 개인정보 보호 기능을 갖춘 제품을 설계하는 것 외에도 개인정보 보호는 App Store 심사 지침의 핵심입니다 특히 지침 5.1.1에는 Apple 생태계에서 사용자의 개인정보를 보호하는 데 필수적인 몇 가지 요구 사항이 자세히 나와 있습니다 예를 들면 수집하는 데이터를 딱 필요한 만큼으로 최소화하는 것이 있죠 오늘은 신규 개발자와 숙련된 개발자 모두가 어려움을 겪는 한 가지 요구 사항에 초점을 맞추려 합니다 바로, 보호되는 리소스에 대한 접근 권한을 명확하고 투명하게 요청하는 것입니다 일반적인 5.1.1 거부 사유인 불충분한 목적 문자열을 방지하는 데 도움이 되는 팁과 예시를 알려 드리겠습니다 먼저, 권한 요청과 사용자 개인정보 보호에 있어 저희가 맡은 역할에 대한 배경 정보를 알려 드리겠습니다 그런 다음 앱에 접근 권한이 필요한 이유를 설명하는 짧은 설명인 목적 문자열을 중점적으로 살펴보고 App Store 심사 팀에서 심사 시 살펴보는 몇 가지 사항에 대해 이야기하겠습니다 그런 후에 심사를 통과하지 못하는 목적 문자열의 예시를 소개하고, 목적 문자열을 명확하고 구체적으로 다시 작성하는 방법을 알려 드리며 마무리하겠습니다 먼저, 권한 요청에 대해 이야기해 보겠습니다 기기는 우리 삶에서 중요한 부분을 차지합니다 사용자가 기기에서 무엇을 공유할지는 본인이 직접 선택할 수 있어야 합니다 그래서 모든 Apple 운영 체제는 보호되는 데이터와 리소스에 대한 접근을 기본적으로 제한합니다
이 정보에 접근하려면 앱에서 먼저 사용자의 권한을 요청해야 합니다 따라서 사용자가 직접 어떤 앱이 어떤 항목에 접근할지 결정할 수 있습니다 하지만 정보에 기반한 결정을 내리려면 앱에 접근 권한이 필요한 이유와 앱이 그 권한으로 무엇을 할지를 더 자세히 알아야 합니다 이때 '사용 설명'이라고도 하는 목적 문자열이 필요합니다 목적 문자열은 개발자가 제공하는 짧은 메시지로 권한 요청 시 매번 표시됩니다 이 문자열은 앱에 접근 권한이 필요한 이유와 사용자의 데이터로 무엇을 할지를 설명합니다 개발자는 앱의 정보 속성 목록에서 문자열 값을 리소스별 키에 설정하여 이러한 메시지를 정의합니다 이는 Apple 운영 체제에서 개발자와 앱 사용자 간에 이루어지는 중요한 상호 작용입니다 앱이 무엇을 하려는지를 명확하고 구체적으로 보여줘서 신뢰를 쌓을 기회이기도 합니다 이 문자열이 아주 중요한 이유는 무엇일까요? 앱의 권한 요청을 여러분이 아마 경험해 보셨을 실생활 속의 상황과 비교해 보겠습니다 동네 카페에서 커피를 한 잔 사러 간다고 상상해 보세요 커피를 손에 든 채로 계산할 준비가 되었는데 직원이 전화번호를 묻습니다 흠, 전에는 물어 본 적이 없는데 말이죠 왜 전화번호가 필요한 걸까요? 두 가지 경우가 있을 것입니다 직원이 "고객님의 전화번호를 사용해서 더 좋은 커피를 마시는 경험을 제공합니다"라고 말할 수 있습니다 괜찮게 들리긴 하는데 그다지 구체적이지는 않죠 그리고 무슨 의미인지 명확하지도 않습니다 다른 한편으로는 고객의 전화번호를 사용하여 구매 내역을 추적하고 구매한 커피 다섯 잔마다 한 잔을 무료로 준다고 말할 수도 있습니다 두 경우 모두 다음에 무슨 일이 일어날지는 여러분에게 달려 있습니다 다만 두 번째 예시에만 정보에 기반한 결정을 내리는 데 필요한 정보가 있죠 이러한 긍정적인 사용자 경험이 바로 App Store 심사 팀이 목적 문자열을 심사할 때 살펴보는 것입니다 저희는 목적 문자열이 사용자가 정보에 기반한 결정을 내리는 데 필요한 정보를 주는지 확인합니다 앱을 심사할 때는 어떨까요? 저희는 신규 사용자처럼 앱을 사용해 봅니다 즉, 보호되는 리소스에 접근하는 기능을 사용하려 하면 사용자와 마찬가지로 저희도 권한 요청 알림을 받습니다 이러한 방식으로 모든 경험을 이해하고 사람들이 정보에 기반한 결정을 내리기 위해 알아야 하는 사항을 예측할 수 있습니다 따라서 심사할 때는 목적 문자열에서 두 가지 핵심 특성을 살펴봅니다 이들 특성은 앱에서 데이터를 사용하는 방식을 구체적으로 설명하고 데이터가 사용되는 예시를 제공해야 합니다
이 두 가지 특성이 있는 목적 문자열이 어떤 모습이며 목적 문자열에 이러한 특성이 없다면 사용자가 어떻게 받아들일지를 보여 주는 예시를 살펴보겠습니다 먼저, 경치가 좋은 경로를 추천하는 데 특화되어 있는 내비게이션 앱이 있습니다 사용자가 내비게이션 기능에 접근하려 하면 다음과 같이 표시됩니다 "위치를 사용합니다" 별 게 없죠? 앱을 개발할 때는 리소스를 무엇에 사용할지 정확히 알아야 합니다 하지만 사용자는 앱의 작동 방식을 개발자만큼 이해하고 있지 않습니다 사용자는 개발자가 목적 문자열에 제공한 정보에 기반하여 결정을 내리는데 이 경우에는 필요한 정보가 없습니다 신뢰를 구축하려면 개발자가 데이터를 사용할 계획을 구체적으로 설명하고 예시를 제공해야 합니다 다음이 더 낫겠죠 "고객님의 위치는 목적지로 가는 추천 경로를 결정하고 턴 바이 턴 길 안내를 제공하는 데 사용됩니다" 이제 목적 문자열이 구체적이며, 앱이 사용자의 위치 데이터를 사용하여 무엇을 할 수 있는지에 대한 명확한 예시를 제공합니다 앱이 전 세계 잠재 고객을 위한 현지화를 지원한다면 현지화된 목적 문자열도 제공해야 한다는 것을 기억해 두세요 다양한 현지화로 설정된 앱을 테스트하여 사용자에게 올바르게 현지화된 앱 콘텐츠가 보이는지 확인하는 것이 좋습니다 또 다른 예를 살펴보겠습니다 이것은 소셜 네트워크 앱입니다 개발자는 맞춤형 광고를 제공하기 위해 앱에서 수집된 데이터를 타사와 공유합니다 하지만 추적에 사용되는 데이터를 수집하기 전에 앱 추적 투명성을 사용하여 권한을 요청해야 합니다 처음 앱을 열면 앱 추적 투명성 권한 요청이 표시됩니다 현재는 이렇게 표시되네요 "더 나은 경험을 제공하기 위해 고객님의 데이터가 사용됩니다" 맞는 얘기일 수 있지만 사용자가 알아야 할 내용을 말하고 있지는 않습니다 구체적으로 사용자의 데이터가 어떻게 사용되나요? 권한을 부여했을 때 사용자가 얻을 수 있는 더 나은 경험의 예는 무엇인가요? 더 나은 방법은 다음과 같습니다 "고객님의 데이터는 고객님과 더 관련성이 높은 제품에 대한 맞춤형 광고를 제공하는 데 사용됩니다" 이제 개발자가 사용자의 정보로 무엇을 하고 사용자가 접근 권한을 부여함으로써 무엇을 얻는지를 명확히 알 수 있습니다 개발자는 사용자가 추적을 거부하면 어떤 일이 생길지에 대한 더 자세한 내용을 제공할 수도 있습니다 "고객님의 데이터는 맞춤형 광고를 제공하는 데 사용됩니다 추적을 거부하셔도 광고는 계속 표시되지만 고객님과의 관련성이 떨어질 수 있습니다" 이러한 예시 모두 이 앱에 잘 맞을 것입니다 목표는 권한을 요청할 때 투명하고 명확하게 하는 것입니다 기억해 두어야 할 또 다른 사항은 App Store에 있는 많은 앱에서 타사 SDK와 라이브러리를 통합한다는 것이죠 이러한 SDK와 라이브러리는 계정 인증과 같은 아주 다양한 기능과 서비스를 제공할 수 있습니다 여러분이 잘 모를 수 있는 사실은 이러한 SDK와 라이브러리가 위치 데이터와 같은 보호되는 리소스에 접근하려는 API를 참조할 수도 있다는 것입니다 앱에서 이러한 리소스에 접근해야 할 이유가 있다면 정보 속성 목록에서 앱의 특정 사용 사례에 적용되는 목적 문자열을 정의하세요 접근할 이유가 없다면 앱의 바이너리에서 이러한 API에 대한 참조를 제거해야 합니다 타사의 SDK, 라이브러리 또는 기타 코드를 비롯한 앱의 모든 항목에 대한 책임은 개발자에게 있음을 기억하세요 앱을 개발할 때는 앱에서 접근하려 할 수 있는 보호되는 리소스를 모두 숙지해야 하며 심사를 위해 앱을 제출하기 전에 이러한 접근 요청이 의도적임을 확인해야 합니다
지금까지 소개해 드린 예시는 정보가 너무 적은 목적 문자열에 초점이 맞춰져 있었는데요 반대의 경우는 어떨까요? 정보가 지나치게 많은 경우도 있을까요? 그런 경우에는 어떨지 살펴보겠습니다 이것은 정원을 가꾸는 사람들을 위한 앱입니다 여기에서 친구의 정원 사진을 볼 수 있죠 하지만 처음으로 사진을 찍으려고 하면 개발자가 요청에 긴 설명을 기재한 것을 볼 수 있습니다 이 설명을 한 호흡에 다 읽을 수 있는지 해 보죠 원예에 재능이 있다는 걸 막 발견했거나 베테랑 식물 전문가라면 이 앱을 사용하여 정원 가꾸기에 대한 열정을 공유하세요! 카메라에 대한 접근 권한이 있으면 좋아하는 다육 식물과 함께 포즈를 취한 프로필 사진과 오후의 햇살을 듬뿍 받는 돋움 화단 사진 등 다양한 사진을 찍을 수 있습니다!" 좀 지나친 것 같죠? 보통 한두 개의 문장이면 사람들에게 필요한 사항을 알리는 데 충분합니다 이 정원 앱에는 다음이 더 낫겠죠 "이 앱은 정원사 프로필을 업데이트 및 공유하기 위해 카메라를 사용하여 사진을 캡처합니다" 이제 목적 문자열이 구체적이며 앱의 다양한 카메라 사용에 대한 예시를 포함하고 있습니다 너무 길지도 짧지도 않게 목적 문자열은 딱 적당한 길이어야 합니다 더 길고 장황한 목적 문자열은 정확하고 심사를 통과할 수도 있겠지만 이상적인 사용자 경험은 아닙니다 앱에서 설명을 봤을 때 읽고 이해하기 쉽도록 설명을 복잡하지 않고 간단명료하게 유지하세요 지금까지의 내용을 종합해서 가상 앱 중 하나를 사용하여 간단한 권한 요청 여정을 떠나보겠습니다 앱이 민감한 데이터에 접근해야 하는 이유를 사용자에게 정확하고 간결하게 설명하면 사용자가 정보에 기반한 결정을 내릴 수 있고 접근 권한을 부여하여 앱이 개발자가 의도한 그대로 사용자에게 맞게 기능할 가능성이 높아집니다 이렇게 하면 개발자가 앱의 고유한 경험을 설명하는 동시에 사용자가 개인정보를 직접 관리하도록 할 수 있습니다 개발자가 작성하는 내용에 기반하여 사용자가 권한 부여 결정을 내린다는 사실을 이해하면 목적 문자열에 적절한 내용을 추가하여 문자열을 관련성 있고 투명하며 유익하게 만드는 데 도움이 됩니다
향후 App Store에 제출할 때를 위해 이러한 예시를 기억해 두세요 사용자가 정보를 제공받고 앱이 제공하는 모든 것을 누릴 수 있도록 하는 데 도움이 되길 바랍니다 시청해 주셔서 감사합니다 권한 요청 및 개인정보 보호를 염두에 둔 개발을 위한 자세한 내용은 Apple Developer 웹 사이트와 Human Interface Guidelines에 나와 있는 유용한 지침과 문서를 참조하세요 개발자님이 향후에 App Store에 제출하실 앱을 심사하길 기대합니다
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.