본문으로 건너뛰기

RocketTrace로 Xcode Instruments 분석을 AI 에이전트에 연결하기

Introducing RocketTrace: Using Xcode Instruments with AI Agents

www.avanderlee.com

핵심 요약

  1. RocketTrace는 Instruments 기록을 로컬에서 분석해 측정 근거가 포함된 성능 문제를 영향도순으로 정리하고, AI 에이전트가 읽을 간결한 결과를 제공합니다.
  2. 벤치마크에서 두 모델은 RocketTrace를 사용해 더 많은 문제를 찾고 토큰을 약 6분의 1로 줄였으며, 분석 시간도 대략 절반으로 단축했습니다.
  3. 에이전트는 CLI와 Agent Skill로 기록을 시작하고 결과를 단계별로 조회할 수 있습니다. 완전한 분석을 위해서는 상위 항목에 그치지 않고 모든 finding을 읽어야 합니다.

도입

Xcode Instruments의 .trace 파일에는 CPU 샘플, hang, hitch, Swift task, SwiftUI 업데이트 등 여러 표의 데이터가 담겨 있어 AI 에이전트가 직접 조사하면 많은 내용을 컨텍스트에 읽어야 합니다. RocketTrace는 기록을 Mac에서 분석해 영향도순 finding과 근거를 제공하고, 이를 에이전트가 처리할 수 있는 간결한 결과로 전달합니다. 기존 trace를 가져오거나 앱을 직접 기록할 수 있습니다.

상세 요약

RocketTrace가 처리하는 부분

Xcode Instruments의 .trace는 CPU 샘플, hang, hitch, Swift task, SwiftUI 업데이트, 파일 활동 등 여러 표가 들어 있는 패키지입니다. 에이전트가 Apple 명령줄 도구로 표를 하나씩 내보내 분석하면 출력이 커지고, 필터링과 보조 스크립트 작성도 반복됩니다. 벤치마크에서 RocketTrace를 쓰지 않은 조사는 중앙값 기준 180만210만 토큰과 1012분이 걸렸습니다.

RocketTrace는 앱을 직접 기록하거나 기존 Instruments trace를 가져와 분석합니다. macOS 앱, Simulator, 실제 iOS·iPadOS 기기를 지원합니다. 기록 결과는 측정된 영향도에 따라 정렬되고, 각 finding에는 대표 근거가 붙습니다. 현재 6개 범주에서 42개 이상의 성능 문제를 감지합니다.

  • CPU hotspot과 낭비되는 작업: 15종
  • hang과 무응답: 9종
  • Swift Concurrency 문제: 8종
  • SwiftUI 업데이트와 redraw: 7종
  • 애니메이션 hitch와 스크롤: 2종
  • 앱 실행: 1종

기록, 파싱, 분석은 선택한 Xcode 버전을 사용해 Mac에서 로컬로 실행됩니다. 클라우드 계정이나 자동 업로드는 없습니다. trace 내용은 사용자가 피드백 보고서에 직접 첨부할 때만 Mac 밖으로 전송됩니다.

에이전트에 결과 전달하기

각 finding에서 Agent Prompt를 열어 해당 문제에 초점을 맞춘 브리프를 복사할 수 있습니다. Fix with your agent 프롬프트는 코드 변경 전에 계획을 검토하는 승인 단계를 요청합니다. 또는 Settings → CLI & Agent에서 rockettrace 명령과 Agent Skill을 설치하면 에이전트가 직접 기록하고 결과를 조회할 수 있습니다.

rockettrace status
rockettrace builds
rockettrace record start <build-id> --label "Checkout"
rockettrace record stop --wait
rockettrace results get <result-id> --brief
rockettrace results get <result-id> --findings --compact
rockettrace results get <result-id> --finding <finding-id>

