Shortcut은 코드를 작성하지 않고 여러 앱과 서비스의 작업을 연결하는 Apple Shortcuts 앱의 자동화 시나리오입니다. Shortcuts는 Siri를 통한 음성, 일정, 지오펜스 진입 또는 이탈, 위젯 탭, NFC 태그 터치로 실행됩니다. 시나리오는 Actions 빌더에서 블록을 드래그 앤 드롭하여 시각적으로 생성됩니다. 자세한 내용은 Shortcuts 사용자 가이드를 참조하세요.
핵심 요점
Shortcut은 iOS, iPadOS, macOS, watchOS에서 작업을 자동화하기 위해 하나의 시나리오로 결합된 일련의 작업(Actions)입니다. 일반 앱과 달리 Shortcut에는 영구적인 인터페이스가 없습니다 — 백그라운드에서 실행되거나 데이터 입력을 위해서만 빠른 대화상자를 표시합니다. 사용자는 Shortcuts 앱에서 Actions 갤러리의 블록을 조합하여 시나리오를 만들고 한 번의 탭, 음성 또는 트리거를 통해 자동으로 실행합니다.
Shortcuts 앱 — iOS 13+, iPadOS, macOS 12+ 및 watchOS가 설치된 모든 기기에서 사용할 수 있는 Apple의 내장 자동화 빌더입니다. Actions 라이브러리에는 300개 이상의 내장 블록이 포함되어 있습니다: 시스템(메시지 보내기, 전화 걸기, 앱 열기), 미디어(사진, 음악, 팟캐스트), 인터넷(Get Contents of URL을 통한 REST API), 파일 및 문서 작업. 갤러리에는 Apple 및 커뮤니티의 기성 시나리오가 포함되어 있습니다 — 연락처에 예상 도착 시간 보내기부터 파일 일괄 이름 바꾸기까지.
Actions 라이브러리는 App Intents 프레임워크를 통해 서드파티 앱으로 확장됩니다. 개발자가 Intents.intentdefinition에 intents를 등록하면 자동으로 Shortcuts 갤러리에 나타납니다. 예를 들어, Things 3는 Actions «작업 만들기»와 «오늘의 작업 보기»를 추가하고, CARROT Weather는 위치 매개변수와 함께 «오늘의 예보»를 추가합니다.
Shortcuts는 iOS 샌드박스 내에서 작동합니다 — 시나리오는 shortcuted라는 백그라운드 프로세스에서 제한된 권한으로 실행됩니다. 각 Action은 입력 매개변수를 받고, 작업을 수행하고, 결과를 반환하는 미리 정의된 핸들러를 호출합니다. 시스템은 파이프라인을 통해 한 Action의 출력을 다음 Action의 입력으로 전달합니다 — 사용자는 편집기에서 블록 사이의 파란색 연결 지점으로 이를 확인합니다.
실행 흐름은 선형입니다: Actions는 위에서 아래로 순차적으로 실행됩니다. 조건부 분기는 If 블록을 사용하여 구현됩니다 — 시스템이 조건을 평가하고 해당 분기를 실행합니다. 루프를 사용할 수 있습니다: Repeat(N회 반복), Repeat with Each(목록 항목 반복), For Each. Try/Catch 블록이 추가되지 않은 경우 하나의 Action 오류가 전체 시나리오를 중단시킵니다.
import Intents
class OrderCoffeeIntentHandler: NSObject, OrderCoffeeIntentHandling {
func handle(intent: OrderCoffeeIntent,
completion: @escaping (OrderCoffeeIntentResponse) -> Void) {
let order = Order(coffee: intent.coffee, size: intent.size)
placeOrder(order) { success in
let response = success
? OrderCoffeeIntentResponse.success(coffee: intent.coffee)
: OrderCoffeeIntentResponse.failure(error: "Order failed")
completion(response)
}
}
}
각 Intents 핸들러는 INIntentsSupported 키를 통해 Info.plist에 등록됩니다. Siri를 통해 Shortcut이 실행되면 시스템이 적절한 IntentHandler를 찾아 비동기적으로 실행합니다. 응답은 상태, 메시지 및 사용자에게 표시할 선택적 데이터가 포함된 INIntentResponse 객체로 반환됩니다.
Shortcut 만들기는 Shortcuts 앱 갤러리에서 «+»를 탭하는 것으로 시작됩니다. 사용자는 카테고리에서 Actions를 선택합니다: 앱, 스크립팅, 웹, 파일, 건강, 음악 등. 각 Action은 구성 가능합니다 — 입력 필드, 토글, 목록. 조립 후 시나리오는 Play 버튼으로 테스트되고 오류가 있으면 문제가 있는 블록이 강조 표시됩니다. 공유하려면 Shortcut이 .shortcut 파일로 내보내져 AirDrop 또는 iMessage를 통해 전송됩니다.
변수 및 매직 Shortcuts는 변수를 지원합니다 — 한 Action의 출력 데이터를 다른 Action으로 전달할 수 있습니다. 매직 변수는 자동으로 결정됩니다: 이전 Action이 이미지를 반환하면 시스템이 다음 Action의 매개변수에서 이를 제안합니다. 사용자는 Set Variable 블록을 통해 명명된 변수를 만들고 시나리오의 어디에서나 사용할 수도 있습니다.
import AppIntents
struct CreateTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Create Task"
static var description = IntentDescription(
"Creates a new task in your to-do list"
)
@Parameter(title: "Task Title")
var taskTitle: String
func perform() async throws -> some IntentResult {
let task = TaskModel(title: taskTitle)
try await Database.shared.save(task)
return .result(dialog: "Task created")
}
}
App Intents는 커스텀 intents를 위해 Intents를 대체한 Apple(iOS 16+, SwiftUI)의 현대적인 프레임워크입니다. 기존 SiriKit과 달리 App Intents는 Objective-C 런타임 없이 작동하며, async/await를 통한 비동기성을 지원하고, Siri 대화를 자동 생성합니다. CreateTaskIntent 구조체는 AppIntent 프로토콜로 표시되고, 매개변수는 @Parameter 속성으로 표시됩니다. 프레임워크는 자동으로 Shortcuts 갤러리에 Action을 만듭니다.
Shortcuts 트리거는 시나리오가 자동으로 실행되는 조건입니다. 설정은 Shortcuts 앱의 Automation 탭에서 수행됩니다. 트리거는 개인(시간, 위치, 충전), 감각(NFC, 흔들기), 시스템(앱 열기, 포커스 모드, CarPlay 연결) 및 이벤트 기반(이메일 수신, 캘린더 이벤트, 알림)으로 구분됩니다. 각 트리거는 즉시 실행 또는 확인 필요로 설정할 수 있습니다.
| 트리거 | 실행 조건 | 사용 예 |
|---|---|---|
| 시간 | 특정 시간, 일출/일몰 | 오후 10:00에 방해 금지 모드 켜기 |
| 지오펜스 | 영역 진입 또는 이탈 | 퇴근 시 «집에 가는 중» 보내기 |
| NFC | NFC 태그 터치 | 태그 터치 시 «스마트 홈» 시나리오 실행 |
| 앱 | 앱 열기 또는 닫기 | YouTube 닫을 때 타이머 끄기 알림 |
| 포커스 | 포커스 모드 변경 | 수면 포커스 활성화 시 다크 테마 켜기 |
| 충전 | 전원 연결/해제 | MagSafe 연결 시 충전 위젯 열기 |
자동화는 Shortcuts의 핵심 기능으로, 개발자 권한 없이는 일반 앱에서 사용할 수 없습니다. 사용자가 트리거를 한 번 설정하면 잊어버려도 됩니다 — 시나리오는 개입 없이 백그라운드에서 실행됩니다. 예를 들어, «집에 도착하면 Wi-Fi 켜고 무음 모드 해제» 자동화는 집 지오펜스에 진입할 때 트리거됩니다. 시스템은 초기 설정 시 자동화 권한을 요청하며, 드물게 사용하면 비활성화할 수 있습니다.
macOS의 Shortcuts — macOS 12 Monterey부터 Shortcuts를 Mac에서 사용할 수 있습니다. 시나리오는 iCloud를 통해 모든 Apple 기기 간에 동기화됩니다. Mac에서는 시스템 Actions(Finder, 터미널, Automator, AppleScript)가 지원됩니다. macOS 개발자는 iOS와 유사하게 App Intents를 통해 Actions를 추가할 수 있습니다.
App Intents는 iOS 16+ 및 macOS 13+에서 앱을 Shortcuts와 통합하기 위한 기본 프레임워크입니다. 개발자는 AppIntent 프로토콜을 구현하는 구조체를 만들고, property wrappers를 통해 매개변수를 설명하며, perform() 메서드를 구현합니다. 시스템은 자동으로 Shortcuts, Siri 및 Spotlight에 intent를 등록합니다. 이전 iOS 버전(10–15)을 지원하기 위해 INIntent 및 IntentHandler와 함께 Intents 프레임워크가 사용됩니다.
import Intents
class IntentHandler: INExtension {
override func handler(for intent: INIntent) -> AnyObject? {
if intent is OrderCoffeeIntent {
return OrderCoffeeIntentHandler()
}
return .none
}
}
App Intents 테스트 — intents 디버깅은 Xcode를 통해 수행됩니다: 앱 스킴을 선택하고 Arguments에서 -intents를 전달하면 시뮬레이터가 테스트할 등록된 intents 목록을 표시합니다. 실제 환경과 유사한 환경에서 Shortcut을 테스트하려면 앱 아카이브를 빌드하고 TestFlight를 통해 기기에 설치합니다. 앱의 Shortcuts는 첫 실행 후 갤러리에 나타납니다.
고급 기능 App Intents는 자동 완성(동적 옵션)이 있는 매개변수, 실행 전 확인, Siri용 intents(음성 바로가기) 및 실행 버튼이 있는 위젯 생성을 지원합니다. Indexed intents(iOS 17+)는 Siri가 컨텍스트(시간, 위치, 작업 기록)에 따라 사용자에게 자동으로 제안하는 intents입니다.
자주 묻는 질문
Shortcut은 여러 앱의 작업을 연결하는 시나리오로, 독립적인 애플리케이션이 아닙니다. 사용자는 코드를 작성하지 않고 기성 Actions 블록으로 시나리오를 조립합니다. Shortcut은 Shortcuts 앱을 열지 않고 트리거되어 실행되는 반면, 일반 앱은 화면의 아이콘을 통해 실행해야 합니다.
Shortcuts는 다음 트리거를 지원합니다: 예약된 시간, 영역 진입 또는 이탈 시 지오펜스, iPhone 터치 시 NFC 태그, 앱 열기, 위젯 탭, Siri 음성 명령, 충전기 연결, 수면 모드 및 포커스 모드, 특정 앱 알림. 설정은 Automation 탭에서 수행됩니다.
네, Shortcut은 .shortcut 파일로 내보내져 AirDrop, iMessage를 통해 전송하거나 iCloud를 통해 Shortcuts 갤러리에 게시할 수 있습니다. 수신자는 시나리오를 가져와 사용할 수 있습니다. 인터넷에서 다운로드할 때 iOS는 확인을 요구하며 잠재적 보안 위험으로 인해 신뢰할 수 없는 시나리오 실행에 대해 경고합니다.
서드파티 앱은 iOS 16+에서는 App Intents 프레임워크를, 이전 버전에서는 Intents 프레임워크를 통해 Actions를 추가합니다. 개발자가 Intents.intentdefinition에 작업을 등록하면 Shortcuts 앱의 Actions 갤러리에 나타납니다. 사용자는 여러 앱의 Actions를 결합합니다 — 예를 들어 Safari에서 Bear 노트로 링크 보내기.
아니요, Shortcuts는 코드 없이 시각적으로 만들어집니다. 사용자는 목록에서 Actions 블록을 드래그 앤 드롭하고, 매개변수를 구성하고, 순차적으로 연결합니다. 고급 시나리오의 경우 Run Script Over SSH, Get Contents of URL 및 Control Flow If, Repeat, For Each와 같은 블록을 사용할 수 있지만 프로그래밍 경험은 필요하지 않습니다.
요약
턴키 방식의 모바일 애플리케이션을 개발해 드립니다
IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.