AI 에이전트 프로토콜, 왜 세 개나 필요한가?
AI 에이전트 생태계가 빠르게 성장하면서, 에이전트 간 통신을 위한 프로토콜도 경쟁적으로 등장하고 있다. ACP(Agent Client Protocol), MCP(Model Context Protocol), A2A(Agent-to-Agent Protocol). 이 세 가지 프로토콜은 각각 다른 회사에서, 다른 문제를 해결하기 위해 만들어졌다. 이번 편에서는 세 프로토콜을 기술적으로 비교하고, 어떤 상황에서 무엇을 선택해야 하는지 분석한다.
1. 세 프로토콜의 탄생 배경
ACP – IDE와 코딩 에이전트의 표준화
ACP는 Zed 에디터 팀이 주도하여 만든 프로토콜이다. 핵심 목적은 코드 에디터와 AI 코딩 에이전트 사이의 통신을 표준화하는 것이다. VS Code의 Copilot, Cursor, Zed의 Claude Agent 등 각 IDE마다 독자적인 에이전트 연동 방식을 사용하던 파편화 문제를 해결한다.
ACP의 핵심 특징:
- 클라이언트(IDE)-서버(에이전트) 구조
- 스트리밍 기반 실시간 응답
- 도구 호출(tool use) 표준화
- 컨텍스트 공유 메커니즘
MCP – AI 모델의 외부 세계 연결
MCP는 Anthropic이 2024년 말 공개한 프로토콜이다. AI 모델이 외부 도구, 데이터 소스, API에 접근하는 방식을 표준화한다. “AI 에이전트의 USB 포트”라는 비유가 적절하다. 하나의 표준 인터페이스로 다양한 외부 시스템을 연결할 수 있기 때문이다.
MCP의 핵심 특징:
- 호스트-클라이언트-서버 3계층 아키텍처
- JSON-RPC 2.0 기반 통신
- Resources, Tools, Prompts 세 가지 프리미티브
- 양방향 기능 협상(Capability Negotiation)
A2A – 에이전트 간 협업의 표준
A2A는 Google이 2025년 초 발표한 프로토콜이다. 앞의 두 프로토콜이 “사람 또는 모델이 도구/에이전트에 접근”하는 패턴이라면, A2A는 “에이전트가 다른 에이전트와 대화”하는 패턴을 다룬다. 현재 Release Candidate v1.0까지 발전했으며, Python, Go, JavaScript, Java, .NET 등 다양한 SDK를 제공한다.
A2A의 핵심 특징:
- Agent Card를 통한 에이전트 발견 및 기능 탐색
- JSON-RPC 2.0 over HTTP(S)
- 비동기 우선 설계 (장시간 실행 태스크 지원)
- 불투명 실행(Opaque Execution) – 내부 상태 비공개
2. 기술 아키텍처 비교
통신 방식
세 프로토콜 모두 JSON 기반이지만, 통신 패턴에서 차이가 난다.
// ACP: HTTP/2 스트리밍 기반
// 클라이언트가 에이전트에 작업 요청
POST /agent/execute
Content-Type: application/json
{
"task": "refactor this function",
"context": {
"file": "main.py",
"selection": "lines 10-25"
}
}
// 응답: Server-Sent Events로 실시간 스트리밍
// MCP: JSON-RPC 2.0 양방향
// 클라이언트가 서버의 도구 호출
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "read_file",
"arguments": { "path": "/src/main.py" }
},
"id": 1
}
// A2A: JSON-RPC 2.0 over HTTP
// 에이전트가 다른 에이전트에 메시지 전송
{
"jsonrpc": "2.0",
"method": "message/send",
"params": {
"message": {
"role": "user",
"parts": [{
"kind": "text",
"text": "이 데이터셋을 분석해줘"
}]
}
},
"id": "task-001"
}
발견 메커니즘
에이전트나 서버를 어떻게 찾고 연결하는지도 중요한 차이점이다.
- ACP: IDE 설정 파일에 에이전트 목록을 등록한다. 주로 로컬 환경에서 동작하므로 발견보다는 설정에 가깝다.
- MCP: 클라이언트가 서버에 접속 후 initialize 핸드셰이크를 통해 서버의 기능을 탐색한다. 최근에는 MCP 서버 레지스트리도 등장하고 있다.
- A2A: Agent Card라는 JSON 문서를 /.well-known/agent.json 경로에 게시한다. DNS처럼 에이전트를 발견할 수 있는 표준화된 방법을 제공한다.
// A2A Agent Card 예시
{
"name": "데이터 분석 에이전트",
"description": "CSV, JSON 데이터를 분석하고 시각화합니다",
"url": "https://analytics-agent.example.com",
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true
},
"skills": [
{
"id": "data-analysis",
"name": "데이터 분석",
"description": "구조화된 데이터의 통계 분석 수행"
}
],
"defaultInputModes": ["text", "file"],
"defaultOutputModes": ["text", "file"]
}
3. 핵심 차이점 정리
세 프로토콜의 근본적 차이를 한 문장으로 요약하면 이렇다:
- ACP: 사람(개발자)이 IDE를 통해 AI 에이전트를 사용하는 프로토콜
- MCP: AI 모델이 외부 도구와 데이터에 접근하는 프로토콜
- A2A: AI 에이전트가 다른 AI 에이전트와 협업하는 프로토콜
비유하자면, ACP는 “운전자와 자동차의 인터페이스(핸들, 페달)”이고, MCP는 “자동차와 주유소/충전소의 인터페이스(주유구 규격)”이며, A2A는 “자동차 간 통신(V2V, Vehicle-to-Vehicle)”이다.
적용 범위
| 구분 | ACP | MCP | A2A |
|---|---|---|---|
| 주도 기업 | Zed | Anthropic | |
| 주요 목적 | IDE-에이전트 통신 | 모델-도구 연결 | 에이전트 간 협업 |
| 통신 프로토콜 | HTTP/2, SSE | JSON-RPC 2.0 | JSON-RPC 2.0 over HTTP |
| 비동기 지원 | 스트리밍 | 알림 기반 | 네이티브 비동기 |
| 상태 관리 | 세션 기반 | Stateless 선호 | Task 기반 상태 관리 |
| 보안 모델 | 로컬 우선 | 전송 계층 보안 | 엔터프라이즈급 인증 |
| SDK | Rust 중심 | Python, TypeScript | Python, Go, JS, Java, .NET |
4. 경쟁이 아닌 공존
흥미로운 점은, 이 세 프로토콜이 실제로는 서로 다른 계층의 문제를 해결한다는 것이다. A2A 공식 문서에서도 “A2A와 MCP는 상호 보완적”이라고 명시하고 있다.
실제 시나리오로 살펴보자. 개발자가 IDE에서 코드 리팩토링을 요청하는 상황이다:
- ACP 계층: IDE(Zed)가 ACP를 통해 Claude Agent에 리팩토링 요청을 전달한다.
- MCP 계층: Claude Agent가 MCP를 통해 파일 시스템 서버에서 코드를 읽고, GitHub MCP 서버에서 관련 이슈를 확인하고, 데이터베이스 MCP 서버에서 스키마를 조회한다.
- A2A 계층: Claude Agent가 코드 보안 검증이 필요하다고 판단하면, A2A를 통해 보안 전문 에이전트에 코드 리뷰를 요청한다. 보안 에이전트는 자신만의 도구와 로직으로 분석 후 결과를 반환한다.
// 실전 아키텍처: 세 프로토콜의 협업
[개발자]
|
[ACP] -- IDE와 에이전트 연결
|
[코딩 에이전트]
/ | [MCP] [MCP] [A2A]
| | |
[파일] [GitHub] [보안 에이전트]
시스템 API (독립 시스템)
|
[MCP]
|
[취약점 DB]
5. 현재 생태계 현황과 전망
MCP: 가장 빠른 확산
MCP는 현재 가장 넓은 생태계를 구축하고 있다. Claude Desktop, Cursor, Windsurf 등 주요 AI 도구들이 MCP를 지원하며, 수천 개의 MCP 서버가 오픈소스로 공개되어 있다. 파일 시스템, 데이터베이스, API 연동 등 실용적인 도구 서버가 풍부하다.
ACP: IDE 영역에서 성장
ACP는 Zed 에디터를 중심으로 성장하고 있다. 코딩 에이전트 시장이 급성장하면서 ACP의 중요성도 커지고 있다. VS Code, JetBrains 등 다른 IDE에서도 유사한 프로토콜 도입을 검토하고 있다.
A2A: 엔터프라이즈 시장 공략
A2A는 Google의 강력한 지원 아래 엔터프라이즈 시장을 타겟으로 한다. DeepLearning.AI 과정까지 개설되었고, IBM Research와 협력하여 교육 콘텐츠를 제작하고 있다. 여러 프레임워크(Google ADK, LangGraph, BeeAI)와의 통합을 지원하며, Release Candidate v1.0에 도달하여 안정화 단계에 접어들었다.
6. 개발자가 지금 해야 할 것
세 프로토콜 중 무엇을 먼저 배워야 할까? 상황별 추천은 다음과 같다:
- AI 코딩 도구를 만든다면: ACP를 학습하라. IDE 통합이 핵심이다.
- AI 앱에 외부 도구를 연결한다면: MCP부터 시작하라. 생태계가 가장 넓고 실전 예제가 풍부하다.
- 멀티 에이전트 시스템을 설계한다면: A2A를 주목하라. 에이전트 간 협업의 표준이 될 가능성이 높다.
- 세 가지 모두 관심 있다면: MCP -> ACP -> A2A 순서로 학습하길 권한다. MCP가 가장 범용적이고 학습 자료가 많다.
결론: 승자는 생태계
프로토콜 전쟁의 승자를 굳이 꼽자면, “생태계를 가장 빨리 구축한 쪽”이다. 현재로서는 MCP가 가장 앞서 있지만, 세 프로토콜이 해결하는 문제가 다르기 때문에 진정한 의미의 경쟁은 아니다. USB, HDMI, Bluetooth가 공존하듯, ACP, MCP, A2A도 각자의 계층에서 공존할 가능성이 크다.
다음 편에서는 에이전트 커머스, 특히 Stripe의 ACP 통합을 통해 “AI가 직접 결제하는 시대”를 다룬다.
이전 글: [AI 에이전트 프로토콜 시리즈 3편] ACP 실전 – Zed + Claude Agent로 AI 코딩 환경 구축하기