Late 2026 기준 OpenCode와 Claude Code 비교: OpenCode V2의 변경 사항
요약
본 기사는 기존 코드 수정 작업에 초점을 맞춰 OpenCode와 Claude Code를 비교하며, 특히 OpenCode V2의 주요 변경 사항을 다룹니다. OpenCode V2는 권한(permissions) 구조가 크게 바뀌어 `bash`가 `shell`로, `task`가 `subagent`로 등 이름이 통합되고 배열 형태로 재구성되었습니다. 또한 두 도구의 접근 제어 논리(deny/ask/allow 순서 vs 마지막 일치 규칙 승리) 차이를 비교합니다.
핵심 포인트
- OpenCode는 오픈 소스이며, Claude Code는 Anthropic의 독점 에이전트입니다.
- OpenCode V2는 권한 구조를 배열 형태로 변경하고 명령어 이름을 통합했습니다 (예: bash -> shell).
- Claude Code는 deny → ask → allow 순서로 평가하며, 구체성보다 첫 일치 규칙이 중요합니다.
- OpenCode는 마지막으로 일치하는 규칙이 승리하므로, 광범위한 규칙을 먼저 작성해야 합니다.
제가 찾아본 대부분의 "OpenCode vs Claude Code" 글들은 봄에 작성된 것이라 전체적인 그림은 맞습니다. Claude Code는 Anthropic이 긴밀하게 통합한 에이전트이고, OpenCode는 거의 모든 모델에 연결할 수 있는 오픈 소스 도구라는 점입니다. 하지만 이 글들에서 놓치고 있는 것은 OpenCode가 그 이후로 V2를 출시했다는 것과, V2가 제가 매주 실제로 수정하는 설정 형식을 변경했다는 것입니다. 따라서 이번 비교는 범위를 좁혀서, 두 도구 사이에서 저희 팀의 설정을 오가며 작성한 일상적인 설정 부분에 초점을 맞추었습니다.
먼저 범위에 대한 참고 사항을 말씀드립니다. 이 두 도구 모두 이미 존재하는 코드를 수정하는 용도입니다. 완전히 처음부터 새로운 제품 표면(예: 랜딩 페이지와 이를 보조하는 앱)을 만드는 작업이라면, 저는 어느 것도 열지 않습니다. 대신 begin를 사용하는데, 이 도구는 하나의 프롬프트만으로 웹사이트, iOS 앱, Android 앱 또는 Chrome 확장 프로그램을 구축해 줍니다. 아래 내용은 테스트와 리뷰어가 있는 기존 레포지토리(repo)라는 다른 경우에 대한 것입니다.
OpenCode vs Claude Code: 요약 버전
| Claude Code | OpenCode | |
|---|---|---|
| 라이선스 (License) | 독점적 (Proprietary) | 오픈 소스 (Open source) |
| ... |
좋은 소식은 V2가 V1과 동일한 위치에서 기존의 opencode.json을 읽고, 메모리 내에서 V1 필드를 정규화하기 때문에 에이전트(agents), 명령어(commands), 스킬(skills)이 .opencode/ 폴더에서 계속 작동한다는 것입니다. 제가 지적하고 싶은 부분은 권한(permissions)입니다. V2는 도구별 permission 객체를 순서가 지정된 permissions 배열로 대체하며, 액션 이름도 변경됩니다: bash는 shell이 되고, task는 subagent가 되며, write/patch는 edit으로 통합됩니다. 사용자의 V1 파일은 여전히 로드되지만, 앞으로 작성되는 모든 문서 예제(doc example)와 팀원이 붙여넣는 모든 스니펫(snippet)은 새로운 형태를 따르게 됩니다.
V2 설치 방법은 공식 문서를 참고하세요:
# OpenCode V2
curl -fsSL https://opencode.ai/v2/install | bash
# 또는
...
권한(Permissions): 같은 단어, 반대 논리
두 도구 모두 allow / ask / deny를 사용합니다. 이들은 충돌을 서로 다른 방식으로 해결하며, 이것이 한 도구의 규칙을 다른 도구에 복사할 때 오류가 발생하는 지점입니다.
Claude Code는 deny → ask → allow 순서로 평가합니다. 이 순서에서 처음 일치하는 것이 결정적이며, 구체성(specificity)은 중요하지 않습니다. 문서는 그 결과를 명시하고 있습니다: Bash(aws *)와 같은 광범위한 deny 규칙은 사용자가 정확히 해당 내용에 대한 allow 규칙을 가지고 있더라도 aws s3 ls를 차단합니다. deny 규칙에서 예외 사항을 만들 수 없습니다.
OpenCode는 반대로 작동합니다. 마지막으로 일치하는 규칙이 승리하기 때문에, 광범위한 규칙을 먼저 작성하고 그 뒤에 예외 사항을 작성해야 합니다. 이는 V1의 객체 구문과 V2의 배열 모두에서 사실입니다.
여기 동일한 의도(
Claude Code에서는 모든 상황을 포괄하는 'ask' 라인이 필요하지 않습니다. 왜냐하면 Manual 모드가 내장된 읽기 전용 세트 외부의 Bash 명령에 대해 이미 프롬프트를 요청하기 때문입니다. OpenCode에서는 이 모든 것을 포괄하는(catch-all) 기능이 중요합니다. V1은 대부분의 권한을 allow로 설정하고(.env 읽기는 거부되며, doom_loop와 external_directory는 ask로 설정됨) 허용적인 기본값에서 시작합니다. V2 문서는 규칙과 일치하는 것이 없을 때 OpenCode가 ask를 사용한다고 말합니다. 만약 팀이 명시적인 규칙을 작성하지 않고 V1에서 V2로 이동했다면, 보이는 프롬프트 횟수가 달라질 수 있습니다. 어느 쪽의 동작이라고 가정하기 전에 확인해 보세요.
다른 차이점은 프롬프트를 건너뛰는 방식입니다. Claude Code는 Manual(default), acceptEdits, plan, auto와 같이 배경 분류기(background classifier)가 사용자 대신 작업을 검토하는 명명된 모드, dontAsk, 그리고 bypassPermissions를 가지고 있습니다. OpenCode는 명시적으로 거부되지 않은 모든 것을 승인하는 opencode --auto를 가지고 있습니다. 거부 규칙은 둘 다에 여전히 적용되므로, 먼저 거부(deny)할 내용을 작성하고 그 다음에 편의 기능(conveniences)을 작성하세요.
메모리 파일: 하나를 공유할 수 있음
이전에는 마이그레이션 시 골칫거리였지만, 이제는 대부분 그렇지 않습니다.
- Claude Code는 모든 세션 시작 시
CLAUDE.md를 읽으며, 문서를 보면 자체적으로 또는CLAUDE.md와 함께 기존의AGENTS.md를 읽을 수 있다고 합니다. - OpenCode는
AGENTS.md를 읽고,AGENTS.md가 존재하지 않을 때CLAUDE.md를 폴백(fallback)으로 사용합니다. 또한 전역 규칙을 위해~/.claude/CLAUDE.md로 폴백하고~/.claude/skills/의 내용을 가져옵니다.
따라서 커밋된 단일 AGENTS.md 파일은 혼합된 팀에 작동합니다. 함정은 전역 폴백입니다. 만약 한 대의 컴퓨터에서 두 도구를 모두 실행하면, 사용자가 ~/.config/opencode/AGENTS.md를 가지고 있지 않은 한 OpenCode는 개인적인 Claude Code 지침을 조용히 로드할 것입니다. 이것이 원하는 바가 아니라면, OPENCODE_DISABLE_CLAUDE_CODE=1 (또는 더 좁은 범위의 _PROMPT 및 _SKILLS 변형)을 설정하세요.
서브 에이전트와 에이전트
두 가지는 마케팅에서 제시하는 것보다 훨씬 가깝습니다. 둘 다 자체 컨텍스트를 가진 자식 에이전트(child agent)에게 위임하고 부모에게 결과를 반환합니다.
OpenCode는 Tab 키로 순환하며 사용할 수 있는 두 가지 주요 에이전트인 Build(모든 기능 활성화)와 Plan(편집 및 bash를 질문으로 설정)을 제공하고, 여기에 세 개의 하위 에이전트(subagent): General, Explore(읽기 전용 코드베이스 검색), 그리고 Scout(외부 문서 및 의존성 소스에 대한 읽기 전용 리서치)가 추가됩니다. 또한 하위 에이전트를 직접 @ 언급할 수도 있습니다. 사용자 정의 에이전트는 .opencode/agents/*.md 또는 opencode.json에 위치하며, 각각 자체 모델과 권한을 가집니다. 실제로는 세션 내에서 검색용 저렴한 모델과 편집용 강력한 모델을 사용할 수 있다는 의미입니다.
Claude Code는 Explore, Plan 및 범용 에이전트를 제공하고, .claude/agents/에 사용자 정의 에이전트를 추가하며, 그 위에 백그라운드 에이전트와 클라우드 루틴(cloud routines)을 더합니다. 각 에이전트에 대한 모델 선택은 존재하지만, Bedrock, Google Cloud, Foundry 또는 ANTHROPIC_BASE_URL을 통한 LLM 게이트웨이를 통해 전체 도구를 라우팅하는 경우를 제외하고는 Claude 내에서의 선택입니다.
비용: 구독 vs. 사용량 측정
| Claude Code | OpenCode | |
|---|---|---|
| 도구 | Pro / Max / Team / Enterprise에 포함됨 | 무료 |
| ... | ||
| For API로 청구되는 팀의 경우, Anthropic의 비용 문서는 유용한 기준점을 제공합니다. 엔터프라이즈 배포 전반에서 평균은 개발자 1인당 활성 일일 약 $13이며, 개발자 1인당 월 $150–250 수준이고, 사용자 중 90%는 활성 일일 $30 미만입니다. |
제가 예상하지 못했던 한 가지 세부 사항: OpenCode 자체의 Go 문서는 Claude Code를 Go 엔드포인트에 대한 검증된 클라이언트로 나열하고 있습니다. 만약 여러분이 OpenCode를 개방형 하네스(open harness)보다는 저렴한 오픈 모델 때문에 보고 있다면, 이 점을 아는 것이 중요합니다.
제가 선택한 부분
제가 선택한 부분
- Claude Code: 리뷰 품질이 가장 중요하고 팀이 이미 Claude 플랜을 사용 중인 저장소에 적합합니다. Deny-first 규칙은 감사(audit)하기 쉬우며, 설정에 대해 생각하고 싶지 않은 사람들에게 모드가 더 좋습니다.
- OpenCode: 새로운 오픈 모델로 실험하거나, 로컬 또는 Anthropic이 아닌 제공업체를 원하는 사용자에게, 그리고 실질적인 예외(
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기