분산환경에서의 AI Agent 활용을 위한 MSA 아키텍처 [ A2A Protocol ]
아직 오픈 전인 콘텐츠예요. 오픈하면 제가 버튼 추가해둘게요.
A2A PROTOCOL · AGENT ENGINEERING · LANGGRAPH
"에이전트 만들어 봤어요"로는 면접에서 더 할 말이 없습니다.
다른 에이전트가 호출하는 A2A 서버로 공개합니다
A2A 프로토콜(Agent2Agent Protocol)은 Google이 공개하고 Linux Foundation이 운영하는, 서로 다른 AI 에이전트가 Agent Card로 상대를 찾고 JSON-RPC로 작업을 주고받는 공개 표준입니다. 이 A2A 강의는 LangGraph 에이전트를 A2A 서버로 직접 구현하고, CrewAI·Google ADK 에이전트와 같은 규격으로 연결한 뒤, 공식 SDK로 직접 호출해 어긋난 곳을 찾아 고칩니다. 카카오 면접관이 "설계하고 설명할 수 있는가"를 기준으로 함께 설계했습니다.
01
면접관의 질문 — "최근에 만든 AI 프로젝트를 설명해 주세요."
두 지원자 중 누구를 뽑을까요
카카오에서 면접관으로 활동하는 백엔드 개발자와 함께 이 강의를 설계했습니다. 같은 질문에 두 지원자가 이렇게 답했습니다.
"LangGraph로 에이전트를 만들어 봤어요."
"LangGraph 에이전트를 A2A 서버로 공개했고, CrewAI 에이전트가 Agent Card를 읽고 호출합니다. 사람 승인과 웹훅까지 직접 구현했어요."
"저라면 B를 뽑습니다. A는 만들어 본 경험이고, B는 시스템을 나누고 연결해 본 경험이거든요. 면접에서 보는 건 그 차이입니다."
Choi · 카카오 백엔드 개발자 · 면접관
02
A2A 프로토콜이란 — 에이전트가 프로세스 밖으로 나가면
함수 호출로는 안 됩니다
A2A(Agent2Agent)는 서로 다른 서버·팀·프레임워크의 AI 에이전트가 같은 형식으로 작업을 맡기고 결과를 돌려받도록 정한 공개 표준입니다. 같은 프로세스 안에서는 함수 하나로 부르면 끝이지만, 에이전트가 밖으로 흩어지면 네트워크 너머의 상대와 요청 형식, 작업 상태, 결과 전달 방식부터 약속해야 하고, 응답이 늦거나 연결이 끊기는 상황도 함께 다뤄야 합니다. 이 강의는 그 약속을 하나씩 코드로 옮깁니다. MCP가 에이전트와 도구·데이터를 잇는 규격이라면, A2A는 에이전트가 다른 에이전트에게 작업을 맡기는 규격입니다. 둘은 경쟁 관계가 아니라 함께 씁니다.
03
A2A 프로토콜 핵심 개념 — MCP와의 차이부터 Agent Card·gRPC까지
04
A2A 서버, 이렇게 만들고 연결합니다
LangGraph 에이전트를 그대로 두고,
어댑터 하나로 A2A 서버로 공개합니다
LangGraph는 에이전트의 작업 흐름을 State·Node·Edge로 이루어진 그래프로 짜는 프레임워크입니다. 먼저 도구 호출, 조건부 분기, PostgreSQL 체크포인터, 사람 승인을 갖춘 에이전트를 만듭니다. 그다음 안쪽 그래프는 손대지 않고, 어댑터가 외부 taskId를 LangGraph의 대화 상태 키(thread_id)에 연결하고, 그래프가 사람 승인을 기다리며 멈춘 지점(interrupt)을 A2A의 INPUT_REQUIRED 상태로 바꿔 보여 줍니다. 체크포인터가 그래프 상태를 저장해 두기 때문에 멈춘 지점부터 다시 실행됩니다. 밖에서는 Agent Card와 JSON-RPC 하나로 보입니다.
안쪽 LangGraph 그래프는 그대로 두고, 어댑터가 Agent Card와 JSON-RPC로 A2A 서버를 엽니다.
A2A Task 생애주기 — 오래 걸리고, 멈추고, 사람을 기다리고,
끊겨도 결과가 도착합니다
SendMessage로 만든 Task가 SUBMITTED에서 WORKING으로 가고, 승인이 필요하면 INPUT_REQUIRED로 멈춥니다. 사람이 답하면 그 지점에서 다시 이어가 COMPLETED가 되고 Artifact를 남깁니다. 진행 상황은 SSE로, 연결이 끊긴 뒤의 결과는 웹훅으로 받습니다. 취소·실패·인증 상태도 같은 방식으로 다룹니다.
A2A Task 상태 전이: SUBMITTED → WORKING → INPUT_REQUIRED → COMPLETED. 결과는 Artifact로 남고, 진행 상황은 SSE와 웹훅으로 밖에 전달됩니다. 상태 8개 중 핵심 흐름이고, 취소(CANCELED)·실패(FAILED)·인증(AUTH_REQUIRED)도 같은 방식으로 다룹니다.
LangGraph · CrewAI · Google ADK를 같은 규격으로 묶어
멀티 에이전트 시스템을 만들고, 공식 SDK로 확인합니다
역할을 나눈 에이전트 팀을 만드는 CrewAI와, Google의 에이전트 개발 키트인 Google ADK의 계층형 에이전트를 같은 서버 골격으로 감싸 A2A 서버로 엽니다. 오케스트레이터는 각 서버의 Agent Card를 읽어 skill에 맞는 에이전트를 고르고 호출합니다. 마지막에 공식 A2A SDK로 직접 만든 서버를 호출해 어긋난 곳을 찾아 고칩니다. API 키 없이 내 노트북에서 전부 돌아갑니다. PostgreSQL과 Ollama를 Docker Compose로 띄웁니다.
05
A2A 전체 구조 — 강의가 끝나면 이렇게 연결됩니다
세 프레임워크로 만든 에이전트가 각자 A2A 서버로 열립니다. 호출하는 쪽은 안쪽이 어떤 프레임워크인지 몰라도 Agent Card를 읽고 같은 형식으로 요청합니다. 오케스트레이터, 공식 SDK, curl, gRPC 클라이언트가 같은 외부 스키마를 거쳐 들어오고, 연결이 끊긴 뒤의 결과는 웹훅 수신기가 push로 받습니다. 전부 Docker Compose 위에서 API 키 없이 돕니다.
초록 실선이 A2A 요청 경로, 점선이 웹훅으로 돌아오는 결과와 공용 인프라 연결입니다.
06
A2A 표준 — Google·Microsoft·AWS가 같은 규격을 함께 운영합니다
A2A는 Google이 공개한 뒤 Linux Foundation으로 넘어가, 지금은 한 회사의 규칙이 아니라 여러 회사가 함께 정하는 공개 표준입니다. 클라우드 3사가 모두 기술운영위원회에 들어가 있고, 각 사 제품에 A2A 호출이 들어가 있습니다.
기술운영위원회 (Technical Steering Committee)
이 강의에서 만드는 서버도 v1.0 규격을 기준으로 만들고, 마지막에 공식 SDK로 직접 호출해 어긋난 곳을 찾아 고칩니다. 출처: A2A GOVERNANCE.md · Linux Foundation 1주년 발표 (2026.04.09) · A2A v1.0 발표 · 각 제품 공식 문서. 회사명은 프로젝트 참여 사실을 밝히기 위한 표기이며, 이 강의와 제휴 관계는 없습니다.
07
A2A 공식 스펙을 펼쳐 놓고, 코드로 옮깁니다
08
누가 만들었나요
Choi — 카카오 백엔드 개발자 · 면접관
카카오 본사에서 서버를 개발하는 백엔드 개발자이며 면접관으로도 활동합니다. 문법을 외웠는지보다 시스템을 어떻게 나누고 설명하는지를 봅니다. 이 강의도 에이전트를 프로세스 밖으로 분리하고 외부 스키마를 설계하는 과정에 초점을 맞췄습니다.
“면접에서 프로그래밍 문법은 거의 안 묻습니다. 설계를 할 수 있느냐를 봅니다.”
Hong — 판교 플랫폼 서버 개발자
이 강의의 촬영과 커리큘럼 검토를 함께 했고, 오픈채팅방에서 질문에 답합니다.
같은 강사의 다른 강의, 수강생은 이렇게 적었습니다
“에이전트들이 어떤 원리로 움직이는지 눈에 보이기 시작했습니다.”
에이전트 원리 이해
“복잡한 프레임워크에 의존하기보다 에이전트가 동작하는 핵심 원리를 직접 구현해보며 이해할 수 있었습니다.”
직접 구현
“에이전트 루프를 raw로 구현한 뒤 Vercel AI SDK로 다시 쌓는 방식이라 그 안이 처음으로 보였습니다.”
구조를 이해하는 실습
“Claude나 Codex 사용법이 아니라 코어적인 부분을 쉽게 풀어 설명해주셔서 더욱 유익했습니다.”
핵심 개념 설명
“AI Agent가 내부적으로 어떻게 도는지 바닥부터 구현해보면서 AI 시스템을 이해할 수 있었습니다.”
처음부터 구현
“처음에는 어려운 내용이라고 생각했는데 쉽게 풀어서 설명해주셔서 편하게 수강했습니다.”
진입 장벽 완화같은 강사가 만든 ‘직접 만들며 배우는 AI 에이전트’ 강의의 실제 인프런 수강평에서 발췌했습니다.
취업했다고,
이직했다고 연락이 올 때가 있어요
강의를 듣다 막히는 부분, 본인 회사의 에이전트를 밖으로 열면서 생기는 질문, 커리어와 현업 이야기를 나누는 오픈채팅방입니다.
"만들어 봤어요"에서 "나누고 연결해 봤어요"로,
다음 면접에서 답이 달라집니다
이 A2A 프로토콜 강의를 마치면 직접 구현한 A2A 서버, 사람 승인에서 멈췄다 이어 가는 Task 흐름, 세 프레임워크를 한 규격으로 연결한 오케스트레이터가 여러분 코드로 남습니다. 면접에서 "어떻게 나누고 연결했는지"를 코드로 설명할 수 있습니다.