WWDC 2025 - 앱에서 연령에 맞는 경험 제공
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 앱 개발자
- 아동 보호 및 프라이버시 기능 개발에 관심 있는 개발자
- iOS 26 이상 버전을 사용하는 앱 개발자
- 난이도 수준: 중급~고급 (API 구현과 프라이버시 정책 이해 필요)
핵심 요약
Declared Age Range API
사용으로 정확한 생년월일 대신 연령 범위를 요청하여 프라이버시 보호- iOS 26 기반으로 4+~18+의 5개 연령 카테고리 확장
requestAgeRange
함수를 통해 앱에서 연령 범위 요청 처리
섹션별 세부 요약
1. **Apple의 아동 보호 전략 발표**
- 2025년 2월: "Helping Protect Kids Online" 백서 발표
- 디지털 아동 보호를 위한 포괄적 접근 방안 제시
- 프라이버시 중심 설계 원칙 강조
- 2025년 3월: 아동 설정 흐름 개선
- 자동으로 아동 맞춤형 기본 설정 적용
- 부모가 편리하게 계정 설정 완료 가능
2. **iOS 26 주요 변경 사항**
- 연령 범위 수정 기능 추가 (이전 잘못된 설정 수정 가능)
- App Store 연령 등급 5개로 확장 (
4+
,9+
,13+
,16+
,18+
) Declared Age Range API
도입:- 앱이 정확한 생년월일 대신 연령 범위 요청
- 사용자가 정보 공유 여부 직접 제어
- 지역별 최대 연령 제한 자동 적용
- 1회 요청 시 최대 3개의 연령 범위 허용
- 각 범위 최소 2년 간격 유지
3. **연령 범위 요청 처리 방식**
Always Share
: 요청 시 자동으로 연령 범위 제공- 새 정보 공개 시 알림 발생
Ask First
: 사용자에게 각 요청마다 공유 여부 결정 요청 (기본 설정)Never Share
: 모든 요청 거부 (사용자에게 알림 없음)
4. **API 구현 단계**
- Capability 추가:
Signing & Capabilities
→Declared Age Range
기능 추가
- 환경 설정:
- 다중 창 앱 (iPad/Mac)을 위한 환경 구성
- SwiftUI 및
DeclaredAgeRange
모듈 사용 예시:
```swift
import SwiftUI
import DeclaredAgeRange
struct ContentView: View {
@State var advancedFeaturesEnabled = false
@Environment(\.requestAgeRange) var requestAgeRange
var body: some View {
VStack {
Button("Advanced Features") {}
.disabled(!advancedFeaturesEnabled)
.task {
await requestAgeRangeHelper()
}
}
}
}
```
- 에러 처리:
invalidRequest
: 2년 미만 범위, 잘못된 파라미터 구성 시 발생notAvailable
: Apple 계정 미연결, 지역 제한 시 발생
5. **추가 기능 및 고려사항**
- 실시간 콘텐츠 감지:
- 이미지/동영상 내 노출 감지
- iOS 26: 실시간 동영상 통화에도 확장
- 프라이버시 보호 기능:
- 생년월일 추론 방지: 빈번한 요청 시 정보 유출 방지
- 시스템 레벨 캐싱: 과도한 사용자 프롬프트 방지
- 크로스 디바이스 동기화: iPhone ↔ Mac 간 데이터 연동
- 관리자 기능:
PermissionKit
을 통한 커뮤니케이션 제한 구현- 설정에서 수동 캐시 삭제 가능
결론
Declared Age Range API
는 프라이버시 보호와 아동 안전을 동시에 달성할 수 있는 혁신적 기능- 앱 개발 시 정확한 연령 범위 요청을 통해 성인/청소년/아동 구분 가능
- 에러 처리 및 사용자 설정을 철저히 검토하여 스무스한 UX 제공 필요
- Apple 개발자 문서 참고: https://developer.apple.com