멈춘 Swift 빌드와 테스트를 찾아내는 메뉴 막대 앱 Birdwatch
Agents get stuck. So I built a menu bar app that shows which Swift build or test is stuck, and why
핵심 요약
- Birdwatch는 프로젝트별 Swift·Xcode 프로세스를 메뉴 막대에 표시하고, 멈춘 프로세스를 표시한 뒤 원인 설명과 종료 기능을 제공한다.
- 멈춘 이유는 Apple 기기의 온디바이스 모델이 설명하며, 설명이 틀릴 수 있다. Apple Intelligence를 사용할 수 없으면 스택 샘플을 대신 표시한다.
- macOS 27.2 이상 및 Apple silicon Mac이 필요하다. 14일 무료 체험 후 라이선스 키가 필요하며, 앱은 다른 프로세스를 읽고 신호를 보내므로 샌드박스 처리되지 않는다.
도입
Birdwatch는 Swift 빌드와 테스트 등 Swift·Xcode 프로세스가 멈췄는지 확인하고 대응하는 macOS 메뉴 막대 앱이다. 프로세스를 프로젝트별로 보여주고, 멈춘 항목을 표시하며, 멈춘 이유를 설명하고 종료할 수 있다. 설명 생성에는 Apple의 온디바이스 모델을 사용하지만, 모델의 설명이 틀릴 수 있다는 제한도 명시한다.
상세 요약
기능
Birdwatch는 메뉴 막대에서 Swift와 Xcode 프로세스를 프로젝트별로 보여준다. 멈춘 프로세스는 별도로 표시하고, 멈춘 이유를 설명하며, 해당 프로세스를 종료할 수 있다. 따라서 앱이 제공하는 기능은 프로세스 확인, 멈춤 상태 식별, 원인 설명, 종료로 나뉜다.
멈춤 원인 표시
원인 설명은 Apple의 온디바이스 모델이 작성한다. 설명이 틀릴 수 있다는 점이 안내되어 있다. Apple Intelligence를 사용할 수 없는 환경에서는 설명 대신 스택 샘플을 표시한다. 즉, 멈춤 원인을 자연어로 확인하는 기능과 스택 샘플을 보는 기능은 Apple Intelligence 사용 여부에 따라 달라진다.
요구 환경과 프로세스 접근
- macOS 27.2 이상이 필요하다.
- Apple silicon이 탑재된 Mac에서 실행해야 한다.
- 앱은 다른 프로세스를 읽고 신호를 보낸다. 이 때문에 샌드박스 처리되지 않는다.
프로세스를 읽고 신호를 보내는 접근 방식은 제품의 주요 기능과 연결되어 있지만, 앱이 샌드박스되지 않는다는 점도 함께 고려해야 한다.
가격과 설치
Birdwatch는 계정 없이 14일 동안 무료로 체험할 수 있다. 체험 기간 이후에는 Mac에서 확인되는 라이선스 키가 필요하다. 가격은 1회 €19이며, 미국 가격은 $19다. 가격 안내에는 VAT가 포함되어 있다. 구매에는 12개월 업데이트가 포함되고, 보안 수정은 최소 5년간 제공된다고 안내한다. 해당 기간 이후에도 사용자의 기존 버전은 계속 작동한다.
Homebrew로 설치할 때는 다음 명령을 사용한다.
brew install coenttb/tap/birdwatch
도입 전에 확인할 사항은 필요한 macOS 버전과 기기 종류, 온디바이스 모델 설명의 한계, 다른 프로세스에 대한 접근 권한이다.
결론
Birdwatch의 핵심은 프로젝트별 프로세스 확인, 멈춤 원인 설명, 프로세스 종료를 한곳에서 제공하는 데 있다. 다만 설명은 온디바이스 모델이 생성해 정확하지 않을 수 있고, Apple Intelligence가 없으면 스택 샘플만 표시된다. macOS 27.2 이상과 Apple silicon이 필요하며, 다른 프로세스에 접근하고 신호를 보내므로 샌드박스 처리되지 않는다.