๐Ÿค– MCP์™€ A2A: ์—์ด์ „ํŠธ๋“ค์ด ์„ธ์ƒ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฒ•

LinkDropperยท2025๋…„ 7์›” 24์ผ
5

Others

๋ชฉ๋ก ๋ณด๊ธฐ
4/4
post-thumbnail

๐Ÿงฉ ๋ฐฐ๊ฒฝ: ์™œ MCP์™€ A2A๋ฅผ ์•Œ์•„์•ผ ํ• ๊นŒ?

๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์€ ๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ์ƒ์„ฑ๊ธฐ๋ฅผ ๋„˜์–ด โ€œ์—์ด์ „ํŠธโ€๋กœ ์ง„ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ AI๋Š” ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™ํ•˜๊ณ , ๋‹ค๋ฅธ AI์™€ ํ˜‘์—…ํ•˜๋ฉฐ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋ณต์žกํ•œ ์—ฐ๋™๊ณผ ํ˜‘์—…์€ ์–ด๋–ป๊ฒŒ ํ‘œ์ค€ํ™”๋˜์–ด ์žˆ์„๊นŒ์š”?

๐Ÿ‘‰ ํ•ด๋‹ต์€ ๋ฐ”๋กœ ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ํ”„๋กœํ† ์ฝœ, MCP (Model Context Protocol)์™€ A2A (Agent-to-Agent Protocol)์— ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ›  MCP: ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” LLM์˜ ์ƒˆ๋กœ์šด ์Šต๊ด€

โœ… MCP๋ž€?

MCP๋Š” LLM์ด ์™ธ๋ถ€ ๋„๊ตฌ(API, DB, ์„œ๋น„์Šค ๋“ฑ)๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ ํ˜ธ์ถœ์šฉ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.
๊ธฐ์กด์˜ ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฐ˜ ๋„๊ตฌ ์„ค๋ช… ๋ฐฉ์‹์—์„œ ๋ฒ—์–ด๋‚˜, ๊ธฐ๊ณ„๊ฐ€ ํ•ด์„ ๊ฐ€๋Šฅํ•œ JSON ํ˜•์‹์œผ๋กœ ๋„๊ตฌ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์น˜ LLM์—๊ฒŒ โ€œ์ด ๋„๊ตฌ๋Š” ์ด๋ ‡๊ฒŒ ์“ฐ๋Š” ๊ฑฐ์•ผโ€๋ผ๊ณ  ๊ฐ€๋ฅด์ณ์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

๐Ÿ” ์ž‘๋™ ๋ฐฉ์‹ ์š”์•ฝ

  1. tools/describe: ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ ๋ชฉ๋ก๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ตฌ์กฐ๋ฅผ ์กฐํšŒ
  2. tools/call: ๋„๊ตฌ ํ˜ธ์ถœ ๋ฐ ๊ฒฐ๊ณผ ์ˆ˜์‹ 
  3. ํ˜ธ์ถœ ํ˜•์‹: JSON-RPC 2.0 ๊ธฐ๋ฐ˜

๐Ÿ“ฆ ํ˜ธ์ถœ ์˜ˆ์‹œ

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "tools/call",
  "params": {
    "name": "getWeather",
    "arguments": {
      "location": "Seoul"
    }
  }
}

โœ… ์žฅ์  ์š”์•ฝ

  • ํ”„๋กฌํ”„ํŠธ ๋ฐ˜๋ณต ์—†์ด ๋„๊ตฌ ํ˜ธ์ถœ ๊ฐ€๋Šฅ
  • LLM์ด ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ž๋™ ๋„๊ตฌ ์„ ํƒ
  • ๋ณต์žกํ•œ ๋„๊ตฌ ์ฒด๊ณ„๋„ ์‰ฝ๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅ

๐Ÿค A2A: ์—์ด์ „ํŠธ๊ฐ€ ์—์ด์ „ํŠธ๋ฅผ ๋ถ€๋ฅด๋Š” ๋ฒ•

โœ… A2A๋ž€?

A2A๋Š” ํ•˜๋‚˜์˜ ์—์ด์ „ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ์—๊ฒŒ ์ž‘์—…(Task)์„ ์œ„์ž„ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—์ด์ „ํŠธ ๊ฐ„ ํ˜‘์—… ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

