[Claude Code] harness vs 순수 Claude Code: macOS Dynamic Island 앱을 만들기

2026. 5. 28. 17:45·Develop/기타
728x90
반응형

Claude Code의 harness(에이전트 팀 구조)가 순수 Claude Code 대화보다 실제로 얼마나 빠르고 좋은 결과를 낼까?
직접 실험해봤다. 

 

실험 배경

Claude Code를 쓰다 보니 자연스럽게 생기는 의문이 있었다. 

"harness(CLAUDE.md + 에이전트 팀 + 스킬)를 미리 잘 설계해두면 진짜 더 잘 만들어줄까? 아니면 그냥 프롬프트 한 방이 낫나?"

이 질문에 답하기 위해 동일한 앱을 두 가지 방식으로 동시에 만들어보는 실험을 설계했다. 

마침 만들고 싶었던 앱이 있어서 같은 앱을 어떻게 만들어내는지 비교하고자 했다.

 

 

harness Github 주소: https://github.com/revfactory/harness

 

GitHub - revfactory/harness: A meta-skill that designs domain-specific agent teams, defines specialized agents, and generates th

A meta-skill that designs domain-specific agent teams, defines specialized agents, and generates the skills they use. - revfactory/harness

github.com

 

만들려고 한 것

macOS 노치 위에 Dynamic Island 스타일 AI 상태 오버레이

  • 노치 위에 검정색 NSWindow
  • Claude 활성 시 compact 인디케이터 상시 표시
  • 마우스 호버 → spring 애니메이션으로 확장
  • 마우스 이탈 → 자동 축소
  • 확장 시 Claude 사용량(%), 티어(MAX/PRO), 새로고침 버튼 표시
  • Claude뿐 아니라 Codex, Cursor 등 다양한 AI Provider를 추가할 수 있는 플러그인 구조

마일스톤은 M1(빌드 성공)부터 M7(MockCodexProvider로 확장성 검증)까지 7단계로 정의했다. 

 

두 가지 접근 방식

vanilla

  • 순수 Claude Code CLI (claude --dangerously-skip-permissions)
  • CLAUDE.md 없음, 에이전트 정의 없음, 스킬 없음
  • 빈 SPM 프로젝트에서 시작

revfactory (harness)

  • CLAUDE.md에 7개 에이전트 팀 사전 정의
    • notch-orchestrator, swift-architect, plugin-engineer, animation-engineer, ui-composer, system-integrator, qa-verifier
  • 6개 도메인별 스킬 파일 (build-run, plugin-scaffold, animation-design 등)
  • 동일한 SPM 구조에서 시작 (스캐폴드 포함)

두 세션을 동시에 실행해서 총 소요 시간을 실시간으로 비교했다. 

 

결과

타임라인 비교

이벤트 vanilla revfactory
세션 시작 15:59:30 15:59:34
M1 첫 빌드 성공 16:09:23 (+9분 53초) 15:59:49 (+15초)
M2~M7 전부 달성 16:25:58 16:07:55
육안 확인 완료 16:25:58 16:27:56
총 소요 시간 26분 28초 28분 22초

revfactory는 기존 스캐폴드 코드 덕분에 첫 빌드를 15초 만에 성공했다. 반면 vanilla는 약 10분이 걸렸다. 

하지만 결승선을 통과한 건 vanilla가 먼저였다. 육안 확인까지 포함하면 총 시간 차이는 2분도 안 된다. 

 

코드 규모

항목 vanilla revfactory
총 LOC 293줄 1,272줄
Swift 파일 수 7개 20개
빌드 에러 2건 1건
구현 중 버그 수정 2건 4건

에이전트 팀이 역할별로 파일을 분리하고 프로토콜·레이어를 추가해서 revfactory가 4.3배 더 많은 코드를 생성했다. 

 

버그 내역

vanilla (빌드 에러 2건)

회차 원인 해결
#1 Swift 6 concurrency — any AIProvider가 non-Sendable로 Task 클로저에 전달 불가 AIProvider에 @MainActor 추가
#2 Info.plist를 .copy 리소스로 등록 시 SPM이 거부 .exclude로 전환

 

