TRENDSHIFT 딥다이브 · 2026-06-27

stablyai/orca 딥다이브
— 혼자서 다섯 AI 에이전트를 동시에 부리는 병렬 오케스트레이터

Orca는 ADE(Agent Development Environment, 에이전트 개발 환경)다. 쉽게 말하면, 코딩 에이전트(Claude Code·Codex·Gemini 등)를 여러 개 동시에 띄워 각자 다른 격리된 작업 공간(Git 워크트리)에서 일하게 하고, 그 결과를 한 화면에서 비교·병합하는 에이전트 함대 지휘소다. 데스크탑(Electron·macOS/Windows/Linux)과 모바일(React Native·iOS·Android) 앱이 짝을 이루며, orca orchestration CLI로 에이전트 간 메시지·태스크·완료 신호까지 구조화된 방식으로 조율한다. (저장소: stablyai/orca · Electron + React + React Native · MIT 라이선스 · ★7,900+ · TrendShift Daily #23 · 2026-03-17 공개, 매일 릴리스)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 시스템 요구사항 · 설치
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1 프로젝트 한줄 요약

ADE · 병렬 에이전트 · fleet
한줄 요약

코딩 에이전트가 여러 마리인데, 지휘봉이 없었다 — Orca가 그 지휘소다

음악 오케스트라를 떠올려 보세요. 바이올린·첼로·트럼펫이 따로따로 연습하면 소음이지만, 지휘자가 악보와 큐(cue)를 주면 곡이 됩니다. Orca는 Claude Code·Codex·Gemini 같은 코딩 에이전트들을 악단원으로, 사용자를 지휘자로 세우는 앱입니다. 각 에이전트는 자기만의 격리된 Git 브랜치(워크트리)에서 "이 버그를 고쳐봐" 같은 지시를 동시에 수행하고, 결과를 한 화면에서 비교·병합합니다.

더 정확히는, Orca가 내세우는 개념인 ADE(Agent Development Environment)는 IDE처럼 에이전트 '팀'을 위한 개발 환경입니다. 코드 편집기, 터미널, 브라우저, 깃 뷰어, 모바일 컴패니언 앱까지 하나의 틀 안에 묶여 있습니다.

용어 풀이
ADE — Agent Development Environment
에이전트 개발 환경. IDE(개발자 도구)가 사람 개발자를 위한 환경이라면, ADE는 AI 에이전트 팀을 운용하기 위한 환경입니다. 에이전트를 시작·관찰·조율·검토하는 모든 UI와 CLI가 여기 포함됩니다.
용어 풀이
fleet (플릿)
원래 의미는 '함대(艦隊)'. Orca에서는 동시에 실행 중인 여러 코딩 에이전트의 집합을 가리킵니다. 함대처럼 각 에이전트(함선)는 독립적으로 움직이지만, 사령관(사용자)의 지시를 받습니다.
용어 풀이
병렬 에이전트 (Parallel Agents)
같은 태스크를 여러 에이전트가 동시에, 각자 다른 방법으로 풀어나가는 방식. 예를 들어 "로그인 버그를 고쳐줘"를 Claude Code 3개에 동시에 주면 3가지 해법이 나오고, 그 중 가장 좋은 것을 선택합니다.

2 왜 주목받는가

단일 에이전트 시대의 한계 → 병렬 함대의 등장

2024년까지만 해도 AI 코딩 도구의 사용 패턴은 단순했습니다. 터미널 하나를 열고, Claude Code 혹은 Codex를 실행하고, 하나의 질문에 하나의 답을 받는 것이었습니다. 그런데 에이전트가 점점 강력해지면서 새로운 문제가 생겼습니다.

문제점
단일 에이전트의 병목 — 하나가 실패하면 전체가 멈춘다

에이전트 하나가 "로그인 기능을 리팩터링해줘"를 받으면, 그 에이전트가 작업을 마칠 때까지 다른 일을 시킬 수 없습니다. 실패하면 처음부터 다시 시작해야 합니다. 게다가 같은 코드베이스에서 두 에이전트가 동시에 파일을 수정하면 서로의 변경이 충돌합니다.

Orca의 해법
Git 워크트리 격리 — 각 에이전트에게 자기만의 모래사장을

Git에는 워크트리(worktree)라는 기능이 있습니다. 하나의 저장소에서 여러 브랜치를 동시에 다른 폴더에 체크아웃하는 기술입니다. Orca는 에이전트마다 워크트리를 자동으로 생성해, 각자 서로를 건드리지 않고 동시에 작업하도록 격리합니다. 5개의 에이전트 = 5개의 독립된 작업 공간.

경쟁 제품 대비 Orca의 위치

도구특징Orca와의 차이
Claude Code (단독)CLI에서 에이전트 1개 실행Orca는 여러 에이전트를 동시에 관리하는 상위 계층
Cursor / WindsurfIDE 내장 AI 에이전트특정 AI 모델에 종속, 에이전트 병렬 실행 불가
Claude Code MCP 서버클로드 에이전트 간 연결Orca는 모든 CLI 에이전트를 아우르는 범용 오케스트레이터
tmux + 직접 스크립트터미널 분할로 여러 에이전트Orca는 결과 비교·병합·모바일 알림 등 UX가 통합됨

Orca가 주목받는 핵심 이유는 특정 AI 회사나 모델에 종속되지 않는다는 점입니다. Claude Code, Codex, Grok, Cursor, Gemini, Devin 등 터미널에서 실행되는 CLI 에이전트라면 무엇이든 Orca 안에서 돌릴 수 있습니다. 실제로 README에는 30여 개의 지원 에이전트가 나열되어 있습니다. "AI 에이전트 시장의 수혜자 — 어떤 에이전트가 이겨도 Orca는 쓰인다"는 전략입니다.

비유로 이해하기

Orca는 특정 브랜드의 기계를 파는 게 아니라, 어떤 기계든 꽂을 수 있는 범용 공장 관리 시스템입니다. 삼성 로봇을 쓰든 LG 로봇을 쓰든, 공장 라인(워크트리)을 배분하고, 생산 현황(터미널 출력)을 모니터링하고, 불량품(실패한 에이전트)을 재작업 라인으로 돌리는 것은 Orca가 합니다.

3 기술 스택 전체 지도

데스크탑 / 모바일 / 오케스트레이션 / 에이전트 연동 상세

데스크탑 앱 (Electron)

계층기술역할
앱 프레임ElectronNode.js + Chromium으로 macOS·Windows·Linux 네이티브 앱을 단일 코드베이스로 제공
빌드 도구electron-vite + ViteElectron 전용 빠른 빌드. Main·Preload·Renderer 세 진입점을 한 번에 번들
UI 프레임워크React + TypeScript렌더러(화면) 전담. 컴포넌트 단위로 탭·터미널·diff 뷰어 등을 조합
스타일링Tailwind CSS (v4)유틸리티-퍼스트 CSS. shadcn/ui 컴포넌트 라이브러리와 연동
터미널 엔진xterm.js (headless + WebGL)브라우저에서 실제 터미널을 렌더링. 스크롤백 영구 보존
PTY(가상 터미널)node-ptyNode.js에서 실제 셸 프로세스를 의사 터미널로 실행
코드 에디터Monaco Editor (VS Code 코어)파일 편집·diff 뷰어. VS Code와 같은 엔진
상태 관리Zustand클라이언트 전역 상태(워크트리 목록·터미널 상태 등) 관리
자동 업데이트electron-updater앱 실행 중 백그라운드 자동 업데이트

모바일 컴패니언 앱 (React Native)

계층기술역할
앱 프레임React Native + ExpoiOS·Android 동시 지원. Expo Router로 파일 기반 화면 라우팅
통신 프로토콜WebSocket (ws 라이브러리)데스크탑 Orca와 포트 6768로 실시간 연결. 터미널 출력 스트리밍
암호화TweetNaClQR 코드 페어링 시 공개키 교환 및 메시지 암호화. 중간자 공격 방지
터미널 렌더링WebView + xterm.js모바일에서도 터미널 출력을 색상·ANSI 코드까지 정확히 표시
음성 입력expo-two-way-audio (자체 제작)폰 마이크로 에이전트에게 음성 명령 전송. 내부 패키지
알림expo-notifications에이전트가 작업을 완료하면 푸시 알림 발송
보안 저장소expo-secure-store디바이스 토큰·서버 공개키 등 민감 정보를 키체인에 암호화 저장

오케스트레이션 · 릴레이 서버

계층기술역할
릴레이 데몬Node.js (JSON-RPC over stdio)SSH 원격 호스트에 배포되는 경량 데몬. SSH 채널로 Electron과 통신
훅 서버Unix 도메인 소켓에이전트가 작업 중 Orca에 이벤트(알림·요청)를 보내는 채널
오케스트레이션 CLIorca orchestration 명령어에이전트 간 메시지·태스크·완료 신호를 구조화하는 CLI API
플러그인 오버레이자체 구현 (plugin-overlay.ts)OpenCode·Pi 등 특정 에이전트 CLI에 Orca 스킬을 주입하는 메커니즘
Git 연산child_process → git 바이너리워크트리 생성·삭제·diff·스테이징 등 직접 git 명령 실행
테스트Vitest단위·통합 테스트. relay 계층에 수십 개의 테스트 파일 존재

패키지 관리 · CI

도구역할
pnpm (워크스페이스)모노레포 패키지 관리. 데스크탑·모바일·네이티브 패키지를 단일 저장소에서 관리
oxlint빠른 Rust 기반 JS/TS 린터. ESLint보다 수십 배 빠름
HuskyGit 훅으로 커밋 전 자동 린트 실행
GitHub ActionsCI 빌드·릴리스 자동화. 공식 빌드만 PostHog 원격 측정 활성화

4 아키텍처 심화 분석

한 사람 ↔ 여러 병렬 에이전트(워크트리/샌드박스) 구조도 + 핵심 설계

전체 시스템 구조도

┌─────────────────────────────────────────────────────────────────────┐ │ 사용자 (User) │ │ 데스크탑 앱 + 모바일 앱 동시 사용 가능 │ └──────────────────────┬──────────────────────┬───────────────────────┘ │ │ WebSocket :6768 ┌────────────▼──────────┐ ┌───────▼──────────────┐ │ Orca Desktop App │ │ Orca Mobile App │ │ (Electron + React) │ │ (React Native/Expo) │ │ │ │ │ │ ┌─────────────────┐ │ │ • 터미널 출력 스트리밍 │ │ │ Renderer (UI) │ │ │ • 에이전트 완료 알림 │ │ │ React + Monaco │ │ │ • 음성 명령 전송 │ │ │ xterm.js 터미널│ │ └────────────────────────┘ │ └────────┬────────┘ │ │ │ IPC │ │ ┌────────▼────────┐ │ │ │ Main Process │ │ │ │ (Node.js) │ │ │ │ PTY · Git ops │ │ │ │ Worktree 관리 │ │ │ └────────┬────────┘ │ └───────────┼───────────┘ │ SSH / stdio ┌───────────▼──────────────────────────────────────────────┐ │ Relay Daemon (Node.js 경량 데몬) │ │ 원격 호스트 또는 로컬에 배포 가능 │ └────┬──────────┬──────────┬──────────┬───────────────────┘ │ │ │ │ ┌──────────▼──┐ ┌─────▼──────┐ ┌▼────────┐ ┌▼──────────────┐ │ Worktree #1 │ │ Worktree #2│ │WT #3 │ │ Worktree #4 │ │ /repo-wt1 │ │ /repo-wt2 │ │/repo-wt3│ │ /repo-wt4 │ │ │ │ │ │ │ │ │ │ [Claude │ │ [Codex │ │[Gemini │ │ [Claude Code │ │ Code] │ │ CLI] │ │ CLI] │ │ (다른 태스크)]│ │ │ │ │ │ │ │ │ │ git branch: │ │git branch: │ │branch: │ │ branch: │ │ fix/login │ │fix/login-v2│ │feature-x│ │ refactor-auth │ └─────────────┘ └────────────┘ └─────────┘ └───────────────┘ │ │ │ │ └────────────────┴───────────────┴──────────────┘ │ ┌──────────▼──────────┐ │ 원본 Git 저장소 │ │ (공유 오브젝트 DB) │ └────────────────────-─┘

핵심 설계 패턴 4가지

설계 패턴 1

Git 워크트리 격리 — 파일 충돌 없는 병렬 작업

Git의 git worktree add 명령은 하나의 저장소에서 여러 디렉토리를 동시에 체크아웃합니다. Orca는 에이전트를 만들 때마다 자동으로 새 워크트리를 생성합니다. 각 에이전트는 자기 폴더에서만 파일을 수정하므로 다른 에이전트와 절대 충돌하지 않습니다. Git 오브젝트 데이터베이스(실제 파일 이력)는 공유하므로 디스크를 낭비하지 않습니다.

설계 패턴 2

Relay 데몬 + JSON-RPC over stdio — SSH 원격 지원

Orca의 모든 파일 I/O·Git 연산·PTY 생성은 Relay 데몬이 담당합니다. 이 데몬은 로컬에서 실행될 수도 있고, SSH를 통해 원격 서버에 배포될 수도 있습니다. Electron 메인 프로세스와 표준 입출력(stdin/stdout)으로 JSON-RPC 프레임을 교환합니다. 덕분에 "로컬 맥북에서 리눅스 클라우드 서버의 에이전트를 제어"하는 것이 동일한 코드로 가능합니다.

설계 패턴 3

오케스트레이션 메시지 버스 — 에이전트 간 구조화된 대화

단순히 여러 에이전트를 실행하는 것을 넘어, Orca는 에이전트끼리 메시지를 주고받는 버스를 제공합니다. 코디네이터 에이전트가 태스크를 만들고(task-create), 워커 에이전트에게 배정하고(dispatch), 완료 신호를 기다립니다(check --wait). 워커는 막히면 질문(ask)을 보내고, 끝나면 worker_done을 보냅니다. DAG(방향 비순환 그래프) 형태의 태스크 의존성도 지원합니다.

설계 패턴 4

암호화 페어링 — 모바일과의 안전한 연결

모바일 앱과 데스크탑 앱은 QR 코드를 통해 페어링합니다. 이때 TweetNaCl을 사용해 공개키를 교환하고, 이후 모든 WebSocket 메시지를 암호화합니다. 같은 LAN 안에 있는 다른 기기가 엿들어도 내용을 알 수 없습니다. 프로토콜 버전 호환성도 체크해, 앱스토어 업데이트가 늦은 모바일 앱이 데스크탑과 통신 불가 상태가 되면 명시적인 오류 화면을 보여줍니다.

5 디렉토리 구조 해부

모노레포 안의 세 세계 — 데스크탑·모바일·네이티브
stablyai/orca/ ├── src/ ← 데스크탑 Electron 앱의 핵심 │ ├── renderer/ │ React UI (화면에 보이는 모든 것) │ │ └── src/ │ │ ├── App.tsx │ 앱 최상위 컴포넌트 │ │ ├── components/ │ 탭바·터미널·diff뷰어·사이드바 등 │ │ └── assets/main.css │ 디자인 토큰 (CSS 변수 정의) │ ├── relay/ │ 릴레이 데몬 (원격/로컬 배포용) │ │ ├── relay.ts │ 데몬 진입점. JSON-RPC 라이프사이클 │ │ ├── dispatcher.ts │ RPC 메서드 → 핸들러 라우팅 │ │ ├── agent-exec-handler.ts│ 에이전트 CLI 프로세스 실행/종료 │ │ ├── agent-hook-server.ts│ 에이전트가 Orca에 알림 보내는 소켓 │ │ ├── git-handler-*.ts │ Git 워크트리·diff·스테이징 연산 │ │ ├── pty-handler.ts │ 가상 터미널(PTY) 생성·관리 │ │ ├── fs-handler*.ts │ 파일시스템 읽기/쓰기/스트리밍 │ │ ├── plugin-overlay.ts │ 에이전트 CLI에 스킬 주입 │ │ └── workspace-session-handler.ts 세션 영속성 │ └── shared/ │ 데몬·앱 공유 타입/상수 │ ├── mobile/ ← React Native 모바일 컴패니언 앱 │ ├── app/ │ Expo Router 화면 (파일 = 라우트) │ │ ├── index.tsx │ 홈 (페어링된 호스트 목록) │ │ ├── pair-scan.tsx │ QR 코드 스캔 화면 │ │ └── h/_layout.tsx │ 호스트 연결 후 화면 레이아웃 │ ├── src/ │ │ ├── terminal/ │ 터미널 WebView + xterm 브릿지 │ │ └── transport/ │ WebSocket RPC 클라이언트 │ ├── scripts/ │ │ ├── mock-server.ts │ 실기기 없이 개발용 가짜 서버 │ │ └── test-subscribe.ts │ 터미널 스트리밍 재현 스크립트 │ └── packages/ │ └── expo-two-way-audio/ │ 자체 제작 양방향 음성 Expo 모듈 │ ├── native/ ← 플랫폼별 네이티브 모듈 │ ├── computer-use-macos/ │ macOS 화면 캡처·UI 자동화 │ ├── computer-use-linux/ │ Linux 동일 │ └── computer-use-windows/ │ Windows 동일 │ ├── skills/ ← Orca 내장 에이전트 스킬 정의 │ ├── orchestration/SKILL.md │ 멀티에이전트 조율 플레이북 │ ├── orca-cli/SKILL.md │ Orca CLI 사용법 에이전트 가이드 │ ├── computer-use/SKILL.md │ 데스크탑 UI 조작 스킬 │ ├── linear-tickets/SKILL.md │ Linear 이슈 연동 스킬 │ └── orca-emulator/SKILL.md │ Orca 에뮬레이터 스킬 │ ├── docs/ ← 설계 문서 (기능별 마크다운) │ ├── STYLEGUIDE.md │ 디자인 시스템 가이드 │ └── *.md │ 기능별 아키텍처 결정 기록 │ ├── electron.vite.config.ts ← Electron 빌드 설정 (환경별 상수 주입) ├── package.json ← 루트 의존성 (Electron·xterm·node-pty 등) ├── pnpm-lock.yaml ← 잠금 파일 (재현 가능한 빌드) ├── AGENTS.md ← AI 에이전트를 위한 코딩 규칙 └── orca.yaml ← 프로젝트 초기 설정 스크립트

특이한 점: AGENTS.md는 사람 개발자가 아닌 AI 에이전트를 위한 코딩 규칙 문서입니다. "파일 이름을 utils·helpers처럼 모호하게 짓지 마라", "max-lines 린트 규칙을 disable하지 마라", "SSH 사용 케이스를 항상 고려하라" 등의 규칙이 담겨 있습니다. 에이전트가 코드를 수정할 때 이 파일을 읽고 지침을 따르도록 의도된 것입니다.

6 학습 포인트 (기술별)

병렬 에이전트 오케스트레이션 / 데스크탑 앱 / 멀티플랫폼 배울 것

1. Electron 아키텍처 — 세 프로세스의 분리

Electron 앱은 Main 프로세스(Node.js, OS 자원 접근), Renderer 프로세스(Chromium, UI 렌더링), Preload 스크립트(두 프로세스를 잇는 다리) 세 부분으로 나뉩니다. Orca의 electron.vite.config.ts는 이 세 진입점을 하나의 설정 파일에서 관리하며, 빌드 타임에 환경 변수를 코드에 직접 주입(compile-time constant injection)하는 기법을 보여줍니다 — PostHog 분석 키를 공식 빌드에만 활성화하는 방식이 좋은 예시입니다.

용어 풀이
IPC — Inter-Process Communication (프로세스 간 통신)
Electron의 Main과 Renderer는 다른 프로세스라 직접 변수를 공유할 수 없습니다. 편지를 주고받듯 메시지를 보내야 하는데, 이것이 IPC입니다. Orca는 IPC를 통해 UI(Renderer)의 버튼 클릭이 터미널 실행(Main/Node-pty)으로 연결됩니다.

2. Git 워크트리 — 숨겨진 강력한 기능

git worktree add ../repo-wt1 feature/login 한 줄로 같은 저장소를 다른 폴더에 체크아웃할 수 있습니다. 브랜치마다 별도 폴더가 생기므로, 여러 브랜치를 동시에 편집할 수 있습니다. Orca는 이 기능을 API로 감싸 에이전트마다 자동으로 워크트리를 생성·삭제합니다. Git 내부에서는 오브젝트 DB를 공유하므로 디스크 낭비도 없습니다.

3. React Native + Expo — 하나의 코드로 iOS·Android

Expo Router는 app/ 폴더의 파일 이름이 곧 URL 경로가 되는 파일 기반 라우팅을 제공합니다. app/pair-scan.tsx가 있으면 /pair-scan 화면이 생깁니다. Orca 모바일의 expo-two-way-audio는 Expo 공식 패키지가 아닌 자체 제작 네이티브 모듈로, Expo Module API를 직접 구현하는 방법을 배울 수 있습니다.

4. 암호화 통신 — TweetNaCl로 직접 구현

Orca 모바일과 데스크탑의 QR 페어링은 NaCl(TweetNaCl) 비대칭 암호화를 직접 구현합니다. TLS/HTTPS를 쓰지 않고 애플리케이션 레이어에서 암호화하는 이유는 자체 서명 인증서나 CA 신뢰 문제를 피하기 위해서입니다. tweetnacl 라이브러리의 박스(box) API 사용법을 소스에서 직접 볼 수 있습니다.

5. CLI 설계 — orca orchestration 명령어 체계

Orca CLI는 에이전트가 직접 호출하도록 설계된 CLI입니다. --json 플래그로 기계 파싱 가능한 JSON 출력, 명확한 동사(create·list·dispatch·check·send), 선택적 매개변수 설계 등이 에이전트-친화적 CLI의 좋은 교과서입니다. skills/orchestration/SKILL.md는 에이전트에게 이 CLI를 어떻게 사용하는지 설명하는 "에이전트를 위한 매뉴얼"입니다.

6. 플랫폼별 분기 처리 — 크로스플랫폼의 현실

Orca는 macOS·Windows·Linux를 모두 지원합니다. AGENTS.md와 소스 곳곳에는 플랫폼별 분기가 숨어 있습니다. Windows의 .cmd 배치 스크립트를 실행할 때는 cmd.exe /d /s /c로 감싸야 Node.js가 실행할 수 있습니다. 단축키는 Mac에서는 metaKey(⌘), 다른 플랫폼에서는 ctrlKey로 분기합니다. 실제 크로스플랫폼 앱이 어떻게 이런 분기를 처리하는지 배울 수 있습니다.

7 시스템 요구사항 · 설치

데스크탑 / 모바일 / 개발 환경별 요구사항

일반 사용자 — 데스크탑 앱 설치

플랫폼요구사항설치 방법
macOS (Apple Silicon)macOS 12 이상 권장brew install --cask stablyai/orca/orca 또는 .dmg 다운로드
macOS (Intel)macOS 12 이상 권장Intel용 .dmg 다운로드 (onorca.dev/download)
WindowsWindows 10/11orca-windows-setup.exe 실행
Linux최신 Ubuntu/Arch 등AppImage 실행 또는 yay -S stably-orca-bin (AUR)

모바일 컴패니언 앱

플랫폼설치비고
iOSApp Store "Orca IDE" 검색 또는 TestFlight데스크탑 Orca와 같은 LAN 필요
AndroidGitHub Releases에서 APK 다운로드Play Store 미등록, 직접 설치
모바일 페어링 방법

1. 데스크탑 Orca → 설정(Settings) → 모바일(Mobile) 탭을 엽니다.
2. 화면에 QR 코드가 나타납니다.
3. 모바일 앱을 열고 QR 스캔을 합니다.
4. 연결이 되면 데스크탑의 모든 워크트리와 에이전트 상태를 폰에서 볼 수 있습니다.

물리적 폰을 쓸 경우, 데스크탑과 폰이 같은 Wi-Fi에 연결되어 있어야 합니다. Android 에뮬레이터는 ws://10.0.2.2:6768을 호스트 주소로 씁니다.

개발자 — 소스에서 빌드

도구버전 요구역할
Node.js24 이상JavaScript 런타임
pnpm최신패키지 매니저 (npm install -g pnpm)
Git2.20 이상 권장워크트리 기능 사용
Xcode (macOS/iOS 개발)최신iOS 시뮬레이터·네이티브 모듈 빌드
Android Studio (Android 개발)최신Android 에뮬레이터
# 1. 저장소 클론
git clone https://github.com/stablyai/orca.git
cd orca

# 2. 개발 환경 초기화 + 의존성 설치
pnpm install

# 3. 데스크탑 앱 개발 모드 실행
pnpm dev

# 4. (별도 터미널) 모바일 앱 개발 모드 실행
cd mobile
pnpm install
pnpm start   # Expo QR 코드 출력 → 폰으로 스캔

8 직접 해볼 수 있는 실습 과제

난이도별 3~5개 실습 아이디어
LV.1 — 입문

병렬 워크트리 만들어 비교하기

Orca를 설치하고 자신의 아무 GitHub 저장소를 연결한 뒤, "이 함수의 이름을 더 명확하게 바꿔줘"라는 프롬프트를 Claude Code 2개에 동시에 보내세요. 두 에이전트가 제안하는 이름이 다를 것입니다. diff 뷰어에서 두 변경을 비교하고, 더 나은 것을 선택해 병합해 보세요.

목표: Orca의 병렬 워크트리 워크플로우를 직접 체험합니다.

LV.2 — 초급

모바일 컴패니언 앱 페어링 후 알림 받기

iOS 또는 Android에 Orca 모바일 앱을 설치하고 QR 코드로 데스크탑과 페어링하세요. 에이전트에게 긴 태스크(예: "README.md를 한국어로 번역해줘")를 맡기고, 폰을 잠금 화면으로 두세요. 에이전트가 완료되면 푸시 알림이 오는지 확인하세요.

목표: 비동기 에이전트 모니터링의 실용성을 체험합니다.

LV.3 — 중급

orca orchestration으로 코디네이터-워커 패턴 구현

Orca 안에서 Claude Code 터미널을 2개 열고, 하나를 코디네이터, 하나를 워커로 삼으세요. 코디네이터 에이전트에게 다음 지시를 내립니다:

orca orchestration task-create --spec "auth.ts 파일의 모든 함수에 JSDoc 주석 추가" --json
orca orchestration dispatch --task <task_id> --to <worker_handle> --inject --json
orca orchestration check --wait --types worker_done --timeout-ms 600000 --json

워커 에이전트가 작업을 마치고 worker_done 신호를 보내면 코디네이터가 받는 과정을 관찰하세요.

목표: 에이전트 간 구조화된 메시지 패턴을 직접 구현합니다.

LV.4 — 중급-고급

SSH 워크트리 — 원격 서버에서 에이전트 실행

AWS·GCP·개인 VPS 등 리눅스 서버가 있다면, Orca의 SSH 워크트리 기능으로 서버에서 에이전트를 실행하고 로컬에서 화면만 보는 설정을 해보세요. 설정: Orca → Add Worktree → Remote (SSH). 서버의 CPU·RAM을 에이전트가 사용하고, 로컬은 UI만 담당하므로 맥북 배터리가 절약됩니다.

목표: 릴레이 데몬 아키텍처와 원격 개발 워크플로우를 체험합니다.

LV.5 — 고급

Orca 소스 코드 수정 — 커스텀 스킬 추가

소스를 클론하고 pnpm dev로 개발 모드를 실행하세요. skills/ 폴더에 새 폴더와 SKILL.md 파일을 만들어 자신만의 에이전트 스킬을 정의해 보세요. 예: 특정 코드 스타일 규칙을 에이전트에게 항상 따르게 하는 스킬. 변경 사항이 실시간으로 앱에 반영되는 Hot Module Replacement(HMR)를 경험하세요.

목표: Electron + Vite HMR 개발 루프를 이해하고, 플러그인 시스템 확장을 실습합니다.

9 관련 기술 심화 학습 로드맵

Orca를 이해하고 활용하기 위한 주차별 학습 경로
주차주제학습 자료 / 실습
1~2주차 Git 심화 — 워크트리·브랜치 전략 git worktree add/list/remove 직접 실습. Pro Git 책 7장. "feature 브랜치 5개 동시 체크아웃" 시도해보기
3~4주차 Node.js PTY·자식 프로세스 node-pty 공식 문서. child_process.spawn vs exec 차이. 간단한 터미널 에뮬레이터 직접 만들기
5~6주차 Electron 아키텍처 공식 Electron 튜토리얼 전체. Main·Preload·Renderer 분리 패턴. IPC 보안 컨텍스트 격리 이해
7~8주차 React 고급 패턴 + TypeScript Zustand 상태 관리 패턴. React Virtual(가상화 리스트). Monaco Editor 임베드 방법
9~10주차 React Native + Expo Expo Router 공식 문서. React Native WebView 통신 패턴. 네이티브 Expo 모듈 직접 작성
11~12주차 암호화 기초 — 공개키 암호화 NaCl/TweetNaCl 공식 문서. 비대칭 키 교환 원리. 간단한 QR 기반 암호화 페어링 프로토타입 만들기
13~14주차 CLI 설계 · JSON-RPC 프로토콜 JSON-RPC 2.0 스펙 읽기. stdio 기반 데몬 구현. Commander.js 또는 yargs로 에이전트-친화적 CLI 설계
15~16주차 멀티에이전트 오케스트레이션 이론 DAG(방향 비순환 그래프) 기반 태스크 시스템 구현. 코디네이터-워커 패턴 직접 구현. Orca orchestration 스킬 분석

10 핵심 키워드 사전

이 문서에 나온 핵심 개념 정리
용어원어한국어 풀이
ADE Agent Development Environment 에이전트 개발 환경. IDE가 사람을 위한 것처럼, ADE는 AI 에이전트 팀 운용을 위한 환경
워크트리 Git Worktree 하나의 Git 저장소에서 여러 브랜치를 동시에 다른 폴더에 체크아웃하는 기능
플릿 Fleet Orca가 관리하는 여러 에이전트의 집합. '함대'에서 온 말
릴레이 데몬 Relay Daemon Orca가 원격 서버에 배포하는 경량 Node.js 프로세스. SSH 채널로 Electron 앱과 JSON-RPC 통신
PTY Pseudo-Terminal (의사 터미널) 소프트웨어로 구현한 가상 터미널. 에이전트 CLI가 진짜 터미널인 것처럼 느끼게 해줌
오케스트레이션 Orchestration 여러 에이전트의 태스크를 배정·추적·완료 신호 수집하는 구조화된 조율 시스템
코디네이터 Coordinator 태스크를 만들고 워커에게 배정하며 완료 신호를 기다리는 중앙 에이전트
워커 Worker 코디네이터에게 태스크를 받아 실제 작업을 수행하고 완료 신호를 보내는 에이전트
DAG Directed Acyclic Graph (방향 비순환 그래프) 태스크 의존 관계를 표현하는 자료 구조. A가 끝나야 B가 시작하는 식의 순서 표현에 사용
IPC Inter-Process Communication 프로세스 간 통신. Electron에서 Main과 Renderer가 메시지를 주고받는 방법
HMR Hot Module Replacement 코드를 저장하면 앱을 재시작하지 않고 변경 부분만 즉시 반영하는 개발 기능
TweetNaCl TweetNaCl (암호화 라이브러리) 100줄 남짓의 작은 코드로 구현된 공개키 암호화 라이브러리. 안전한 통신 채널 수립에 사용
worker_done worker_done (Orca 메시지 타입) 워커 에이전트가 태스크를 완료했을 때 코디네이터에게 보내는 구조화된 완료 신호
스킬(Skill) Skill (Orca/Claude Code 개념) 에이전트가 특정 작업을 수행하는 방법을 담은 마크다운 가이드. SKILL.md 파일 형식
플러그인 오버레이 Plugin Overlay Orca가 특정 에이전트 CLI(OpenCode·Pi 등)에 자신의 스킬이나 환경 변수를 주입하는 메커니즘

11 참고 링크

더 깊이 파고들 때 필요한 출처와 자료