본문으로 건너뛰기

Keyboard Maestro 매크로 컬렉션

Keyboard Maestro는 macOS 자동화의 정석 도구 중 하나입니다. Shortcuts와 Raycast Script Commands가 커버하지 못하는 세밀한 자동화가 이곳에서 가능합니다. 편집팀이 실제로 사용하는 매크로 컬렉션과 설계 원칙을 정리합니다.

Keyboard Maestro의 자리

매크로 자동화 도구는 여럿 있지만 Keyboard Maestro는 몇 가지 강점을 유지합니다.

트리거의 종류가 압도적으로 많습니다. 키 단축키, 특정 앱 실행, 창 활성화, 클립보드 변화, USB 장치 연결, 특정 시각, 웹 요청, MIDI 이벤트까지. 자동화를 시작할 수 있는 조건이 거의 무한합니다.

액션 라이브러리가 성숙합니다. 파일 처리, 웹 요청, 이미지 조작, 텍스트 변환, 앱 제어, 스크립트 실행 등 대부분의 자동화 요구를 커버합니다.

디버깅 도구가 실용적입니다. 매크로 실행 로그를 보고 각 액션의 결과를 확인할 수 있습니다. Shortcuts의 디버깅 제약을 겪어본 사용자라면 이 차이가 크게 느껴집니다.

매크로 설계 원칙

편집팀이 매크로를 만들 때 지키는 원칙 몇 가지가 있습니다.

단일 목적. 하나의 매크로가 여러 작업을 하지 않도록. 복잡한 흐름은 여러 매크로로 나누고, 필요하면 “Execute Macro” 액션으로 연결.

명확한 이름. 매크로 이름만 보고 무엇을 하는지 파악할 수 있게. “Editorial: Export Draft to PDF” 같은 방식. 그룹 접두사가 검색을 쉽게 합니다.

실패에 대한 처리. 매크로가 실패할 수 있는 지점(파일이 없음, 특정 앱이 실행되지 않음, 네트워크 오류)을 명시적으로 처리. 조용히 실패하지 않도록 알림 표시.

단축키 예약. 자주 쓰는 매크로에만 단축키 할당. 나머지는 Keyboard Maestro의 검색 UI로 실행. 모든 매크로에 단축키를 주면 충돌하고 기억하기 어렵습니다.

텍스트 편집 매크로

Markdown Link from Clipboard. 브라우저에서 URL을 복사한 뒤 편집 중인 문서에서 이 매크로를 실행하면, “복사한 링크의 페이지 제목을 링크 텍스트로, URL을 링크 대상으로” 하는 마크다운 링크를 삽입.

구현은 이렇습니다. Get URL from Clipboard로 URL을 추출. Execute Shell Script 액션으로 curlgrep을 사용해 페이지 <title>을 파싱. Insert Text 액션으로 마크다운 형식 [제목](URL)을 삽입.

페이지 로딩 중 오류가 발생하면 제목 대신 URL 그대로 표시하도록 폴백을 넣어뒀습니다.

Smart Quote Toggle. 선택된 텍스트의 스마트 쿼트와 스트레이트 쿼트를 상호 변환. 마크다운 원고에서는 스트레이트 쿼트가 필요하지만 편집 앱에서 자동 변환되는 경우가 있어 유용.

Case Cycler. 선택된 텍스트를 lowercase → UPPERCASE → Title Case → lowercase 순으로 순환. 하나의 단축키로 반복 실행하면서 원하는 케이스를 찾을 수 있음.

앱 실행 매크로

Focus Layout. 편집 작업 시작 시 여러 앱을 특정 배치로 열고 정렬. iA Writer는 왼쪽 절반, 브라우저는 오른쪽 절반, 참조 노트는 다른 스페이스. 하나의 매크로로 작업 환경을 재구성.

Move and Resize Window 액션을 여러 번 사용해 각 창의 위치를 지정. 매크로 실행 초기에 각 앱이 실행되지 않았다면 Activate 액션으로 먼저 열고, 잠깐 대기(Pause 0.5s)한 뒤 창 조작.

End of Day Save. 하루 끝에 실행. 현재 열린 편집 중인 파일들을 저장, 브라우저 탭 스냅샷 저장, 미완료 작업을 노트에 로깅, 그리고 Focus 모드를 Off로 전환.

파일 처리 매크로

Screenshot to Editorial. 방금 찍은 스크린샷을 편집 중인 원고 폴더로 이동하고 마크다운 이미지 참조를 클립보드에 복사. 스크린샷이 데스크톱에 저장되는 기본 설정을 활용.

# Execute Shell Script 액션 안의 내용
LATEST=$(ls -t ~/Desktop/Screenshot* 2>/dev/null | head -1)
if [ -n "$LATEST" ]; then
    TARGET_DIR="$HOME/Editorial/current/images"
    mkdir -p "$TARGET_DIR"
    FILENAME=$(basename "$LATEST")
    mv "$LATEST" "$TARGET_DIR/"
    echo "![](images/$FILENAME)"
fi

이 스크립트의 출력이 Set Clipboard to Text 액션으로 이어져 클립보드에 저장됩니다.

