# [[JSON-RPC 2.0]] ## ๐Ÿ“Œ Brief Summary JSON-RPC 2.0์€ AI ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค ํ™˜๊ฒฝ์—์„œ ๋ชจ๋ธ(ํด๋ผ์ด์–ธํŠธ)๊ณผ ์™ธ๋ถ€ ๋„๊ตฌ ๋ฐ ๋ฆฌ์†Œ์Šค(์„œ๋ฒ„) ๊ฐ„์˜ ํ†ต์‹ ์„ ํ‘œ์ค€ํ™”ํ•˜๋Š” ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ์ง• ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ MCP(Model Context Protocol) ๋ฐ ACP(Agent Client Protocol)์™€ ๊ฐ™์€ ์—์ด์ „ํŠธ ํ†ต์‹  ํ‘œ์ค€์˜ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์„ ๊ตฌ์„ฑํ•˜์—ฌ ๋ฉ”์‹œ์ง€์˜ ๊ตฌ์กฐ์™€ ์˜๋ฏธ(Semantics)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response)์„ ๊ณ ์œ  ID๋กœ ์—ฐ๊ด€ ์ง“๊ณ , ์‘๋‹ต์„ ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š๋Š” ๋‹จ๋ฐฉํ–ฅ ์•Œ๋ฆผ(Notification) ์ „์†ก์„ ์ง€์›ํ•˜์—ฌ ์—์ด์ „ํŠธ์™€ ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๊ฐ„์˜ ๊ฒฐ์ •๋ก ์  ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ“– Core Content * **๋ฐ์ดํ„ฐ ๊ณ„์ธต์˜ ๋ฉ”์‹œ์ง€ ๊ตฌ์กฐํ™”:** JSON-RPC 2.0์€ ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค์™€ ์™ธ๋ถ€ ๋„๊ตฌ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ณ„์ธต(Data layer) ํ”„๋กœํ† ์ฝœ๋กœ ๊ธฐ๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” JSON-RPC 2.0 ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์ ์ ˆํžˆ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ๊ณ ์œ ํ•œ `id` ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ๊ณผ ์‘๋‹ต ๊ฐ„์˜ ์ƒํ˜ธ ์—ฐ๊ด€์„ฑ(correlation)์„ ๋ณด์žฅํ•˜๋ฉฐ, ํ†ต์‹ ์˜ ํƒ€์ž… ์•ˆ์ •์„ฑ(Type safety)๊ณผ ๋ช…ํ™•์„ฑ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค [1-4]. * **์•Œ๋ฆผ(Notification) ์‹œ๋งจํ‹ฑ ์ง€์›:** ์‘๋‹ต์„ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ๋‹จ๋ฐฉํ–ฅ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด JSON-RPC 2.0์˜ ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๋ฆผ ๋ฉ”์‹œ์ง€์—๋Š” `id` ํ•„๋“œ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋Š” ๋„๊ตฌ ๋ชฉ๋ก์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋‚˜ ์‹ค์‹œ๊ฐ„ ๋™์  ์—…๋ฐ์ดํŠธ๋ฅผ ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ(AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)์— ์ฆ‰๊ฐ์ ์œผ๋กœ ํ†ต์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3, 5, 6]. * **์ „์†ก ๊ณ„์ธต(Transport Layer)๊ณผ์˜ ๊ฒฐํ•ฉ:** JSON-RPC 2.0 ๋ฉ”์‹œ์ง€๋Š” ํ†ต์‹  ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ •์˜ํ•˜๋Š” ์ „์†ก ๊ณ„์ธต์„ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋กœ์ปฌ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ์ง์ ‘ ํ†ต์‹ ์„ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์—†๋Š” ํ‘œ์ค€ ์ž…์ถœ๋ ฅ(stdio)์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ์›๊ฒฉ ์„œ๋ฒ„์™€์˜ ํ†ต์‹  ๋ฐ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์œ„ํ•ด Server-Sent Events(SSE)๊ฐ€ ๊ฒฐํ•ฉ๋œ HTTP POST๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก๋ฉ๋‹ˆ๋‹ค [7]. * **ํ•˜๋„ค์Šค ๋ฐ ์—์ด์ „ํŠธ ํ”„๋กœํ† ์ฝœ์˜ ํ‘œ์ค€ ๊ธฐ๋ฐ˜:** Anthropic์˜ MCP๋Š” Language Server Protocol(LSP)์˜ ๋ฉ”์‹œ์ง€ ํ๋ฆ„ ๊ฐœ๋…์„ ์žฌ์‚ฌ์šฉํ•˜๋ฉฐ JSON-RPC 2.0 ๊ธฐ๋ฐ˜ ์œ„์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค [8]. ๋˜ํ•œ ์—์ด์ „ํŠธ์™€ IDE ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ํ†ต์‹ ์„ ํ‘œ์ค€ํ™”ํ•˜๋Š” ACP(Agent Client Protocol) ์—ญ์‹œ JSON-RPC 2.0์„ ์‚ฌ์šฉํ•˜๋ฉฐ, OpenAI์˜ Codex ํ•˜๋„ค์Šค๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ํ‘œ๋ฉด์— ์—์ด์ „ํŠธ ๋Ÿฐํƒ€์ž„์„ ๋…ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด stdio ๊ธฐ๋ฐ˜์˜ JSON-RPC/JSONL ํ”„๋กœํ† ์ฝœ(Item/Turn/Thread ํ”„๋กœํ† ์ฝœ)์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค [9, 10]. ## โš–๏ธ Trade-offs & Caveats * **์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ํ™•์žฅ์„ฑ์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„:** JSON-RPC 2.0์„ stdio(ํ‘œ์ค€ ์ž…์ถœ๋ ฅ) ์ „์†ก๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋กœ์ปฌ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ 2~15ms์˜ ๋งค์šฐ ๋‚ฎ์€ ์ง€์—ฐ ์‹œ๊ฐ„์œผ๋กœ ๋‹จ์ผ ํ•˜๋„ค์Šค ์—์ด์ „ํŠธ์˜ ๊ธด๋ฐ€ํ•œ ํ†ตํ•ฉ ๋ฃจํ”„์— ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๋‹ค์ค‘ ํ…Œ๋„ŒํŠธ(Multi-tenant) ๋˜๋Š” ์›๊ฒฉ ํ™˜๊ฒฝ์œผ๋กœ ํ™•์žฅํ•  ๋•Œ ๋ถˆ๋ฆฌํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ JSON-RPC๋ฅผ HTTP+SSE ์ „์†ก์œผ๋กœ ๋„˜๊ฒจ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ 50~200ms ์ด์ƒ์˜ ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [11, 12]. * **ํ”„๋กœํ† ์ฝœ ์ž์ฒด์˜ ๋ณด์•ˆ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ ํ•œ๊ณ„:** JSON-RPC 2.0 ํ”„๋กœํ† ์ฝœ ์ž์ฒด์—๋Š” ์ƒํƒœ ์ €์žฅ(Stateful) ์„ธ์…˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด๋‚˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์Šคํ‘ธํ•‘(Tool spoofing)์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ณด์•ˆ ๋ชจ๋ธ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ JSON-RPC๋ฅผ ๋„์ž…ํ•˜๋Š” ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค๋Š” ํ”„๋กœํ† ์ฝœ ๊ณ„์ธต์—๋งŒ ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ, ์•…์˜์ ์ธ ๋„๊ตฌ ์ฃผ์ž…์ด๋‚˜ ๊ถŒํ•œ ๋‚จ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋„ค์Šค์˜ ์ˆ˜๋ช…์ฃผ๊ธฐ ํ›…(Lifecycle Hooks, L-component)์„ ํ†ตํ•œ ๊ฐ•๋ ฅํ•œ ์‚ฌ์ „/์‚ฌํ›„ ๊ฒ€์ฆ ์ •์ฑ…์„ ์ถ”๊ฐ€๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [13-15]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A (์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ )] * [[Model Context Protocol]] (MCP) * ์—ฐ๊ฒฐ ์ด์œ : AI ์—์ด์ „ํŠธ์™€ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ, ๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์œผ๋กœ JSON-RPC 2.0์„ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [1, 3]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: JSON-RPC 2.0์ด ์‹ค์ œ ์—์ด์ „ํŠธ ๋Ÿฐํƒ€์ž„์—์„œ ๋„๊ตฌ ํƒ์ƒ‰(Discovery), ์‹คํ–‰(Execution), ์ž์› ์ ‘๊ทผ์— ํ™œ์šฉ๋˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ์Šคํ‚ค๋งˆ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * [[Agent Client Protocol]] (ACP) * ์—ฐ๊ฒฐ ์ด์œ : ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์™€ IDE ๋“ฑ์˜ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ํ†ตํ•ฉ์„ ํ‘œ์ค€ํ™”ํ•˜๊ธฐ ์œ„ํ•ด JSON-RPC 2.0์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค [9]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค์˜ ์‹คํ–‰ ๋ฃจํ”„(E-component)๊ฐ€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ณ  ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋ฐ ์ทจ์†Œ(Cancellation) ๋ช…๋ น์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [๊ด€๊ณ„ ์œ ํ˜• B (๊ตฌํ˜„/์ „์†ก ๋งค์ปค๋‹ˆ์ฆ˜)] * [[stdio transport]] * ์—ฐ๊ฒฐ ์ด์œ : JSON-RPC 2.0 ๋ฉ”์‹œ์ง€๋ฅผ ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ ์—†์ด ๋กœ์ปฌ ๋จธ์‹ ์—์„œ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ์ „์†ก ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค [7]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋‹จ์ผ ํ•˜๋„ค์Šค ๋‚ด์—์„œ ๋„๊ตฌ ์‹คํ–‰(T-component) ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์‹œ์Šคํ…œ ๋ ˆ๋ฒจ์˜ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * [[Lifecycle Hooks]] (ํ•˜๋„ค์Šค L-component) * ์—ฐ๊ฒฐ ์ด์œ : JSON-RPC 2.0์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต์‹ ํ•˜๋Š” ๋„๊ตฌ ๋ฐ ์„œ๋ฒ„์— ๋Œ€ํ•ด, ์‹ค์ œ ์‹คํ–‰ ๊ถŒํ•œ์„ ํ†ต์ œํ•˜๊ณ  ์ •์ฑ…์„ ์ง‘ํ–‰(Policy enforcement)ํ•˜๋Š” ํ•˜๋„ค์Šค์˜ ํ•„์ˆ˜ ๋ณด์•ˆ/๊ฑฐ๋ฒ„๋„Œ์Šค ๊ณ„์ธต์ž…๋‹ˆ๋‹ค [13, 14, 16]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋‹จ์ˆœํžˆ JSON-RPC ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ์„ ๋„˜์–ด, ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ•˜๋„ค์Šค ํ™˜๊ฒฝ์—์„œ ๋„๊ตฌ ํ˜ธ์ถœ์„ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•˜๋Š” ๋ฐฉ์–ด ๊ณ„์ธต์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์ถ•ํ•˜๋Š”์ง€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions * ๋‹ค์ค‘ ์—์ด์ „ํŠธ(Multi-agent) ์‹œ์Šคํ…œ์—์„œ JSON-RPC 2.0 ๊ธฐ๋ฐ˜์˜ ์•Œ๋ฆผ(Notification) ๋ฉ”์‹œ์ง€๋Š” ์—์ด์ „ํŠธ ๊ฐ„์˜ ์ž‘์—… ์ƒํƒœ(Task graph)๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€? * JSON-RPC 2.0 ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค์˜ ์‹คํ–‰ ๋ฃจํ”„(E-component)๋Š” ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„ ์ดˆ๊ณผ(Timeout)๋‚˜ ์Šคํ‚ค๋งˆ ๋ถˆ์ผ์น˜ ๋“ฑ ์™ธ๋ถ€ ๋„๊ตฌ ์„œ๋ฒ„์˜ ์‹คํŒจ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๋ณต๊ตฌ(Retry/Graceful degradation)ํ•˜๋Š”๊ฐ€? * ๋กœ์ปฌ ํ”„๋กœ์„ธ์Šค ๊ฐ„์˜ JSON-RPC ํ†ต์‹ (stdio)๊ณผ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ์˜ HTTP ํ†ต์‹  ๊ฐ„์— ํŠธ๋žœ์žญ์…˜์˜ ์ƒํƒœ์™€ ์ปจํ…์ŠคํŠธ ์ถœ์ฒ˜(Provenance)๋ฅผ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋„ค์Šค ์„ค๊ณ„๋Š” ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋Š”๊ฐ€? * JSON-RPC 2.0 ํฌ๋งท์„ ํ†ตํ•ด ์˜ค๊ฐ€๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋„๊ตฌ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ํ”„๋กฌํ”„ํŠธ ์œˆ๋„์šฐ ํ•œ๊ณ„ ๋‚ด์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด, ํ•˜๋„ค์Šค์˜ ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ์ž(C-component)๋Š” ์–ด๋–ค ๊ณ„์ธต์  ์š”์•ฝ ๋ฐ ์•„ํ‹ฐํŒฉํŠธ ๋ถ„๋ฆฌ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€? ### Practical Application Contexts * **Implementation:** MCP ์„œ๋ฒ„ ๊ตฌ์ถ• ์‹œ JSON-RPC 2.0 ๊ทœ๊ฒฉ์— ๋งž์ถฐ `tools/list`, `tools/call` ๋“ฑ ๊ณ ์œ  ID๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. * **System Design:** ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค ์„ค๊ณ„ ์‹œ, ๋กœ์ปฌ ๋ณด์•ˆ ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด๋ถ€์˜ ๋„๊ตฌ๋Š” stdio ๊ธฐ๋ฐ˜ JSON-RPC๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ์›๊ฒฉ ์—์ด์ „ํŠธ ๊ฐ„ ์œ„์ž„์€ HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ „์†ก ๊ณ„์ธต์„ ๋ถ„๋ฆฌํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. * **Operation / Maintenance:** ํ•˜๋„ค์Šค์˜ ํ‰๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค(V-component)๋‚˜ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ(Observability) ์‹œ์Šคํ…œ์„ ํ†ตํ•ด JSON-RPC 2.0 ๋ฉ”์‹œ์ง€ ํŽ˜์ด๋กœ๋“œ์˜ ๋กœ๊ทธ๋ฅผ ์บก์ฒ˜ํ•˜์—ฌ, ์—์ด์ „ํŠธ์˜ ์‹คํ–‰ ๊ถค์ (Trajectory)๊ณผ ๋„๊ตฌ ํ˜ธ์ถœ ์‹คํŒจ ์›์ธ์„ ์ถ”์  ๋ฐ ๋””๋ฒ„๊น…ํ•ฉ๋‹ˆ๋‹ค. * **Learning Path:** LLM ๋ชจ๋ธ์˜ ์ถœ๋ ฅ์ด ์™ธ๋ถ€ ์„ธ๊ณ„์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ๊ตฌ์กฐํ™”๋œ ๋ช…๋ น์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š”์ง€ ์ดํ•ดํ•˜๊ณ ์ž ํ•  ๋•Œ, ๊ธฐ๋ฐ˜์ด ๋˜๋Š” JSON-RPC 2.0 ์‚ฌ์–‘์„ ํ•™์Šตํ•˜๊ณ  ์ด๋ฅผ ์ ์šฉํ•œ MCP ์•„ํ‚คํ…์ฒ˜ ์ŠคํŽ™์œผ๋กœ ๋‚˜์•„๊ฐ‘๋‹ˆ๋‹ค. * **My Project Relevance:** ๋งž์ถคํ˜• AI ์—…๋ฌด ์ž๋™ํ™” ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ, ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ๋ ˆ๊ฑฐ์‹œ API๋ฅผ JSON-RPC 2.0 ๊ธฐ๋ฐ˜์˜ ํ‘œ์ค€ MCP ์„œ๋ฒ„๋กœ ๋ž˜ํ•‘(Wrapping)ํ•˜์—ฌ ํŠน์ • ์—์ด์ „ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ ์ข…์†์„ฑ ์—†์ด ๋ฒ”์šฉ์ ์œผ๋กœ ํ†ต์‹ ํ•˜๋„๋ก ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ### Adjacent Topics * [[Language Server Protocol]] (LSP) * ํ™•์žฅ ๋ฐฉํ–ฅ: JSON-RPC๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ฃผ์š” ํ‘œ์ค€์œผ๋กœ, ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค๊ฐ€ ๋ณต์žกํ•œ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ์—์„œ ์‹œ๋งจํ‹ฑ ์ฝ”๋“œ ๋ถ„์„ ๋ฐ ์‹ฌ๋ณผ ํƒ์ƒ‰(find_symbol ๋“ฑ)์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ๋„๊ตฌํ™”ํ•˜๋Š”์ง€ ๊ทธ ๊ฐœ๋…์„ ์—ฐ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * [[Agent-to-Agent Protocol]] (A2A) * ํ™•์žฅ ๋ฐฉํ–ฅ: ์—์ด์ „ํŠธ์™€ ๋„๊ตฌ ๊ฐ„ ํ†ต์‹ (MCP)์ด ์•„๋‹Œ, ์›๊ฒฉ ์—์ด์ „ํŠธ ๊ฐ„์˜ ์œ„์ž„๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ์„œ ๋‹ค์ค‘ ์—์ด์ „ํŠธ ํ•˜๋„ค์Šค ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๊ณ„์ธต์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- *Last updated: 2026-05-01*