์˜ˆ: ๋ฒ•๋ฅ  ๋ถ„์„ ์—์ด์ „ํŠธ โ†’ ๋ฒˆ์—ญ ์—์ด์ „ํŠธ โ†’ ์š”์•ฝ ์—์ด์ „ํŠธ๋กœ ์ด์–ด์ง€๋Š” ๋‹ค๋‹จ๊ณ„ ์ž‘์—…

๐Ÿ” ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

  • Agent Card: ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ ์ •์˜ (API ๊ฒฝ๋กœ, ์ž…๋ ฅ๊ฐ’, ์ธ์ฆ ๋“ฑ ํฌํ•จ)
  • Task ๊ฐ์ฒด: ์ž‘์—… ์š”์ฒญ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ (submitted โ†’ working โ†’ completed)
  • Transport: JSON-RPC over HTTP, SSE ๋˜๋Š” Webhook ๊ธฐ๋ฐ˜

๐Ÿ“ฆ ์˜ˆ์‹œ

{
  "task_id": "translate_contract",
  "from": "agent://legal_reader",
  "to": "agent://translator",
  "input": {
    "text": "์ด ๊ณ„์•ฝ์„œ๋Š”..."
  }
}

โœ… A2A์˜ ์žฅ์ 

  • ์—์ด์ „ํŠธ์˜ ์—ญํ• ์„ ๋Šฅ๋ ฅ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ
  • ์ƒํƒœ ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ ์ž‘์—… ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  • ๋ณ‘๋ ฌ, ์ˆœ์ฐจ ์ž‘์—… ์กฐํ•ฉ์ด ์ž์œ ๋กœ์›€
  • Agent Directory๋ฅผ ํ†ตํ•œ ๋™์  ์—ฐ๊ฒฐ/ํƒ์ƒ‰ ๊ฐ€๋Šฅ

๐Ÿ”— A2A์™€ MCP๋Š” ์–ด๋–ป๊ฒŒ ํ•จ๊ป˜ ์“ฐ์ผ๊นŒ?

MCP์™€ A2A๋Š” ์—ญํ• ์ด ๋‹ค๋ฅด์ง€๋งŒ, ์‹ค์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ์„œ๋กœ ๋ณด์™„์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ์‚ฌ์šฉ์ž๊ฐ€ โ€œ๋ฐฐ์†ก ์ƒํƒœ ํ™•์ธโ€ ์š”์ฒญ
  2. ๋ฉ”์ธ ์—์ด์ „ํŠธ๋Š” ๋ฐฐ์†ก ์ „์šฉ ์—์ด์ „ํŠธ์—๊ฒŒ A2A๋กœ ์œ„์ž„
  3. ๋ฐฐ์†ก ์—์ด์ „ํŠธ๋Š” MCP๋ฅผ ํ†ตํ•ด ๋ฐฐ์†ก API ํ˜ธ์ถœ
  4. ๊ฒฐ๊ณผ๋Š” A2A๋ฅผ ํ†ตํ•ด ๋ฉ”์ธ ์—์ด์ „ํŠธ โ†’ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ

๐Ÿ“Š MCP vs A2A ๋น„๊ต

ํ•ญ๋ชฉMCPA2A
๋Œ€์ƒ๋„๊ตฌ(API, DB ๋“ฑ)๋‹ค๋ฅธ ์—์ด์ „ํŠธ
๋ชฉ์ LLM โ†” ๋„๊ตฌ ์—ฐ๊ฒฐ์—์ด์ „ํŠธ โ†” ์—์ด์ „ํŠธ ์—ฐ๊ฒฐ
๋ฐฉ์‹JSON-RPC 2.0, ๋„๊ตฌ ์„œ์ˆ  ๊ธฐ๋ฐ˜Task ์ค‘์‹ฌ, ์ƒํƒœ ๊ด€๋ฆฌ ๊ธฐ๋ฐ˜
ํ™œ์šฉ์™ธ๋ถ€ API ์‹คํ–‰๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ์กฐ๋ฆฝ
์˜ˆ๊ฒ€์ƒ‰ API, DB ์ฟผ๋ฆฌ, ๊ณ„์‚ฐ๊ธฐ๋ฒˆ์—ญ โ†’ ๋ฆฌ๋ทฐ โ†’ QA

๐Ÿ”€ ์ฐธ๊ณ ๋กœ ์•Œ์•„๋‘๋ฉด ์ข‹์€ ์šฉ์–ด: ACP

  • ACP (Agent Communication Protocol)์€ ๋ฉ”์‹œ์ง• ์ค‘์‹ฌ ๊ตฌ์กฐ
  • A2A๋Š” ์ž‘์—…(Task) ์œ„์ž„ ์ค‘์‹ฌ
  • MCP๋Š” ๋„๊ตฌ์™€ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค

โ†’ ์„ธ ๊ฐ€์ง€๋Š” ๋ชฉ์ ๊ณผ ์—ญํ• ์ด ์„œ๋กœ ๋‹ค๋ฅด๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค


๐Ÿง  ๋งˆ๋ฌด๋ฆฌ: ์—์ด์ „ํŠธ ์‹œ๋Œ€์˜ ํ•„์ˆ˜ ํ”„๋กœํ† ์ฝœ

MCP์™€ A2A๋Š” ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ ์ด ์•„๋‹™๋‹ˆ๋‹ค.
AI๊ฐ€ ํ˜„์‹ค์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„๊ตฌ๋ฅผ ์“ฐ๊ณ , ๋‹ค๋ฅธ AI์™€ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ํ•ต์‹ฌ ์ธํ”„๋ผ์ž…๋‹ˆ๋‹ค.

์•ž์œผ๋กœ LLM ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด, MCP์™€ A2A๋Š” ๋ฐ˜๋“œ์‹œ ์ดํ•ดํ•˜๊ณ  ์„ค๊ณ„์— ๋ฐ˜์˜ํ•ด์•ผ ํ•  ์š”์†Œ์ž…๋‹ˆ๋‹ค.


๐Ÿงช ๋งํฌ ๋“œ๋ผํผ, ์ง€๊ธˆ ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ ์ค‘์ž…๋‹ˆ๋‹ค

๋งํฌ ๋“œ๋ผํผ๋Š” ๋‹จ์ˆœํ•œ ์ €์žฅ ํˆด์ด ์•„๋‹™๋‹ˆ๋‹ค.
์ •๋ฆฌํ•˜๊ณ , ์ˆ˜์ •ํ•˜๊ณ , ๋‹ค์‹œ ๊บผ๋‚ด๋ณด๊ฒŒ ๋งŒ๋“œ๋Š” ๋งํฌ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์ง€ํ–ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

โ€ข ๐Ÿ”— ๋น ๋ฅด๊ณ  ๊ฐ„ํŽธํ•œ ๋งํฌ ์ €์žฅ
โ€ข ๐Ÿง  ์ €์žฅํ•œ ๋งํฌ๋ฅผ ํด๋”๋ณ„๋กœ ์ •๋ฆฌ
โ€ข ๐ŸŒ ํด๋”๋ฅผ ์นœ๊ตฌ์—๊ฒŒ ๊ณต์œ  ๊ฐ€๋Šฅ
โ€ข โšก ํฌ๋กฌ ์ต์Šคํ…์…˜ ์›ํด๋ฆญ ์ €์žฅ

๐Ÿ‘‰ ๋งํฌ ๋“œ๋ผํผ ๋ฒ ํƒ€ ์ฒดํ—˜ํ•˜๋Ÿฌ ๊ฐ€๊ธฐ
๐Ÿ‘‰ ํฌ๋กฌ ์›น์Šคํ† ์–ด์—์„œ ์„ค์น˜ํ•˜๊ธฐ

๐Ÿ’ฌ ์นด์นด์˜คํ†ก ์ฑ„๋„ ์ถ”๊ฐ€ํ•˜๊ณ  ์†Œ์‹ ๋ฐ›๊ธฐ

์„œ๋น„์Šค ์—…๋ฐ์ดํŠธ
๊ธฐ๋Šฅ ๊ฟ€ํŒ
์นด์นด์˜คํ†ก ์ฑ„๋„์„ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ๋ฐ›์•„๋ณด์„ธ์š”!
๐Ÿ‘‰ ์นด์นด์˜คํ†ก ์ฑ„๋„ ์ถ”๊ฐ€ํ•˜๊ธฐ


๊ถ๊ธˆํ•˜์‹  ์ ์ด๋‚˜ ์‹ค์ œ ๊ตฌํ˜„์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”! ๐Ÿ™Œ

profile
โ€œ๊ธฐ๋กํ•˜๋Š” ์Šต๊ด€์„ ๋„๊ตฌ๋กœ ๋งŒ๋“ค๋‹ค โ€” ๋‘ ๊ฐœ๋ฐœ์ž์˜ ๋งํฌ ๋“œ๋ผํผ ๊ตฌ์ถ•๊ธฐโ€

0๊ฐœ์˜ ๋Œ“๊ธ€