Siri AI 앱 연동 프리뷰: App Intents를 붙이기 전에 나눠야 할 데이터와 동작
Apple의 11월 3일 Siri AI 개발자 프리뷰를 계기로 데이터·동작·권한을 분리하고, 자연어 검색과 실제 상태 변경을 따로 검증하는 실무 도입 순서를 정리한다.
앱의 데이터와 실행 동작을 음성 인터페이스에 연결하는 과정을 표현한 생성형 개념 이미지다. 실제 Apple 제품 화면은 아니다.
음성으로 앱 기능을 실행하게 만들 때 어디부터 손대야 할까. 화면마다 음성 명령을 붙이기보다, 앱이 제공할 데이터와 실행할 동작을 분리하는 데서 시작하는 편이 좋다. Siri AI의 새 개발자 프리뷰도 이 설계를 점검할 계기다.
이번 발표에서 달라진 것
Apple은 2026년 11월 3일 Siri AI와 앱을 연결하는 Developer Preview를 모든 개발자에게 열었다. 발표의 대상은 iOS·iPadOS·macOS·visionOS 27.3 베타다. App Intents로 앱의 콘텐츠와 사용자 정의 동작을 연결하고, 여러 동작을 조합하는 skills와 Spotlight 의미 검색 인덱스의 엔터티 활용 범위를 확장한다.
지금 고객에게 배포할 수 있다는 뜻으로 해석하면 안 된다. Apple은 이번 기능이 수개월 뒤 고객에게 제공되고 App Store 제출은 봄에 열릴 예정이라고 설명했다. 구체적인 출시일은 확정하지 않았다. 경험별 약관과 사용 정책도 추가 안내 예정이다. Apple 공식 발표
이 글은 공식 발표·문서와 이를 바탕으로 한 설계 제안을 구분한다. 베타 기기에서 직접 실행하거나 인식률을 측정한 결과는 아니다.
화면 대신 데이터와 동작을 나눈다
App Intents에서 intent는 앱의 동작을, entity는 앱이 제공하는 콘텐츠를 표현한다. 시스템은 이 표현을 통해 Siri, Spotlight, Shortcuts 등의 경험을 구성한다. App Intents 시작 안내
독서 앱을 예로 들면 책 상세 화면 하나를 통째로 노출하기보다 다음처럼 나눌 수 있다. 아래 목록은 설명을 위한 설계 예시다.
- 데이터: 책의 식별자, 제목, 저자, 현재 읽기 상태.
- 조회 동작: 특정 책의 읽기 상태 확인.
- 변경 동작: 선택한 책을 읽기 완료로 표시.
- 별도 동작: 독서 기록을 다른 사람에게 공유.
조회와 공유를 같은 동작으로 묶지 않는 이유는 실패 조건과 권한이 다르기 때문이다. 책을 찾는 데 성공해도 공유 대상은 여전히 모호할 수 있다. 먼저 조회 한 가지를 붙이고, 변경과 공유는 따로 검증하는 편이 문제를 좁히기 쉽다.
Apple의 WWDC26 세션은 App Entities, 엔터티 해석, 의미 검색, 화면 맥락 및 앱 간 콘텐츠 이동을 설명한다. 새 프리뷰를 검토할 때도 기존 앱의 데이터 모델을 어떻게 표현할지 먼저 살펴볼 만하다. 공식 세션
perform 이전과 내부의 책임을 구분한다
공식 AppIntent 문서에 따르면 입력값은 @Parameter로 표현하며, 시스템은 perform()을 부르기 전에 대화에서 값을 추론하거나 사용자에게 물어 매개변수를 해석한다. perform()은 실제 앱 동작을 실행하고 결과를 반환한다. AppIntent 문서
여기서 입력값이 채워졌다는 사실과 실행 권한이 있다는 사실을 혼동하지 않아야 한다. 아래는 이 글이 권하는 앱 내부 처리 순서다. Swift API 예제가 아니라 서비스 계층의 책임을 설명하는 의사 코드다.
책 제목으로 찾은 결과가 여러 개라면 임의의 첫 항목을 선택하지 않는다. 계정이 바뀌거나 데이터가 삭제된 경우도 실행 시점에 다시 확인한다. 외부 전송·결제처럼 되돌리기 어려운 동작이라면 대상과 내용의 확인 절차를 별도로 설계해야 한다.
자연어 해석을 더 잘하는 기능을 도입해도 서버의 접근 제어나 상태 검증을 없앨 이유는 없다. 화면에서 호출하든 음성으로 호출하든 같은 도메인 규칙을 통과하도록 만드는 것이 핵심이다.
검색 품질과 실행 정확도를 따로 검증한다
다음은 제안하는 테스트 목록이며, 이 글에서 실행한 결과가 아니다.
- 같은 제목을 가진 책 두 권을 준비하고 올바른 대상을 구분하는지 확인한다.
- 한국어 표현을 바꿔 같은 조회를 요청하고 결과의 식별자를 비교한다.
- 검색 후 책을 삭제하거나 권한을 바꾼 뒤 실행해 안전하게 실패하는지 확인한다.
- 같은 완료 요청을 반복했을 때 기록이나 알림이 불필요하게 중복되지 않는지 확인한다.
- 화면에서 선택한 대상과 실제 변경된 대상이 같은지 확인한다.
- 네트워크 실패 뒤 응답 문구와 저장 상태가 어긋나지 않는지 확인한다.
테스트 기록에는 자연어 입력만 남기지 않는다. 기대한 대상 ID, 실제 대상 ID, 실행 전후 상태, 오류와 확인 단계도 함께 남긴다. “대답이 자연스럽다”와 “올바른 데이터를 변경했다”는 서로 다른 합격 기준이다.
기존 프로젝트에서 관련 구현을 찾을 때는 다음과 같은 읽기 전용 검색을 시작점으로 쓸 수 있다. 문자열 검색만으로 모든 구현을 찾았다고 판단하지 않는다.
지원 조건과 배포 계획을 분리한다
공식 발표는 Apple Intelligence 지원 기기와 지원 언어 설정을 요구하며, 한국어를 지원 언어에 포함한다. 다만 지역·언어별로 기능이 다를 수 있다. EU의 iOS·iPadOS·watchOS 제한과 13세 미만 사용자 제한도 안내한다. 서버 모델을 사용하는 일부 기능에는 일일 사용 한도가 있다. 지원 조건
따라서 베타 테스트에 성공했다는 이유만으로 모든 고객에게 같은 기능을 약속하지 않는다. 앱의 기존 버튼·검색 경로를 유지하고, 지원 조건과 실제 배포 가능 시점을 별도로 확인한다.
이번 프리뷰에서 먼저 얻을 것은 기능 수보다 검증 가능한 한 가지 흐름이다. 데이터 찾기, 대상 확인, 권한 검사, 실행, 결과 확인까지 이어지는 작은 기능 하나를 완성하면, 이후 여러 동작을 조합할 때도 어디서 실패했는지 판단하기 쉬워진다.