Batch Rename. 특정 폴더의 파일들을 일괄 이름 변경. 프롬프트로 접두사와 시작 번호를 입력받아 순차 번호를 붙임. Finder의 일괄 이름 변경 기능이 있지만, 특정 워크플로우에 맞춘 명명 규칙을 매크로로 자동화할 수 있습니다.

웹 자동화 매크로

Keyboard Maestro는 직접적인 웹 브라우저 조작에는 취약합니다. 대신 Applescript나 JavaScript for Automation을 활용해 브라우저를 제어할 수 있습니다.

Extract Browser Tabs. 현재 Safari 창의 모든 탭을 마크다운 리스트로 정리. 리서치 세션 마지막에 참조 자료를 저장할 때 유용.

# Execute AppleScript 액션
tell application "Safari"
    set tabList to ""
    repeat with t in tabs of front window
        set tabList to tabList & "- [" & (name of t) & "](" & (URL of t) & ")\n"
    end repeat
    return tabList
end tell

이 스크립트의 결과가 Insert Text 액션으로 이어져 현재 커서 위치에 삽입됩니다.

매크로 그룹과 활성화 조건

Keyboard Maestro의 매크로 그룹은 특정 앱에서만 활성화되도록 설정할 수 있습니다. 편집팀은 다음 그룹으로 나누어 관리합니다.

Global. 어느 앱에서나 실행 가능한 매크로. 시스템 유틸리티, 창 관리, 텍스트 변환.

Editorial. 편집 앱(iA Writer, BBEdit, Ulysses)에서만 활성화. 마크다운 관련 매크로, 원고 처리.

Browsing. 브라우저에서만 활성화. 탭 관리, URL 조작, 페이지 처리.

Mail. 이메일 클라이언트에서만 활성화. 답장 템플릿, 이메일 아카이빙.

그룹 기반 활성화가 있으면 같은 단축키를 다른 앱에서 다른 목적으로 재사용할 수 있습니다. Command+Option+L을 편집 앱에서는 “링크 삽입”으로, 브라우저에서는 “북마크 저장”으로.

변수와 상태 관리

Keyboard Maestro의 변수 시스템으로 매크로 사이에서 상태를 공유할 수 있습니다.

Local Variables. 매크로 실행 중에만 유지. 단일 매크로 내에서 임시 값 저장.

Instance Variables. 매크로가 다른 매크로를 호출할 때 전달. 연쇄 매크로에서 유용.

Global Variables. 세션 전체에서 유지. 매크로 사이의 상태 공유.

Password Variables. 암호로 저장, 로그에 노출되지 않음. API 키 같은 민감한 값에 사용.

디버깅과 로깅

Keyboard Maestro Editor에서 매크로를 열어두고 실행하면 각 액션의 실행 결과를 볼 수 있습니다. 이 방식이 초기 개발에는 유용하지만, 실제 사용 중 발생하는 문제 진단에는 로그 파일이 더 유용합니다.

Preferences > General > Log Level을 “Notification”에서 “Informational” 또는 “Debug”로 올리면 상세 로그가 저장됩니다. 로그 파일은 ~/Library/Application Support/Keyboard Maestro/Keyboard Maestro Engine.log.

단축키 충돌 관리

매크로 수가 늘어나면 단축키 충돌이 발생합니다. Keyboard Maestro는 같은 단축키가 여러 매크로에 할당되어 있어도 활성화 조건에 따라 다르게 실행되므로, 그룹별 활성화 조건을 잘 설정하면 충돌이 없습니다.

단축키를 기억하기 어려운 경우 Keyboard Maestro의 검색 UI(기본 Command+Option+Space)로 이름 검색을 통해 실행할 수 있습니다. 자주 쓰지 않는 매크로는 단축키를 할당하지 말고 이 검색 UI만 남기는 것도 관리 부담을 줄이는 방법입니다.

다른 도구와의 비교

Shortcuts는 iCloud 동기화와 시스템 통합이 강점이지만, 복잡한 조건 처리와 반복문에서 Keyboard Maestro가 앞섭니다.

Alfred의 워크플로우는 Keyboard Maestro와 겹치는 영역이 많지만, Keyboard Maestro가 트리거와 액션의 다양성에서 앞섭니다. Alfred가 검색 중심이라면 Keyboard Maestro는 자동화 중심입니다.

AppleScript와 JavaScript for Automation은 더 세밀한 제어가 가능하지만 시각적 UI가 없어 유지보수가 어렵습니다. Keyboard Maestro 안에서 필요한 부분만 스크립트로 처리하는 하이브리드 방식이 편집팀의 접근입니다.

결론

Keyboard Maestro는 세밀한 자동화가 필요한 사용자에게 어울리는 도구입니다. Shortcuts나 Raycast로 충분한 사용자에게는 오버킬일 수 있습니다.

도입 시 참고할 점은 처음부터 많은 매크로를 만들지 말고, 반복되는 특정 작업을 하나씩 매크로화하면서 자연스럽게 라이브러리를 키우는 것입니다. 매크로 수 자체가 목표가 되면 오히려 유지보수 부담이 됩니다.