revfactory (구현 중 버그 4건)

  1. AnimationStateMachine 알림 미발송 → $overlaySize.sink 추가
  2. NSWindowController cascade 덮어쓰기 → shouldCascadeWindows = false + 지연 재배치
  3. NSHostingView 불투명 배경 → wantsLayer = true, layer.backgroundColor = .clear
  4. compact view usage 변경 미반영 → @ObservedObject 래퍼 추가

 

최종 결과물 비교

vanilla

  • 창 형태: 전체 너비 검정 바 (pill 미구현)
  • compact 상태: 흰 점 인디케이터
  • 확장 UI: Usage/Tier/Window/새로고침 버튼 — 실제 Claude 데이터 연동
  • 기능 완성도: 높음
  • 시각 디자인: 다소 아쉬움

revfactory

  • 창 형태: 완벽한 pill 형태 (Dynamic Island처럼 둥근 모양)
  • compact 상태: 오렌지 점 + 73% 사용량 표시
  • 확장 UI: 구현됨
  • 시각 디자인: 높음
  • 기능 완성도: 낮음(창 위치와 마우스 호버시 확장되는 윈도우 깨짐)

 

분석

harness가 빠른 건 맞다 — 단, 초반에만

revfactory의 첫 빌드 15초는 인상적이다. 하지만 그건 스캐폴드가 이미 존재했기 때문이고, 이후 4건의 버그 수정이 그 시간을 잡아먹었다. 총합이 거의 같아진 이유이다. 

많은 코드 ≠ 좋은 코드

revfactory는 293줄짜리 문제를 1,272줄로 풀었다.

에이전트 팀이 역할을 분리하고 추상화 레이어를 추가한 결과다.

이게 좋은 설계일 수도 있지만, 단기 실험 기준으론 오버엔지니어링이다. 

각자 잘하는 게 달랐다

  • revfactory → UI/UX 형태 (pill 디자인, 컬러 인디케이터)
  • vanilla → 실제 기능 연동 (Claude API 데이터 끌어오기)

harness가 UI 컴포넌트 설계에 더 집중하고, vanilla는 "어쨌든 동작하게" 만드는 방향으로 수렴한 것 같다. 

 

결론

상황 추천 방식
빠르게 PoC 만들기 vanilla
팀 규모 확장, 장기 프로젝트 revfactory (harness)
반복 작업, 패턴이 명확한 도메인 revfactory (스킬 재사용 효과)
기능 연동, 데이터 파이프라인 vanilla

harness의 진짜 가치는 속도보다 재사용성에 있는 것 같다.

이번처럼 단발성 실험에서는 vanilla와 큰 차이가 없지만, 동일한 스킬과 에이전트 정의를 여러 프로젝트에 반복 적용하면 누적 이득이 커질 수 있지 않을까 예상한다. 

 
728x90
반응형

'Develop > 기타' 카테고리의 다른 글

[Claude Code] AI와 함께 macOS 알림 배너 툴 만들기 — 실패와 재시도에서 배운 것들  (0) 2026.05.27
'Develop/기타' 카테고리의 다른 글
  • [Claude Code] AI와 함께 macOS 알림 배너 툴 만들기 — 실패와 재시도에서 배운 것들
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • 전체
    오늘
    어제
    • 전체 글 (172)
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • Develop (24)
        • Spring (9)
        • Java (12)
        • Python (0)
        • Algorithm (0)
        • 기타 (2)
      • PS (39)
        • C++ (39)
        • Java (0)
      • TIL (61)
      • Book (39)
        • 자바의 신 (32)
        • 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (7)
      • ETC (4)
        • Blog (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바의 신
    EC2
    자바
    aws
    스터디
    boj
    GodOfJava
    에스넷시스템
    백준
    알고리즘
    멀티캠퍼스it부트캠프
    1일1백준
    객체지향
    C++
    클라우드 활용 네트워크 엔지니어 부트캠프
    Java
    에스넷시스템 부트캠프
    부트캠프후기
    TiL
    스프링 입문
  • 최근 댓글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
yulee_to
[Claude Code] harness vs 순수 Claude Code: macOS Dynamic Island 앱을 만들기
상단으로

티스토리툴바