둘 다 터미널에서 도는 에이전틱 코딩 도구다. 코드베이스와 대화하고, 파일을 직접 고치고, 셸 명령을 실행하고, 테스트를 돌린다. MCP 연결, 서브에이전트, 커스텀 슬래시 명령, 세션 컨텍스트 관리 같은 핵심 기능도 비슷한 수준까지 왔다.
갈리는 지점은 모델 종속성과 배포 형태다.
| 항목 | Claude Code | OpenCode |
|---|---|---|
| 모델 | 제작사 모델 전용. 내부적으로 등급을 자동 라우팅한다 | 다수의 공급자를 지원한다. 작업별로 모델을 바꿀 수 있다 |
| 배포 형태 | 단일 프로세스 CLI | 클라이언트 · 서버 분리. HTTP 서버와 TUI 프로세스가 함께 뜬다 |
| 외부 연동 | SDK 표면이 닫혀 있다 | 공식 SDK 와 OpenAPI 스펙을 공개한다. 모든 메시지 · 도구 호출 · 결과가 SSE 로 스트리밍된다 |
| 클라이언트 | TUI | TUI · 데스크톱 · 웹 · IDE 확장 · 메신저 봇 · CI 연동 |
| 권한 모델 | 기본 차단, 명시적 허용 | glob 패턴 기반 세밀 제어 |
| 온프레미스 | 클라우드 API 호출 전제 | 로컬 모델 런타임과 묶어 망분리 환경에서 쓸 수 있다 |
| 소스 | 비공개 | 오픈소스 |
핵심 에이전트 루프 자체는 단순하다. 메시지 히스토리를 핵심 데이터 구조로 쓰는 반복문이면 되고, 실제 루프는 수십 줄 안에 들어간다. 첫 에이전트를 만들 때 복잡한 상태 기계나 DAG 오케스트레이션부터 손대는 것은 대체로 헛수고다.
무게는 그 주변에 있다 — 권한 게이트, 도구 정의와 스키마 검증, 컨텍스트 관리, 재시도와 속도 제한, 캐시. 즉 성능을 만드는 것은 모델이 아니라 하네스다. 사내용 에이전트를 설계할 일이 있으면 이 부분을 읽는 것이 가장 빠르다.
코드 규모나 파일 수 같은 구체적 수치는 확인하지 못했다 (확인 필요).
사내 에이전트를 만들 때 처음부터 설계하지 않아도 되는 부분이다.
| 모듈 | 무엇을 배우나 |
|---|---|
| 세션 관리와 압축 | 컨텍스트 창이 차면 이전 메시지를 요약해 세션을 압축한다. 세션을 로컬 DB 에 영속화해 여러 작업을 병행한다 |
| 스냅샷 | 단계 시작 시점에 git 기반 임시 커밋으로 작업 상태를 뜨고, 잘못되면 되돌린다. 히스토리는 건드리지 않는다. 에이전트가 망친 파일을 안전하게 복구하는 구현 예다 |
| 도구 디스패치와 이벤트 버스 | 모델 응답 스트림을 처리하면서 모든 메시지 조각을 디스크에 남기고 동시에 공유 이벤트 버스로 발행한다. 그 버스를 HTTP SSE 로 노출하면 여러 클라이언트가 같은 세션을 실시간으로 본다 |
| 권한 파이프라인 | 일반 규칙 평가 → 도구별 로직 → 자동 분류 → 사용자 승인으로 폴백하는 다단 구조 |
| MCP 처리 | 서버 등록, 도구 탐색, 그리고 필요할 때만 도구 정의를 올려 컨텍스트를 아끼는 방식 |
일상 개발은 완성도 높은 쪽, 자동화 · 온프레미스 · 멀티모델 · 구조 학습은 오픈소스 쪽이라는 분업이 현실적이다. 대체재가 아니라 보완재로 본다.
오픈소스 쪽을 익혀 둘 실용적 이유는 넷이다.