iOS 개발자라면 시뮬레이터를 자주 사용하게 됩니다. 그러나 Xcode를 통해 시뮬레이터를 제어하는 과정은 번거롭고 비효율적일 수 있습니다. 특히 여러 디바이스에서 동시에 테스트를 진행해야 할 때, 여러 번의 클릭과 설정이 필요하게 되죠. 이런 문제를 해결하기 위해 개발된 것이 바로 Baguette입니다. 이 오픈소스 프로젝트는 헤드리스로 iOS 시뮬레이터를 관리하고 조작할 수 있는 강력한 도구입니다.
Baguette의 주요 기능
Baguette는 다음과 같은 주요 기능을 제공합니다:
- 헤드리스 제어: Baguette는 Xcode나 Simulator.app을 열지 않고도 iOS 시뮬레이터를 제어할 수 있도록 해줍니다. 커맨드라인 인터페이스(CLI)와 웹 UI를 통해 다양한 작업을 수행할 수 있습니다.
- 고속 스트리밍: 시뮬레이터의 화면을 60 fps로 스트리밍할 수 있어, 실시간으로 변경 사항을 확인할 수 있습니다.
- 터치 및 제스처 지원: 탭, 스와이프, 멀티핑거 제스처 등 다양한 사용자 입력을 시뮬레이터에 전달할 수 있습니다. 이는 UI 테스트에 매우 유용합니다.
- 스크린샷 및 비디오 녹화: 필요할 때 쉽게 스크린샷을 찍거나 화면을 녹화할 수 있어, 테스트 결과를 기록하고 공유하는 데 유리합니다.
- 다양한 기기 지원: 여러 기기를 동시에 부팅하고 관리할 수 있어, 여러 환경에서의 테스트가 용이합니다.
- 자동화된 UI 테스트: 여러 디바이스에서 동시에 UI 테스트를 진행하고 결과를 기록할 수 있습니다. Baguette를 사용하면 스크립트를 통해 반복적인 작업을 자동화할 수 있습니다.
- 상황별 테스트: 다양한 네트워크 상태나 위치 정보, 기기 모션 등의 변수를 시뮬레이터에 주입하여, 다양한 상황에서 앱의 동작을 확인할 수 있습니다.
- 팀 협업: 개발팀에서 Baguette를 이용해 테스트 결과를 쉽게 공유할 수 있으며, 이는 팀원 간의 소통을 원활하게 만들어 줍니다.
- Appium: 다양한 플랫폼에서의 자동화 테스트를 지원하지만, 설정이 복잡하고 iOS 전용 기능은 제한적입니다.
- XCUITest: Apple의 공식 테스트 프레임워크로, iOS 앱의 UI 테스트에 최적화되어 있지만, 헤드리스 모드에서 실행할 수는 없습니다.
설치 방법
Baguette는 Homebrew를 사용하여 간편하게 설치할 수 있습니다. 설치 방법은 다음과 같습니다:
brew install baguette
Apple Silicon을 사용하는 경우, Xcode 26과 함께 제공되는 SimulatorKit 및 CoreSimulator 프레임워크를 링크합니다. 설치 중 문제가 발생할 경우, [Troubleshooting 가이드](CONTRIBUTING.md#troubleshooting-the-homebrew-install)를 참조하세요.
빠른 시작 가이드
Baguette를 설치한 후, 간단한 명령어로 시뮬레이터를 조작할 수 있습니다. 시작하기 위한 기본적인 과정은 다음과 같습니다:
# Baguette 웹 UI 시작
baguette serve # 웹 UI는 http://127.0.0.1:8421/simulators 에서 확인 가능
open http://localhost:8421/farm # 부팅된 모든 시뮬레이터를 나란히 보기
# 시뮬레이터 목록 확인
baguette list
# 특정 UDID의 시뮬레이터 부팅
baguette boot --udid <UDID>
# 특정 위치에서 탭 입력
baguette tap --udid <UDID> --x 219 --y 478 --width 438 --height 954
# UI 상태 확인
baguette describe-ui --udid <UDID>
# App Store 사이즈의 스크린샷 및 비디오 녹화
baguette screenshot --udid <UDID> --size appstore-6.9 --output hero.png
baguette record --udid <UDID> --size appstore-6.9 --duration 10 --output demo.mp4
위 명령어는 Baguette를 이용한 기본적인 작업 흐름을 보여줍니다. UDID는 시뮬레이터의 고유 식별자로, baguette list 명령어를 통해 확인할 수 있습니다. 각 명령어에서 사용하는 좌표는 디바이스 포인트 단위이며, --width 및 --height는 화면 크기를 나타냅니다.
실무에서의 활용 시나리오
Baguette는 iOS 앱을 개발하고 테스트하는 과정에서 매우 유용하게 활용될 수 있습니다. 예를 들어, 다음과 같은 시나리오를 생각해볼 수 있습니다:
비슷한 도구와의 비교
Baguette와 비슷한 도구로는 Appium과 XCUITest가 있습니다.
Baguette는 이러한 도구들과 비교했을 때, iOS 시뮬레이터를 헤드리스로 관리할 수 있는 점에서 독특한 장점을 가지고 있습니다.
마무리
Baguette는 iOS 개발에 있어 필수적인 도구 중 하나로 자리 잡을 가능성이 높습니다. Xcode 없이도 손쉽게 시뮬레이터를 제어할 수 있는 강력한 기능을 제공하며, 개발자들에게 많은 시간과 노력을 절약해 줄 것입니다. iOS 개발자라면 꼭 한번 사용해보시기를 추천합니다!
더 자세한 정보는 Baguette GitHub 페이지에서 확인하실 수 있습니다.