코디움랩
강의자료 목록
Materials2026년 7월 3일무료1

[기술검토] OSAScript — macOS Open Scripting Architecture

macOS 내장 스크립팅 시스템 OSAScript(AppleScript·JXA)의 구조, 앱 제어·GUI 자동화·알림 기능과 제약을 검토하고 Claude Code CLI 및 훅 시스템과의 연동 패턴을 정리한 기술 보고서.

#macOS#AppleScript#JXA#자동화#Claude Code#osascript

OSAScript (Open Scripting Architecture) 기술 검토 보고서

macOS 내장 스크립팅 시스템 OSAScript(AppleScript / JXA)의 구조·기능·제약을 검토하고, Claude Code CLI(claude -p)·훅 시스템과의 조합 가능성을 정리한다. 결론: macOS 한정 자동화 레이어로서 claude -p보완 관계이며, 네이티브 알림·앱 제어·GUI 자동화에 효과적이다.

작성일: 2026-06-12


1. 개요

OSAScript는 Apple이 macOS에 내장한 Open Scripting Architecture(OSA) 프레임워크 위에서 동작하는 스크립팅 시스템이다. 앱 간 자동화, 시스템 이벤트 제어, GUI 조작, 셸 명령 실행을 단일 스크립트에서 처리할 수 있다. 주로 AppleScript 또는 JavaScript for Automation(JXA) 언어로 작성한다.


2. 핵심 개념

2.1 Open Scripting Architecture (OSA)

  • macOS 시스템 전체에 걸쳐 앱들이 스크립팅 명령을 주고받을 수 있는 표준 인터페이스
  • Apple Event 메시지 프로토콜을 기반으로 동작
  • Script Editor, osascript CLI, Automator 등이 모두 OSA 위에서 구현됨

2.2 지원 언어

언어특징도입 시기
AppleScript영어 문장형 문법, macOS 전통 자동화 언어macOS 7.1 (1993)
JavaScript for Automation (JXA)표준 JS 문법으로 동일한 OSA API 접근macOS 10.10 Yosemite (2014)

3. 실행 방법

3.1 CLI (osascript)

# 인라인 실행
osascript -e 'display notification "빌드 완료!" with title "알림"'

# 파일 실행 (AppleScript)
osascript script.applescript

# 파일 실행 (JXA)
osascript -l JavaScript script.js

# 파이프라인 입력
echo 'display dialog "Hello"' | osascript

3.2 Script Editor

macOS 기본 앱 /Applications/Script Editor.app에서 작성·디버그·컴파일(.scpt) 가능.


4. 주요 기능

4.1 macOS 앱 제어

-- Finder로 폴더 열기
tell application "Finder"
    open folder "Downloads" of home
end tell

-- Safari URL 열기
tell application "Safari"
    open location "https://example.com"
end tell

4.2 시스템 UI 자동화 (System Events)

-- 버튼 클릭, 메뉴 선택 등 GUI 자동화
tell application "System Events"
    tell process "Finder"
        click menu item "새로운 폴더" of menu "파일" of menu bar 1
    end tell
end tell

4.3 셸 명령 실행

-- 셸 명령 실행 후 결과 반환
set output to do shell script "ls -la ~/Desktop"
display dialog output

4.4 알림 및 대화상자

-- 시스템 알림 (배너)
display notification "작업 완료" with title "자동화 알림" subtitle "훅 실행됨"

-- 확인 대화상자
set answer to button returned of (display dialog "계속할까요?" buttons {"취소", "확인"} default button "확인")

4.5 클립보드 제어

-- 클립보드에 텍스트 쓰기
set the clipboard to "복사할 내용"

-- 클립보드 읽기
set copied to the clipboard

5. JXA (JavaScript for Automation) 예시

AppleScript와 동일한 OSA API를 JS 문법으로 사용:

// 알림 띄우기
const app = Application.currentApplication();
app.includeStandardAdditions = true;
app.displayNotification("빌드 완료!", { withTitle: "자동화 알림" });

// 셸 명령 실행
const result = app.doShellScript("git status");
console.log(result);

// Finder 제어
const finder = Application("Finder");
finder.activate();

6. Claude Code와의 연동 가능성

6.1 claude -p와의 조합

OSAScript는 claude -p(Claude Code CLI의 비대화형 실행 모드)를 내부에서 호출하는 래퍼로 활용할 수 있다. 양방향 모두 가능하다.

-- OSAScript → claude -p 호출
set review to do shell script "claude -p '코드 리뷰해줘'"
display notification review with title "코드 리뷰 완료"
# 셸 스크립트 → OSAScript로 알림 전송
claude -p "이 오류 분석해줘: $ERROR_LOG" && \
  osascript -e 'display notification "분석 완료" with title "Claude"'

역할 비교:

claude -pOSAScript
목적AI 프롬프트 실행 → 응답 반환macOS 앱/시스템 자동화
AI 기능OX
앱 제어XO
크로스 플랫폼OmacOS 전용
상호 호출do shell script로 OSAScript 호출 가능claude -p 호출 가능

💡 두 도구는 대체 관계가 아니라 보완 관계다. OSAScript는 macOS 이벤트/앱 레이어를 담당하고, claude -p는 AI 추론 레이어를 담당한다.

6.2 Claude Code 훅 시스템과의 연동

Claude Code 훅(PostToolUse, Stop 등) 이벤트 발생 시 OSAScript로 macOS 네이티브 알림을 전송하는 패턴:

# .claude/settings.json 훅 예시
{
  "hooks": {
    "Stop": [{
      "command": "osascript -e 'display notification \"세션 종료\" with title \"자동화 알림\"'"
    }]
  }
}

7. 제약 사항

제약내용
플랫폼macOS 전용. Linux/Windows 미지원
보안macOS 13+ 접근성 권한(Accessibility) 별도 허용 필요
샌드박스앱 샌드박스 환경에서 일부 기능 제한
성능Apple Event 기반 IPC로 대용량 데이터 처리에 부적합
디버깅에러 메시지가 불친절한 편

⚠️ GUI 자동화(System Events)는 접근성 권한이 없으면 조용히 실패한다. CI 등 무인 환경에서 쓸 때는 권한 사전 부여 여부를 반드시 확인할 것.


8. 결론

OSAScript는 macOS 환경 한정의 강력한 자동화 도구다. Claude Code 훅 시스템, 셸 스크립트, CI/CD 파이프라인과 조합해 macOS 네이티브 알림·앱 제어·GUI 자동화를 추가할 때 효과적으로 활용할 수 있다. AI 응답 처리(claude -p)나 크로스 플랫폼 자동화가 필요한 경우에는 별도 도구와 병행 사용해야 한다.

요약

항목평가
강점macOS 앱 제어 · GUI 자동화 · 네이티브 알림을 스크립트 1개로 처리
언어AppleScript(전통) / JXA(표준 JS 문법) — 동일 OSA API
Claude Code 연동훅 → osascript 알림, OSAScript → claude -p 래핑 양방향 가능
한계macOS 전용 · 접근성 권한 필요 · 대용량 IPC 부적합
권고AI 추론은 claude -p, macOS 이벤트/앱 레이어는 OSAScript 로 역할 분담

댓글

0/2000

아직 댓글이 없어요. 첫 댓글을 남겨보세요!

이 강의 후기

후기 남기기

아직 이 강의에 대한 후기가 없어요.