애플은 플랫폼에 대한 외부 침입을 엄격하게 차단하는 것으로 알려져 있으며, iOS 환경이 그 대표적인 예입니다. iOS는 사용자가 제한적으로만 사용자 정의할 수 있으며, 그마저도 탈옥과 같은 위험 부담을 감수해야 합니다. 하지만 macOS는 조금 다릅니다. macOS는 애플의 기술력과 함께 작동하는 정교한 유닉스 기반 시스템입니다. Mac 사용자들은 간단한 버튼 클릭만으로도 여러 작업을 손쉽게 자동화할 수 있습니다. 이러한 자동화를 가능하게 하는 것이 바로 1993년에 애플이 개발한 AppleScript입니다. 사용자는 AppleScript를 활용하여 특정 수준의 자동화 설정을 통해 Mac의 기본적인 기능들을 자동화할 수 있습니다. Mac 경험을 자신만의 스타일로 만들고 싶다면, AppleScript가 그 해답이 될 수 있습니다. 여기서는 AppleScript의 기본적인 사용법을 소개합니다.
이 글에서는 AppleScript라는 자동화 스크립팅 언어와 그 사용법을 간략하게 소개할 뿐이며, 여러분을 단숨에 전문가로 만들 수는 없습니다. 하지만 기본적인 사용법을 익히면 컴퓨팅 환경을 완전히 바꿀 수 있습니다. 과장이 아니라 정말로 그렇습니다. 모든 운영체제 사용자들이 겪는 반복적인 작업들을 단 한 번의 클릭으로 해결할 수 있다고 상상해보십시오. 바탕화면 아이콘 정렬부터 시간 기록, 엑셀 데이터 입력 및 이메일 발송까지, 모든 작업이 버튼 클릭 하나로 가능해집니다. AppleScript는 반드시 배워야 할 강력한 도구입니다.
AppleScript 시작하기
AppleScript는 복잡한 Objective-C보다는 단순하지만, Swift만큼 쉬운 스크립팅 언어입니다. AppleScript를 익히기 위해 프로그래밍 석사 학위가 필요한 것은 아닙니다. 기계에게 명령을 내리는 방법을 이해하기만 하면 됩니다. 예를 들어, 다음 코드를 살펴보겠습니다.
tell application "Finder"
display dialog "Hello World"
end tell
AppleScript의 문법
모든 프로그래밍 언어에는 규칙이 있습니다. 이러한 규칙은 프로그램이 언제 시작하고, 무엇을 실행하고, 실행 후 어떤 작업을 수행하며, 언제 종료해야 하는지를 알려줍니다. AppleScript의 기본적인 문법 구조는 `[명령어] [대상 유형] [대상 이름] [동작] [명령 종료]`입니다. 이것은 단순화된 표현이지만, 코드를 작성하는 동안 문제가 발생하면 위의 매개변수 중 하나 이상이 누락되었을 가능성이 높습니다.
더 쉽게 설명하면, “텔링 블록”이라는 개념이 있습니다. 이는 특정 애플리케이션에 원하는 작업을 “말하는” 것입니다. 위의 예시 코드처럼 Finder 애플리케이션에 “Hello World”(또는 사용자가 원하는 다른 단어)라는 메시지를 표시하는 대화 상자를 띄우도록 지시하는 것입니다. 명령이 끝나면 “end tell”을 사용하여 명령 블록을 닫습니다. 컴퓨터는 기계이므로 코드의 끝을 명확히 알려주어야 하며, 그렇지 않으면 컴파일을 거부합니다. (컴파일은 코드를 실행 가능한 파일로 변환하는 과정입니다).
코드 컴파일
코드를 작성한 후에는 컴파일 버튼을 클릭합니다. 코드에 구문 오류(대부분 오타)가 있는 경우, 컴파일러는 오류가 무엇인지 알려줍니다. 오류가 없다면 코드는 자동으로 형식이 지정되고 색상이 입혀집니다.
코드 실행
컴파일 후에는 실행 버튼을 클릭하면 코드가 실행됩니다. 실행 결과에 따라 로그 항목이 생성됩니다. 다음은 위의 예시 코드에 대한 두 가지 실행 시나리오입니다. “리턴”은 사용자의 입력을 기계로 전달하는 행위입니다. AppleScript에 익숙해지면 변수를 선언하여 코드를 더욱 효율적으로 만들 수 있습니다.
변수 사용
프로그래밍에 익숙한 사용자라면 변수라는 개념에 익숙할 것입니다. 변수는 다양한 정보를 쉽게 조작할 수 있는 단일 문자열로 압축하는 방법입니다. 각 프로그래밍 언어마다 변수를 사용하는 방법이 다르지만, AppleScript에서는 다음 접근법을 사용할 수 있습니다.
set varExample to "Hello World"
tell application "Finder"
display dialog varExample
end tell
위 코드에서 “varExample”은 선언된 변수의 이름입니다. 이제 스크립트에서 “Hello World”를 다시 출력해야 하는 경우, “varExample” 변수만 호출하면 되므로 코드를 다시 작성할 필요가 없습니다. 복잡한 코드나 다른 코드의 결과를 변수에 저장해두고 필요할 때 불러올 수 있습니다. 위 코드를 컴파일하면 이전과 동일한 결과가 나타납니다. “set”과 “to”라는 새로운 단어는 “[이것]을 “[저것]”으로 설정한다는 의미입니다. AppleScript는 변수 유형을 자동으로 관리하므로 변수의 “type”을 선언할 필요가 없습니다. 변수 이름에는 공백이 포함될 수 없으며, 컴파일러는 공백을 명령어로 인식합니다.
또한, 이중 하이픈(“–“) 뒤에 작성된 내용은 컴파일러가 주석으로 간주하고 무시합니다. 코드가 복잡해질 때 주석을 사용하여 코드에 대한 메모를 남길 수 있습니다.
다양한 변수를 사용하여 자유롭게 실험해보세요. 다음은 복사하여 붙여넣을 수 있는 예시 코드입니다.
--숫자/정수 변수 set theFirstNumber to 1 set theSecondNumber to 2
--변수 연산 set theAnswer to (theFirstNumber + theSecondNumber) set theAnswer to (theAnswer + 1)
--문자열 변수 set theString to "3+2+1="
--대화 상자 표시 tell application "Finder"
display dialog theString & theAnswer
end tell
위 코드는 단순한 출력과 기본적인 덧셈 연산을 수행하지만, AppleScript로 무엇을 할 수 있는지 보여주는 좋은 예시입니다.
AppleScript 사전
위에서 설명한 내용은 AppleScript 환경에 익숙해지는 데 도움이 됩니다. 이제부터는 조금 더 어려운 내용을 다루어보겠습니다. 바로 “사전”에 익숙해지는 것입니다. AppleScript에는 macOS 내의 모든 프로그램 또는 항목에 적용되는 다양한 명령어가 있지만, 각 애플리케이션 개발자는 해당 앱에 대한 AppleScript 지원을 추가해야 합니다. 이를 위해 앱과 통신하는 방법에 대한 간단한 매뉴얼을 작성합니다. 이러한 매뉴얼을 “사전”이라고 부릅니다. “파일” 메뉴에서 “사전 열기”를 선택하면 AppleScript를 지원하는 설치된 앱 목록이 나타납니다. 앱을 클릭하면 해당 앱에서 지원하는 사용자 지정 명령어와 사용법을 확인할 수 있습니다. 예를 들어, Evernote를 선택하면 지원하는 모든 명령어를 볼 수 있습니다.
AppleScript 편집기 사용자 정의
“파일” 메뉴에서 “AppleScript 편집기”를 선택하고 “환경 설정”을 클릭하면 AppleScript의 다양한 색상과 형식을 사용자 정의할 수 있는 옵션 목록이 나타납니다. 이러한 형식 설정은 참고용일 뿐이며, 실제 스크립팅에는 영향을 미치지 않습니다.
결론
이 글에서는 AppleScript의 기본적인 내용만 다루었습니다. 이제 도구를 직접 사용해보면서 다양한 옵션들을 탐색해 보세요. 다음 글에서는 사용자 정의 스크립트를 만드는 방법에 대해 자세히 알아보겠습니다. AppleScript 사용 경험에 대한 의견을 남겨주시면 감사하겠습니다.