각 명령은 ok 필드가 있는 JSON envelope 하나를 반환합니다. CLI는 실행 중인 RocketTrace 앱과 통신하므로 에이전트 작업 중 앱을 열어 둬야 합니다. --brief, --compact 등의 옵션으로 결과의 상세도를 조절할 수 있습니다. 수정 후 같은 결과에 새 실행을 추가하면 finding이 계속 나타나는지 근거로 확인할 수 있습니다.

RocketTrace는 MCP 서버 대신 CLI와 Agent Skill을 제공합니다. 본문은 MCP 도구의 이름, 설명, 입력 스키마가 세션마다 컨텍스트에 들어가는 점을 이유로 듭니다. CLI와 Skill은 필요할 때 사용되며, 에이전트가 결과 중 읽을 범위도 선택할 수 있습니다. RocketSim CLI와 함께 사용하면 에이전트가 iOS Simulator를 제어하며 성능 개선 작업을 진행할 수 있습니다. 두 도구의 결합 사례는 RocketSim과 RocketTrace로 구현하는 에이전트 기반 iOS 개발에서 다룹니다.

벤치마크 결과와 한계

벤치마크는 같은 고정 trace와 프롬프트를 두 모델에 제공하고, Apple 도구만 사용한 경우와 RocketTrace를 사용한 경우를 비교했습니다. 대상 trace에는 main thread, 파일 I/O, SwiftUI, Swift Concurrency, threading 관련 실제 문제 20개와 오해를 유발하는 decoy 6개가 포함됐습니다. 각 수치는 모델별 3회 실행의 중앙값입니다.

모델 발견한 문제(20개 중, 미사용/사용) 오탐(미사용/사용) 토큰(미사용/사용) 시간(미사용/사용)
Claude Opus 5.5 12 / 19 1 / 0 1,765,732 / 312,424 9분 54초 / 4분 45초
GPT-5.6 Sol 6 / 14 0 / 0 2,071,877 / 322,383 11분 45초 / 5분 7초

RocketTrace를 사용한 두 모델은 더 많은 문제를 발견했고 토큰은 약 5.7~6.4배 적게 사용했습니다. 전체 시간에는 중앙값 223초의 RocketTrace 가져오기·분석 시간이 포함됐으며, 에이전트 세션 자체는 약 1.5분이었습니다. RocketTrace는 해당 trace에서 29개 finding을 보고했고, 정답 목록의 20개 중 19개가 포함됐습니다.

원시 데이터만 조사한 에이전트는 눈에 띄는 main-thread 문제는 찾았지만, 재개되지 않는 continuation이나 반복되는 main-actor 업데이트처럼 Swift Tasks, Swift Actors, SwiftUI 영역에 근거가 있는 문제 대부분을 놓쳤습니다. 반대로 RocketTrace 사용 여부와 관계없이 에이전트가 모든 finding을 읽지 않으면 일부를 놓칠 수 있습니다. 이 비교는 RocketTrace 제작자가 만든 앱의 단일 trace에 한정되며, 다른 앱에 대한 결과를 보장하지 않습니다.

RocketTrace는 Mac App Store에서 무료로 내려받을 수 있고, 첫 3회 분석이 포함됩니다. 이후에는 RocketTrace Pro로 업그레이드할 수 있습니다. 원문은 10월 13일까지 구독하면 10월 14일 이후 가격보다 약 30% 낮은 가격을 구독 유지 기간 동안 적용한다고 안내합니다.

결론

벤치마크의 두 모델은 RocketTrace를 사용했을 때 더 많은 이슈를 찾고 토큰을 약 6배 적게 사용했으며, 완료 시간도 약 절반으로 줄었습니다. 다만 이는 RocketTrace 제작자가 만든 앱의 단일 trace를 대상으로 한 비교입니다. 에이전트가 결과를 일부만 읽으면 발견을 놓칠 수 있으므로 모든 finding을 검토하도록 요청해야 합니다. 기록과 분석은 로컬에서 이뤄지며 trace는 피드백에 첨부할 때만 Mac 밖으로 전송됩니다.