스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
개인정보 보호의 새로운 기능
Apple은 개인정보 보호를 기본적 인권으로 여깁니다. 여러분의 앱에 사용자의 신뢰를 더하며, 필수적인 개인정보 보호 패턴을 더 쉽게 구현하게 하는 Apple 플랫폼의 새 기술을 알아보세요. Apple 플랫폼의 향상된 개인정보 보호 기능과 함께, 프라이버시 연구가 visionOS의 입력 모델을 위한 소프트웨어 아키텍처 및 설계에 어떤 영향을 주었는지도 살펴보세요.
챕터
- 1:01 - Privacy pillars
- 3:03 - Photos picker
- 5:44 - Screen capture picker
- 7:46 - Calendar access
- 10:29 - Oblivious HTTP (OHTTP)
- 14:22 - Communication Safety
- 17:46 - App sandbox
- 21:57 - Advanced Data Protection
- 23:41 - Safari Private Browsing
- 26:40 - Safari app extensions
- 27:22 - Spatial input model
리소스
관련 비디오
WWDC23
- 공간 컴퓨팅에 맞게 윈도우형 앱 향상하기
- 네트워크 릴레이로 앱 트래픽 보호하기
- 앱에 사진 선택기 임베드하기
- 캘린더 및 EventKit 알아보기
- App Store Connect의 새로운 기능
- Safari 확장 프로그램의 새로운 기능
- ScreenCaptureKit의 새로운 기능
WWDC22
WWDC21
WWDC20
-
다운로드
♪ 감미로운 인스트루멘탈 힙합 ♪ ♪ 안녕하세요 프라이버시 엔지니어링 소속 마이클입니다 '개인정보 보호의 새 기능'에 오신 걸 환영합니다 Apple은 개인정보 보호를 기본적 인권으로 여기며 개인정보를 존중하고 보호하는 건 우리 공동의 책임입니다 그래서 새로운 기능을 고안할 때 Apple은 프라이버시를 핵심 요소로 인식하여 접근합니다 많은 제품과 서비스가 우리 삶의 중추가 되었고 여러분도 서로를 보호하는 데에 필수적인 협력자가 되었습니다 여러분의 앱에서 어떤 데이터가 어떤 목적으로 조회되는지 사람들이 알고 제어할 수 있는 뛰어난 개인정보 보호 기능을 제공하는 건 특히 민감한 사적 정보 면에서 앱에 대한 사용자의 신뢰도를 높일 수 있습니다 주요 프라이버시 원칙은 앱에 개인정보 보호 기능을 넣을 때 훌륭한 가이드가 될 겁니다 이미 이 원칙을 들어보셨을 수도 있는데요 프라이버시 원칙이란 Apple 제품과 서비스의 개인정보 보호 기능에 적용하는 네 가지 주요 아이디어입니다 첫 번째 원칙은 데이터 최소화입니다 기능을 구현하는 데 필요한 데이터만 사용하는 것이죠 이는 앱 구성 전반에 적용되는데 접근하려는 데이터 유형의 양에서부터 응용 프로그램 서버에 공유되는 데이터 타사에 공유될 수 있는 데이터까지 포함됩니다 두 번째는 온디바이스 처리로 데이터 처리는 전원을 이용하여 기기 내부에서 하고 다른 서버로의 공유를 피하는 것입니다 셋째 원칙인 투명성과 제어는 사용자들이 데이터 접근과 처리의 내용, 이유, 시간, 장소를 알고 이러한 일이 발생하기 전에 적절하게 제어하도록 하는 것입니다 또 사용자가 차후에 마음을 바꾸는 일도 가능해야 합니다 마지막 원칙은 보안 보호 장치입니다 강력한 기술적 완화 조치를 적용하여 종단 간 암호화 같은 다른 원칙을 시행합니다 프라이버시 원칙을 앱에서 실현하는 걸 돕기 위해 여러분이 도입할 수 있는 프라이버시 중심 설계를 갖춘 새 도구를 말씀드리고 개인정보 보호를 위한 중요 플랫폼 변화를 새롭게 알려드릴게요 마지막으로 Apple 최신 플랫폼의 공간 입력 모델이 어떻게 개인정보를 보호하는지 말씀드리겠습니다 Apple의 플랫폼에 앞으로 출시되며 개인정보 보호가 뛰어난 앱을 더 쉽게 만들게 해줄 프라이버시 향상 기술부터 말씀드리겠습니다 이 기술은 새 API 여럿을 포함하며 앱이 콘텐츠에 원활하게 접근하는 동시에 사용자가 공유 기능을 세밀하게 제어하도록 합니다 또한 서버 및 사람들과의 소통을 더 안전하게 보호하는 새 API도 포함됩니다 먼저 사진에 대한 저마찰 접근성을 제공하는 포토 피커의 개선 사항부터 말씀드리죠 지난 몇 년간 우리의 사진 보관함은 엄청나게 커졌습니다 소중한 순간이 점점 더 많이 보관함에 담겼기 때문이죠 어린 시절의 부끄러운 사진부터 최근의 도보 여행까지요 그래서 여러분의 앱을 근본적으로 신뢰하게 하는 방법은 자율권을 주어 어떤 데이터를 언제 앱과 공유할지를 자세히 결정할 수 있게 하는 겁니다 만일 누군가 여러분의 앱을 이용해 여행지에서 찍은 가장 아름다운 사진을 공유하려 한다면 앱에 모든 사진에 대한 접근 권한을 허용하지 않아도 이 기능을 쓸 수 있게 하는 겁니다 포토 피커가 있으면 이것이 가능합니다 이 API는 전체 사진 보관함에 대한 접근권이 없어도 여러분의 앱이 선택한 사진과 비디오에 접근하게 해줍니다 iOS 17과 macOS Sonoma에서는 앱에 피커 전체를 내장하면서 완벽하게 기능을 구현할 수도 있습니다 사진이 앱의 일부가 된 것처럼 보여도 사실은 시스템에서 제공받으며 선택 시에만 공유되는 것이어서 사용자의 사진은 여전히 본인 통제하에 있게 됩니다 새로운 사용자화 옵션이 출시되어 여러분은 피커를 나타낼 때 다른 화려한 효과 없이 이렇게 보여줄지 또는 사진 한 줄만 보이고 옆으로 스크롤할 수 있게 할지 피커 전체를 인라인 버전으로 나타내 새 옵션 메뉴에서 캡션이나 위치 정보 등 사진의 메타데이터를 공유할 수 있게 할지를 결정할 수 있습니다 포토 피커는 사진을 입수하는 훌륭하고 빠른 방법입니다 보관함 전체에 대한 접근 권한을 얻는 것을 걱정할 필요가 없으며 사진 고르기 절차의 디자인과 실행도 신경 쓸 필요가 없죠 전체 권한을 요청하는 대신에 피커를 도입하여 사진에 개별적으로 접근해 보세요 피커의 새 기능에 대한 자세한 설명을 원하시면 '앱에 포토 피커 장착하기' 세션을 시청하세요 사진 보관함 전체에 대해 반드시 접근 요청을 해야만 하는 앱을 개발하고 있는 경우를 대비해 iOS 17에서 권한 요청 메시지를 재설계하여 공유될 사진의 개수 및 샘플을 포함하도록 하였습니다 이는 사람들이 공유할 대상에 대해 올바른 결정을 내리도록 도울 것입니다 사람들의 선호도가 시간에 따라 변할 수 있기 때문에 시스템에서 주기적으로 앱의 사진 보관함에 대한 전체 권한을 허용하는지 물을 것입니다 다음은 스크린 캡처 피커로 macOS의 ScreenCaptureKit에 속한 새 API입니다 사용자가 화면 공유를 할 때 앱이 필요로 하는 윈도우나 화면만 공유하게 하면서도 더 쾌적한 이용 경험을 제공하죠 macOS Sonoma 이전에는 사용자가 화상 회의에서 발표할 때 화면을 공유하기를 원한다면 전체 화면을 녹화할 권한을 설정을 통해서 회의 앱에 주어야 했고 성능 저하 및 지나친 정보 공유라는 위험이 있었습니다 이제 새로운 SCContent SharingPicker API로 macOS Sonoma는 여러분 대신 윈도우 피커를 띄워주며 사람들은 이를 통해 공유를 원하는 화면 콘텐츠를 고를 수 있습니다 macOS는 여러분이 윈도우나 화면을 선택하는 즉시 이를 공유해 줍니다 화면을 녹화하는 것은 명시적인 행위이기에 스크린 캡처 세션 동안은 여러분의 앱이 선택된 콘텐츠를 녹화하는 것이 허락됩니다 이는 스크린을 캡처하는 데에 따로 허락을 얻거나 자체적인 스크린 콘텐츠 피커를 만들 필요가 없다는 뜻입니다 SCContentSharingPicker가 모든 일을 관장하기 때문이죠 사람들이 녹화 중임을 인식할 수 있도록 macOS Sonoma에서는 새로운 스크린 공유 메뉴 바를 포함하여 앱이 화면을 녹화하고 있다는 걸 상기시킵니다 이것을 기억하시고 사람들이 알고 있을 때만 화면을 녹화하세요 버튼을 누르면 메뉴가 펼쳐지고 공유 콘텐츠의 미리보기를 제공합니다 이 메뉴로 캡처 세션에 화면 콘텐츠를 빠르게 추가 및 제거하거나 완전히 종료할 수 있습니다 또한 SCContentSharingPicker는 선호하는 선택 모드나 응용 프로그램처럼 앱의 필요에 따라 조정할 수 있는 사용자화 옵션을 제공합니다 더 자세히 알고 싶다면 'ScreenCaptureKit의 새 기능'을 확인하세요 여러분의 앱에서 캘린더 또한 매끄럽게 구동될 수 있습니다 특히 새 이벤트만을 생성하는 앱이 그렇죠 캘린더는 병원 예약이나 비행기표 정보처럼 사람들의 생활 양상을 자세히 보여줍니다 그래서 앱이 접근 권한을 요청할 때 사용자는 깜짝 놀라거나 거절할 수도 있습니다 이벤트의 생성 권한만 필요한 앱의 경우 이벤트 추가를 못 하거나 실망감을 느낀다든지 콘서트나 친구의 생일 파티를 놓치는 일이 벌어질 수도 있습니다 이런 문제를 피하고자 캘린더의 접근 권한 면에서 Apple 플랫폼에 두 가지 중요한 변화를 주었습니다 먼저 캘린더에 새 이벤트를 생성만 하는 앱의 경우 여러분에게 좋은 소식이 있는데요 EventKitUI가 있으면 접근 권한을 받을 필요가 없습니다 이는 EventKitUI 뷰 컨트롤러를 앱 외부에서 제공하면서 가능해졌습니다 API나 기능을 변경할 필요도 없죠 둘째로, 여러분이 이벤트 생성에 자체 UI를 쓰는 걸 선호한다면 추가 전용의 캘린더 접근 허가를 통해 다른 이벤트에 접근하지 않고 앱이 이벤트를 추가할 수 있습니다 이렇게 캘린더의 내용을 가져올까 봐 걱정할 필요 없이 앱 내 이벤트를 사용자의 하루 일정에 쉽게 통합할 수 있습니다 만일 나중에 앱에서 캘린더에 대한 전체 접근 권한이 필요해지면 업그레이드를 한 번만 요청하면 됩니다 User Intent에 연결됐을 때 이 요청을 하는 게 가장 좋습니다 예상치 못한 시간에 예상치 못한 이유로 요청이 올 경우 이것을 사용자가 거부할 수 있고 앱에 대한 경험의 질을 떨어뜨릴 수 있습니다 목적 문자열을 구체화하여 왜 접근 권한이 필요한지 사용자에게 설명하세요 모든 앱에 쓰기 전용 권한의 이점을 제공하고자 한다면 두 가지 중요한 점을 기억해야 합니다 이전에 여러분의 앱이 캘린더 접근 권한을 받았다면 iOS 17이나 macOS Sonoma로 업그레이드 시에 기본 설정이 쓰기 전용 권한으로 바뀝니다 마찬가지로 EventKit의 이전 버전에 연결했고 앱이 캘린더 접근 권한을 요청한다면 시스템이 쓰기 전용 권한만 띄울 것입니다 이 경우에 앱에서 캘린더 이벤트를 가져오려고 시도한다면 앱이 전체 권한을 갖도록 시스템에서 자동으로 업그레이드를 요청할 겁니다 EventKit과 EventKitUI를 앱에 통합하는 법을 더 자세히 알고 싶다면 '캘린더 및 EventKit 알아보기'를 확인하세요 다음 소개할 것은 새로운 Oblivious HTTP API인데요 클라이언트 IP 주소를 서버로부터 숨기는 걸 돕고 민감할 수 있는 앱 사용 패턴을 네트워크 사업자로부터 숨길 수 있게 합니다 사람들이 매일 언제, 어떤 앱을 쓰는지 알면 이들의 삶에 대한 깊은 통찰력을 얻을 수 있죠 셀룰러 및 Wi-Fi 네트워크 사업자들은 어떤 서버에 사용자가 연결하는지 관찰할 수 있기에 개인의 앱 사용과 삶의 패턴을 알 수 있습니다 어떤 네트워크 사업자들은 자신의 지위를 이용해 사람들이 여러분의 앱을 어떻게 쓰는지 알려고 할지도 모릅니다 이는 특히 민감한 정보일 수 있는데 데이트 앱이나 특정 건강 상태를 보여주는 앱이 한 예시입니다 IP 주소는 인터넷상의 의사소통에 필수적인 요소입니다 그러나 IP 주소는 악용되어 누군가의 위치나 신분을 노출할 수도 있습니다 IP 주소에 노출되는 것은 개발자가 풀어야 할 난제가 추가로 생겼다는 뜻일 수 있는데요 클라이언트 애널리틱스와 같은 익명성 보장 기능을 앱에 넣는 것이 해당됩니다 Apple 플랫폼은 이제 Oblivious HTTP를 지원합니다 줄여서 OHTTP라고도 하는데 이는 사람과 내용 정보를 분리하여 사용자의 앱 사용 정보 및 IP 주소를 보호하는 걸 돕습니다 OHTTP는 표준화된 인터넷 프로토콜로 기존보다 가벼우며 응용 계층에서 암호화된 메시지를 프록시로 보내 빠른 교류의 서버 상호작용을 가능하게 합니다 OHTTP를 이용하면 네트워크 사업자는 응용 서버 대신에 릴레이 공급자와의 연결만 볼 수 있죠 이 아키텍처의 초석은 릴레이로서 클라이언트의 IP 주소 및 목적지 서버의 이름을 알지만 암호화된 내용은 전혀 알지 못합니다 릴레이는 응용 서버로의 연결을 항상 볼 수 있어서 이것이 유일하게 얻는 의미 있는 정보는 클라이언트 IP입니다 여러분의 응용 서버로 최종적으로 연결하는 건 바로 릴레이입니다 릴레이를 제삼자가 운용할 경우 어떠한 쪽도 출발지 IP, 목적지 IP 및 콘텐츠를 완전히 볼 수 없습니다 이를 이용해 여러분은 익명 애널리틱스처럼 사용자의 신분을 밝히거나 추적하지 않는 앱의 익명 기능을 기술적으로 보증할 수도 있습니다 OHTTP 지원으로 사람들에게 큰 영향을 줄 더 강력한 인터넷 프라이버시 보호를 제공할 수 있게 될 겁니다 iCloud Private Relay 같은 서비스는 이미 OHTTP를 이용하여 뛰어난 성능과 강력한 개인정보 보호 기능을 제공하고 있는데요 한 예로 Private Relay는 OHTTP로 모든 DNS 쿼리를 보호합니다 OHTTP 이용을 더 알고 싶다면 네트워크 릴레이 세션을 시청하세요 OHTTP를 이용하게 되면 시스템 아키텍처 내에서 IP 주소를 어떻게 대체할지 생각해야 합니다 실제 사용자 감지를 수행하는 일이 그 예죠 '캡차를 프라이빗 액세스 토큰으로 대체하기' 세션을 WWDC22에서 시청하시고 IP 주소 평판 시스템을 프라이버시 보존 대안으로 바꾸는 법을 알아보세요 DNS 쿼리의 암호화는 네트워크에서 앱 사용을 보호하는 또 다른 중요한 요소입니다 더 알고 싶다면 '암호화된 DNS 구동하기'를 WWDC20에서 시청하세요 마지막 신규 툴은 안전한 커뮤니케이션 기능이자 새로운 민감한 콘텐츠 분석 프레임워크로서 온디바이스 처리를 이용하여 앱에 어린이 보호 기능을 넣을 수 있습니다 Apple 플랫폼과 여러분이 제작하는 앱은 많은 가족에게 중요한 일부가 되었습니다 어린이들이 우리의 제품과 서비스를 이용해 가족, 친구와 함께 디지털 세상을 탐험하고 의사소통하기 때문이죠 안전한 커뮤니케이션 기능은 자녀의 보호받을 권리를 지킵니다 이 기능은 신체 노출이 있는 사진을 받거나 공유할 때 경고 메시지를 표시하고 도움이 되는 자료를 자녀에게 제공해 줍니다 이 보호 기능이 여러분의 앱에서뿐만 아니라 Apple 플랫폼 전체에 적용되는 것이 중요합니다 이를 위해 안전한 커뮤니케이션 기능은 메시지 앱 밖에서도 민감한 내용을 감지합니다 AirDrop으로 파일을 공유하거나 FaceTime으로 메시지를 남길 때 포토 피커나 전화 앱에서 연락처 포스터를 공유할 때 이 기능이 작동합니다 저희는 또한 이 기능을 모두가 쓸 수 있도록 했습니다 나이에 상관없이 민감한 콘텐츠 경고를 띄울 수 있죠 새로 도입된 민감한 콘텐츠 분석 프레임워크를 이용해 여러분의 앱 안에서도 민감한 내용을 감지할 수 있습니다 이것은 시스템이 제공하는 ML 모델을 갖춘 동일한 온디바이스 기술을 이용하여 다른 서버와 콘텐츠를 공유할 필요가 없게 합니다 여러분은 이 프레임워크를 이용하여 대규모 ML 모델을 훈련하고 앱에 장착하는 번거로움 없이도 기능을 누릴 수 있습니다 코드 몇 줄만 작성하면 앱에 통합할 수도 있죠 제일 먼저 SCSensitivityAnalyzer라는 인스턴스를 생성합니다 analysisPolicy 속성을 확인하여 이미지나 비디오가 신체 노출을 포함할 때 어떤 중재 메시지를 보여야 하는지와 분석이 필요한지를 결정할 수 있습니다 그 후에는 여러분이 분석하려는 사진이나 CGImage의 주소와 함께 analyzeImage 메서드를 호출합니다 영상을 분석하려면 videoAnalysis 메서드를 호출하세요 이는 핸들러를 반환하여 여러분이 진행 상황을 추적하고 필요시에 분석을 취소할 수 있게 합니다 분석 결과를 얻으려면 핸들러에서 hasSensitiveContent를 호출하세요 isSensitive가 true이면 이미지나 영상에 신체 노출이 포함됐을 겁니다 이 경우에 여러분의 앱은 자체적인 중재 조치를 제공해야 합니다 이 조치는 화면 흐리기나 이미지나 영상을 모호하게 만들기 콘텐츠 보기라는 기능을 포함합니다 또한 안전한 커뮤니케이션 기능이나 민감한 콘텐츠 경고가 활성화됐는지에 따라서 중재 조치를 조정할 수 있게 분석 정책을 확인하세요 중재에 대한 설계 지침은 Apple 개발자 문서에 더 자세히 나와 있습니다 여러분의 앱에 뛰어난 개인정보 보호 기능을 제공할 새로운 API를 소개했는데요 Apple 플랫폼의 기존 개인정보 보호 기능에도 약간의 변화가 생겼습니다 앱에서 데이터를 보호하는 방법이 새로 추가됐고 Safari 및 Safari 앱 확장 프로그램에서도 개인정보 보호 기능이 개선됐습니다 먼저 macOS의 신규 개인정보 보호 기능은 같은 기기의 다른 앱으로부터 여러분의 앱 데이터를 보호하도록 설계됐습니다 데스크톱과 문서 다운로드 폴더 같은 디스크 위치는 시스템이 권한을 관리합니다 사용자는 이러한 제한 조치 덕분에 앱이 개인정보에 접근할 때 이를 통제할 수 있습니다 사용자가 직접 상호작용하는 파일로서 프로젝트 프레젠테이션이나 예산이 담긴 스프레드시트 등이 이 모델에 적합합니다 어떤 응용 프로그램은 개인정보를 다양한 위치에 저장하는데 데이터베이스에 주고받은 메시지를 저장하는 메시지 앱이나 휴가 계획 등을 저장하는 메모 앱이 여기 해당하죠 이러한 파일은 종종 라이브러리 폴더나 앱 샌드박스의 경우에는 앱의 데이터 컨테이너에 저장됩니다 macOS Sonoma는 사용자에게 데이터에 접근할 수 있는 대상을 제어하는 추가 권한을 줍니다 특히 macOS에서는 다른 개발자가 만든 응용 프로그램의 데이터 컨테이너 내 자료에 다른 앱이 접근하기 전에 권한을 구하는 것이 필수입니다 이 특징은 여러분의 앱에 두 가지 영향을 줄 수 있습니다 먼저 여러분의 응용 프로그램이 시스템이 관리하는 데이터 저장소의 외부에 데이터를 저장한다면 앱 샌드박스를 도입하여 이 새로운 보호 기능을 여러분의 앱 사용자 데이터까지 확장하세요 그러면 앱이 생성한 모든 파일이 보호받을 겁니다 이미 앱 샌드박스를 쓰는 앱의 경우 자동으로 새로운 보호 기능을 적용받습니다 둘째로, 여러분의 앱이 다른 앱의 데이터에 접근할 경우 접근 권한을 얻는 몇 가지 방법이 있습니다 여러분 쪽에서 아무것도 변경하지 않아도 다른 앱의 데이터 컨테이너에 있는 파일에 접근할 때 macOS Sonoma가 권한을 요청할 겁니다 이 권한은 여러분의 앱이 열려 있는 동안 유효하고 앱을 닫으면 권한이 초기화됩니다 상대방이 이미 예상하고 있을 때만 다른 앱의 파일을 읽어야 합니다 만일 갑작스럽게 권한 요청을 하거나 목적이 불분명할 경우 앱의 접근이 거부될 수 있는데요 의미 있는 목적 문자열을 준비하면 상대방이 여러분의 앱이 접근하려는 이유를 알수있을겁니다 다른 앱의 파일에 접근하는 명시적 권한을 얻을 수 있는 대안적 방법이 몇 개 있습니다 각 파일과 폴더에 막힘없이 접근하려면 NSOpenPanel을 사용하세요 이것은 프로세스 외부에서 macOS 파일 피커를 보여주고 일단 사용자가 승인하고 나면 여러분의 앱이 선택된 리소스를 읽거나 쓸 수 있습니다 또한 NSOpenPanel은 피커에서 기본값으로 보이는 경로를 여러분이 지정하게 하여 선택을 용이하게 합니다 이미 디스크에 대한 전체 권한을 받은 백업 유틸리티나 디스크 관리 도구의 경우 이러한 앱이 모든 파일에 접근할 수 있게 사용자가 이미 허락했기 때문에 추가적인 프롬프트가 뜨지 않을 겁니다 덧붙여서 여러분의 Team ID로 서명된 모든 앱은 허가 프롬프트 없이도 다른 앱의 컨테이너 내 데이터에 기본적으로 접근할 수 있습니다 따라서 이전 버전의 앱에서 데이터를 불러오는 새로운 앱을 출시한다면 이 기능이 완벽히 작동할 겁니다 그러나 더 엄격한 규제 정책을 정의해야 하는 경우가 있을 수 있습니다 예를 들어 여러분이 에디터나 브라우저 셸과 같은 코드 인터프리터를 만든다면 이 앱이 함께 개발한 메시지 앱의 데이터에 접근할 때 여러분은 macOS에서 권한 허가를 요청하길 원할 수도 있습니다 이를 위해 NSDataAccessSecurityPolicy를 앱의 Info.plist에서 명시하여 기본값인 동일 팀 정책을 명시적인 AllowList로 대체합니다 그 후에는 나열된 프로세스와 설치 프로그램 패키지가 추가적인 동의 없이도 여러분의 앱 데이터에 접근할 수 있으며 다른 앱은 접근 허가가 필요합니다 고급 데이터 보호 기능은 앱 사용자의 데이터를 보호하는 또 다른 도구입니다 고급 데이터 보호 기능은 2022년에 추가되었으며 사용자가 iCloud에 저장된 대부분의 데이터에 종단 간 암호화를 적용할 수 있게 합니다 Cloudkit을 도입하면 고급 데이터 보호를 켤 때마다 여러분의 앱을 이용하여 CloudKit에 저장된 데이터에 종단 간 암호를 걸 수 있습니다 또한 여러분이 아무것도 변경하지 않아도 암호화 키 관리나 암호화 작업이나 복잡하고 위험한 복구 절차를 수행할 수 있죠 앱 사용자 또한 고급 데이터 보호 기능의 프라이버시 혜택을 받을 수 있게 하려면 몇 가지 단계만 거치면 됩니다 먼저 여러분의 CLoudKit 스키마의 모든 필드에서 암호화된 데이터 유형을 쓰세요 이는 기본적으로 CKAsset 필드를 포함하며 CloudKit에 있는 데이터 유형 대부분은 EncryptedString처럼 암호화된 변형이 있습니다 그런 다음 encrypted Values API를 이용하여 CloudKit 레코드에 있는 데이터를 검색하거나 저장할 수 있습니다 모든 암호화 및 암호 해독 작업이 편의를 위해 이 API로 추상화됩니다 그 결과, 이 기능을 활성화할 때마다 앱 데이터는 고급 데이터 보호 기능에서 제공하는 보안 침입 및 개인정보 보호의 모든 혜택을 받게 됩니다 여러분의 앱에 Cloudkit을 도입하는 방법 및 코드 샘플을 알고 싶다면 WWDC21에서 'CloudKit의 새 기능'을 시청하세요 다음은 Safari 프라이빗 브라우징 모드에서 새로워진 지문 및 추적 방지 기능을 소개합니다 Safari는 개인정보 보호를 가장 핵심으로 두고 설계됐습니다 프라이빗 브라우징 모드는 개인정보를 추가로 보호할 수 있게 합니다 탭이 닫히면 Safari가 방문 페이지나 검색 기록 자동 완성 정보를 잊어버리게 하죠 Safari 17에서 프라이빗 브라우징 모드는 고급 추적 및 지문 보호 기능이 더해졌으며 이는 웹 사이트 기록 추적을 방지하는 두 가지 새로운 보호 방법을 포함합니다 첫째로 Safari는 알려진 추적 및 지문 리소스가 로딩되는 것을 방지합니다 여러분이 웹 사이트 개발자라면 프라이빗 브라우징 모드에서 웹 사이트 기능을 꼭 테스트해 보세요 로그인 절차와 웹 사이트에서의 사이트 간 탐색 및 화면, 오디오, 그래픽과 관련된 브라우저 API의 사용 등에서 집중적으로 테스트하세요 고급 추적 및 지문 보호 기능을 끄고 다시 로딩하여 웹 사이트의 성능에 일어난 변화가 새로운 보호 기술 때문인지를 확인할 수 있습니다 macOS에서 새로 고침 버튼을 우 클릭 하거나 iOS에서 페이지 설정 버튼을 누르거나 Safari의 일반 브라우징 모드에서 테스트하여 확인하세요 또한 Web Inspector를 열어서 JavaScript 콘솔에 나타난 출력을 확인해 보세요 알려진 트래커와 접촉한 결과로 차단된 네트워크 요청은 '알려진 트래커에' '연결 차단됨'이라는 메시지로 나타납니다 웹 사이트 간 추적을 알아보는 또 다른 흔한 방법은 URL에 삽입된 고유 식별자인데요 쿼리 매개변수 등에 삽입됩니다 추적할 수 있는 위치에 대해 사용자에게 통제권을 주기 위한 또 다른 새 보호 조치는 브라우저를 탐색하거나 링크를 복사할 때 추적 매개변수를 제거하는 것입니다 추적 매개변수가 감지되면 Safari가 URL에서 식별 요소를 제거하고 식별할 수 없는 요소는 남겨둡니다 웹 사이트 간에 개인을 식별하지 않고도 광고 어트리뷰션을 할 수 있다는 걸 기억하세요 예를 들어 비공개 클릭 측정은 프라이버시를 유지하는 대안으로서 광고 어트리뷰션을 위한 매개변수 추적 대신 이용될 수 있습니다 이제 프라이빗 브라우징 모드에서도 직접 반응 광고가 가능한데 데이터가 디스크에 남지 않으며 단일 탭에 기반한 단일 브라우징 콘텍스트로 어트리뷰션이 한정됩니다 이것은 Safari의 엄격한 기존 모델인 임시 브라우징과 프라이빗 브라우징의 탭 분리 기능을 따릅니다 더 자세한 정보는 '프라이버시를 유지하는' '광고 어트리뷰션 알아보기'를 참고하세요 WWDC21에서 확인 가능합니다 마지막으로 소개할 플랫폼 변화는 Safari 앱 확장 프로그램을 위한 새로운 권한 모델입니다 Safari 17에서는 Apple에서 선도한 웹 확장 프로그램을 위한 권한 모델이 앱 확장 프로그램으로도 출시될 예정입니다 이 변화로 확장 프로그램이 접근할 수 있는 웹 페이지를 사용자가 사이트별로 선택할 수 있게 됩니다 프라이빗 브라우징 모드의 확장 프로그램도 사용자가 제어할 수 있게 되죠 확장 프로그램의 변경 사항과 확장 프로그램에 대한 사이트별 권한 부여를 알아보려면 'Safari 확장 프로그램의 새 기능'을 확인하세요 개발자를 위한 새 툴과 플랫폼 변화 기반에 존재하는 프라이버시 원칙은 Apple 제품의 모든 기능에 적용되며 이는 새로운 공간 컴퓨팅 플랫폼의 입력 모델도 포함합니다 이 시스템은 사용이 매우 간단합니다 그냥 주위를 둘러보고 상호작용할 대상을 정한 후에 탭하면 되죠 새 권한을 받지 않아도 되고 앱 개발자에게 추가 업무가 부과되지도 않으며 앱이 어디를 보는지 추적할까 봐 걱정하지 않아도 됩니다 철저한 개인정보 보호 기능을 갖춘 뛰어난 신제품이 나온 것이죠 눈과 손 제어 개발에 프라이버시 엔지니어링이 어떻게 접근하는지 살펴보죠 먼저 입력 모델이 달성해야 하는 고차원 목표가 있습니다 UI 요소와 자연스럽게 상호작용할 수 있도록 입력 경험은 빠르고 유동적이어야 합니다 모든 종류 및 크기의 UI 요소와 상호작용하는 데에 자신감을 불어넣을 수 있도록 사람들이 보고 있는 대상에 대해 실시간 피드백을 주어야 합니다 또한 기존의 iPhone과 iPad 응용 프로그램도 즉시 작동할 수 있어야 합니다 마지막으로 기본적인 입력을 받는 일에 새로운 권한 허가를 요구해서는 안 됩니다 다음은 입력 모델에 대한 개인정보 보호 목표입니다 질환을 비롯해 여러분의 눈에 대한 민감한 정보를 앱이 얻는 걸 방지하기 위해서 오로지 관련 시스템 구성 요소만 홍채 카메라에 접근할 수 있어야 하며 허가 없는 접근을 활성화하려면 사용자의 눈이나 손에 대한 정보를 얻지 않고도 앱이 작동할 수 있어야 합니다 사람들이 바라보는 대상으로 그 생각을 알 수 있기 때문에 앱에서 사람들이 보는 대상을 학습하지 않고 오로지 상호작용하는 대상만 학습해야 합니다 Apple에서 이 모든 목표를 달성하도록 고안한 시스템을 살펴보죠 입력 시스템을 위해 눈과 손을 측정하는 내부 및 외부 카메라 데이터는 분리된 시스템 프로세스 내에서 처리됩니다 눈과 손의 위치 측정 데이터는 눈과 핀치 감지 시스템에 전달되며 복잡한 카메라 처리를 여러분의 앱을 포함한 다른 모든 시스템 요소로부터 추상화합니다 호버 피드백 시스템은 화면에 보이는 것을 눈의 위치와 결합하여 사용자가 보고 있는 것을 결정합니다 사용자가 UI 요소를 보고 있다면 시스템이 렌더링 과정에서 하이라이팅 레이어를 추가합니다 앱의 프로세스 외부에 있는 렌더링 엔진이 이를 실행하며 오로지 기기를 이용하는 사람에게만 보이기 때문에 앱에 어떠한 정보를 노출하지 않아도 자신이 보고 있는 것을 이해할 수 있는 것입니다 그리고 핀치 제스처가 감지되는 즉시 시스템은 하이라이트된 UI 요소에 대한 일반 탭 이벤트를 여러분의 앱에 전달합니다 이 시스템 아키텍처 덕분에 카메라 데이터를 입력 이벤트로 변환하는 복잡한 일이 운영 체제에서 처리되는데요 이는 곧 새 플랫폼에서 입력을 받기 위해 아무것도 바꿀 필요가 없다는 뜻입니다 기본 시스템 동작 외에도 UIKit, SwiftUI, RealityKit이 앱 디자인에 맞게 효과를 조절해 주며 동시에 시스템이 제공하는 UI 요소와 같은 수준의 개인정보 보호를 제공합니다 여러분은 유형과 모양을 포함해 호버 효과가 적용될 요소를 변경할 수 있습니다 이 기능을 이용하려면 '공간 컴퓨팅을 위한 SwiftUI 알아보기' 및 '공간 컴퓨팅에 맞게 윈도우형 앱 향상하기'를 참고하세요 주요 프라이버시 원칙을 적용하여 이 공간 입력 모델이 만들어졌습니다 시스템은 각 구성 요소가 접근해야 하는 데이터의 양을 최소화하며 기기 내에서 모든 처리 과정이 일어납니다 의도적인 상호작용만 앱에 공유되므로 사용자가 통제권을 갖게 되죠 여러분의 시선은 운영 체제의 커널이 실행하는 프로세스 분리를 통해 보호받습니다 개인정보 보호를 핵심적인 디자인 목표로 삼은 덕분에 뛰어난 기능 구현과 철저한 개인정보 보호가 모두 가능합니다 여러분에게 Apple 플랫폼 전체에 적용된 새로운 프라이버시 변경 내용이 영감을 주었길 바랍니다 이 향상된 개인정보 보호 기능으로 사용자의 신뢰를 쌓을 수 있고 콘텐츠를 수집하는 API를 이용해 사용자 제어를 원활하게 만들어 앱 접근 데이터를 최소화할 수 있습니다 또한 민감한 콘텐츠 분석 프레임워크를 도입하여 온디바이스 처리로 앱에서 어린이를 보호할 수 있습니다 앱에서 사용자 데이터를 보호하려면 macOS의 앱 샌드박스 같은 보안 보호 장치를 도입하고 CloudKit에서 데이터를 암호화하세요 시청해 주셔서 감사합니다 여러분의 결과물을 기대하겠습니다 ♪
-
-
16:00 - Detect sensitive content
// Analyzing photos let analyzer = SCSensitivityAnalyzer() let policy = analyzer.analysisPolicy let result = try await analyzer.analyzeImage(at: url) let result = try await analyzer.analyzeImage(image.cgImage!) // Analyzing videos let handler = analyzer.videoAnalysis(forFileAt: url) let result = try await handler.hasSensitiveContent() if result.isSensitive { intervene(policy) }
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.