단축어 및 AppleScript
JPGBoost는 macOS의 네이티브 자동화 도구와 연동됩니다. 단축어와 Spotlight에서 네이티브 동작을 사용할 수 있으며, AppleScript와 Automator에는 compress 명령이 제공됩니다.
이 기능은 JPGBoost Free와 Pro 모두에서 사용할 수 있습니다. Free에서는 처리한 모든 이미지가 일일 한도(하루 50장, 파일당 5 MB)에 포함됩니다. JPGBoost Pro는 두 제한을 모두 없앱니다.
자동화의 두 가지 방법
JPGBoost는 macOS 네이티브 자동화 인터페이스 두 가지를 제공합니다. 둘 다 독립적인 처리로 작동합니다. 파일과 설정을 입력으로 받아 압축된 파일을 출력으로 반환하며, 그 시점에 앱 창에서 열려 있는 목록과는 무관합니다.
- 단축어 앱과 Spotlight를 위한 App Intents.
osascript, 스크립트 편집기, Automator를 위한 AppleScript.
앱을 열어 둘 필요가 없습니다
이는 둘 다 앱이 이미 실행 중이어야 하는 로컬 API 및 감시 폴더와의 주요 차이점입니다.
단축어 동작을 통해서든 AppleScript의 compress 명령을 통해서든, 요청이 도착하면 macOS는 다른 스크립트 지원 앱과 마찬가지로 JPGBoost를 자동으로 다시 실행합니다. 이전에 앱을 명시적으로 종료했더라도 아무것도 할 필요가 없습니다.
유일하게 눈에 보이는 영향은 앱이 아직 열려 있지 않았을 때 실행에 걸리는 약간의 지연뿐입니다. 처리가 끝나도 앱은 계속 열려 있습니다. macOS가 자동으로 닫지 않습니다.
"이미지 압축" 동작
이 동작은 앱이 한 번이라도 실행되면 단축어 앱의 JPGBoost 카테고리에 자동으로 나타납니다. 별도의 설정은 필요하지 않습니다.
- 단축어 앱을 열고 단축어를 만듭니다.
- 파일 선택이나 폴더 콘텐츠 가져오기처럼 파일을 제공하는 동작을 추가합니다.
- JPGBoost의 이미지 압축 동작을 추가합니다.
- 원하는 매개변수를 입력합니다. 비워 둔 항목은 내보내기 프로필로 보완할 수 있습니다.
- 필요하다면 이후에 다른 동작을 연결합니다. 이 동작은 압축된 파일을 반환합니다.
| 매개변수 | 기능 | 필수 여부 |
|---|---|---|
| Input Files | 압축할 이미지 | 예 |
| Output Format | 원하는 출력 포맷 | 아니요 |
| Quality | 1에서 100까지의 화질 | 아니요 |
| Export Profile | 기존 내보내기 프로필의 이름 | 아니요 |
| Destination Folder | 출력 폴더(아래 참고 사항 확인) | 아니요 |
"Destination Folder" 필드
이 부분이 가장 많은 혼란을 일으키는 지점입니다. Destination Folder 필드는 단축어 편집기에서 올바르게 입력하기가 어렵습니다. 신뢰할 수 있는 해결책은 내보내기 프로필을 사용하는 것입니다.
이 필드는 단순한 텍스트가 아니라 file://로 시작하는 경로, 즉 URL 형식의 실제 폴더 참조(예: file:///Users/me/Downloads/)를 요구합니다. 다음 방법들은 Invalid URL 오류와 함께 실패합니다:
/Users/me/Downloads처럼 경로를 직접 입력하기;- Finder에서 폴더를 필드로 드래그하기(단순 텍스트만 입력됨).
macOS의 단축어 편집기에는 다른 방식으로 구성할 수 있는 "폴더 선택"과 같은 네이티브 동작도 없습니다.
사례 1: 만들 필요 없는 단축어
JPGBoost가 한 번이라도 실행되면, 앱이 스스로 선언하는 일반 문구("JPGBoost로 이미지 압축", "JPGBoost로 압축")는 단축어 앱을 전혀 열지 않고도 Spotlight에서 곧바로 인식됩니다.
이 순수한 호출은 선택된 파일만 전달합니다. 다른 매개변수는 전혀 제공되지 않으므로, 아래 설정을 마치기 전까지는 "대상 폴더 없음" 오류가 발생합니다.
이 호출이 작동하려면:
- JPGBoost에서 설정 → 프로필을 열고, 대상 폴더가 설정된 프로필을 기본 프로필로 설정합니다.
- Finder에서 압축할 이미지를 선택합니다.
⌘Space를 누른 다음, "이미지 압축"이라고 입력합니다.
그러면 JPGBoost가 기본 프로필을 기반으로 누락된 매개변수, 특히 대상 폴더, 포맷, 화질을 자동으로 채워줍니다.
단축어 앱에서 단축어를 만들 필요는 없습니다.
사례 2: 단축어를 만든 경우
이 방식은 서로 다른 이름으로 여러 동작을 사용해야 할 때 유용합니다. 예를 들어 "데스크탑으로 압축"은 한 프로필을 사용하고, "보관용으로 압축"은 다른 프로필을 사용할 수 있습니다. 사례 1의 기본 프로필로는 한 번에 하나의 동작만 처리할 수 있습니다.
- JPGBoost에서 설정 → 프로필을 열고, 앱의 네이티브 선택기로 선택한 대상 폴더가 포함된 프로필을 만듭니다.
- 단축어 앱에서 새 단축어를 만들고, 예를 들어 "데스크탑으로 압축"처럼 명확한 이름을 붙입니다.
- 단축어의 JPGBoost 동작에서는 사용할 프로필의 이름으로 Export Profile만 입력합니다. Destination Folder는 비워 두세요: 프로필에 설정된 폴더가 자동으로 사용됩니다.
- 이렇게 하면 단축어는 JPGBoost가 선언하는 일반 문구 대신, 직접 지정한 이름으로 Spotlight에 나타납니다.
Spotlight
이 동작은 Spotlight에서도 접근할 수 있습니다. "JPGBoost로 이미지 압축"과 같은 활성화 문구는 지원되는 15개 언어로 모두 번역되어 있습니다.
동작의 제목, 설명, 매개변수, 오류 메시지는 JPGBoost 창 자체에 선택된 언어와 관계없이, 이를 표시하는 도구(단축어 또는 Spotlight)의 언어를 따릅니다.
AppleScript
compress 명령은 다른 스크립트 지원 앱과 마찬가지로 사용합니다.
tell application "JPGBoost"
compress {"/path/to/image1.png", "/path/to/image2.jpg"} ¬
to "/path/to/output" format "webp" quality 80
end tell
to, format, quality 매개변수는 선택 사항입니다. profile 매개변수는 이를 대체하거나 이들이 다루지 않는 부분을 보완할 수 있으며, 명령줄의 --profile과 정확히 동일하게 작동합니다.
tell application "JPGBoost"
compress {"/path/to/image.png"} profile "Web JPEG"
end tell
이 명령은 JSON 문자열을 반환합니다. 파일마다 하나의 객체가 있으며, path, originalSizeBytes, compressedSizeBytes, ratio, destination, error 필드를 포함합니다. 이는 CLI의 --json 출력 및 로컬 API의 응답과 동일한 형식입니다.
터미널에서
osascript -e 'tell application "JPGBoost" to compress {"/path/image.png"} profile "Web JPEG"'
Automator에서
AppleScript 실행 동작을 사용해 동일한 tell 블록을 붙여넣으세요. 이를 통해 Finder의 상황에 맞는 메뉴에서 접근할 수 있는 서비스를 만들 수 있습니다.
"자동화" 권한
처음 한 번, macOS는 익숙한 "자동화" 권한 경고를 표시합니다. 명령을 보내는 앱(스크립트 편집기, Automator, 단축어)이 JPGBoost를 제어하려고 한다는 내용입니다. 허용을 클릭하세요. 이 권한은 한 번만 요청됩니다.
문제 해결
| 증상 | 원인 | 해결 방법 |
|---|---|---|
| 대상 폴더에서 Invalid URL | 필드가 폴더 참조 대신 텍스트를 받음 | 대상 폴더가 지정된 내보내기 프로필을 사용하고 필드는 비워 두세요 |
| 동작이 단축어 앱에 나타나지 않음 | 앱이 한 번도 실행된 적이 없음 | JPGBoost를 한 번 실행한 다음 단축어를 다시 여세요 |
| 동작이 할당량 메시지와 함께 실패함 | JPGBoost Free의 일일 한도(50장)에 도달했거나 파일이 5 MB를 초과함 | 자정 초기화를 기다리거나, JPGBoost Pro로 전환해 두 제한을 모두 해제하세요 |
| AppleScript 명령이 오류를 반환함 | 자동화 권한이 거부됨 | 시스템 설정 → 개인정보 보호 및 보안 → 자동화를 확인하세요. Free 한도로 인한 거부는 배치를 중단하지 않고, 반환되는 JSON에 파일별로 표시됩니다 |