🤔 Question
👉 “MCP 안 쓰고 Spring REST API로 Python 실행하면 안 되나요? 어차피 둘 다 JSON으로 호출하는 거 아닌가요?” 라는 질문은 요즘 AI 백엔드를 만드는 팀에서 가장 자주 등장하는 질문입니다. 겉보기에는 맞는 말처럼 보이지만, 이 생각이 실무에서는 매우 큰 장애로 이어질 수 있습니다. 정확하게 말하면 “가능은 한데, 장기적으로는 MCP 없이 가는 팀은 전부 기술부채가 된다.” 일반적으론 적절하지 않으며 때에 따라선 매우매우매우 적절하지 않을 수 있다고 생각합니다.
이 질문의 정답은 결정되어 있습니다.
Spring AI MCP Server Boot를 사용하십시오
🎯 Spring REST 방식
👉 가장 흔한 접근은 Spring Boot에 Python 실행 API를 하나 만드는 것입니다. 예를 들어 아래와 같은 구조입니다.
POST /python/run
Content-Type: application/json
{
"code": "print(1 + 2)"
}
@RestController
public class PythonController {
@PostMapping("/python/run")
public String run(@RequestBody RunRequest req) {
return pythonExecutor.run(req.getCode());
}
}
# pythonExecutor 내부
def run(code):
exec(code)
👉 이 구조는 잘 동작합니다. 실제로 Python도 실행되고 결과도 JSON으로 돌아옵니다. 그래서 많은 팀이 “이걸로 충분하다”고 판단합니다.
🎯 MCP 방식
👉 MCP(Model Context Protocol)를 쓰면 LLM은 API를 호출하지 않고 “도구”를 호출합니다.
Tool: python.run
Args:
file: calc.py
inputs:
a: 1
b: 2
👉 이 구조는 단순한 HTTP 호출이 아닙니다. LLM이 이미 학습한 “도구 호출 언어”를 사용하는 것입니다. 즉, MCP는 사람이 만든 API가 아니라 AI가 이해하는 프로토콜입니다.
🎯 Spring REST가 AI 백엔드에서 터지는 이유
👉 Spring REST를 쓰면 LLM에게 이렇게 가르쳐야 합니다. “POST /python/run 을 호출하고 JSON으로 code를 보내라.” 이 규칙은 프롬프트에 적혀 있어야 하며, 모델은 이를 종종 잊어버리거나 틀리게 호출합니다.
You should call POST /python/run with JSON { "code": "..." }
👉 프롬프트가 길어질수록 모델은 이 규칙을 어기기 시작합니다. JSON이 깨지고, 필드명이 바뀌고, 호출 자체를 안 하기도 합니다. 이것이 실무에서 발생하는 대표적인 AI 장애입니다.
🎯 MCP가 안정적인 이유
👉 MCP에서는 도구가 명확하게 정의되어 있습니다.
{
"name": "python.run",
"description": "Execute a python file",
"parameters": {
"file": "string",
"inputs": "object"
}
}
👉 LLM은 이 정의를 보고 스스로 판단합니다. “이 작업은 python.run을 써야겠군.” 그래서 프롬프트로 API 사용법을 가르칠 필요가 없습니다. 이게 MCP의 본질입니다.
🎯 Agent 시스템에서의 차이
👉 Spring REST는 “문자열 기반 API”입니다. 반면 MCP는 “도구 그래프”입니다. 그래서 AutoGPT, Planner, Tool-using Agent 구조는 MCP 위에서만 안정적으로 동작합니다.
👉 Spring REST를 쓰는 순간, AI는 다시 프롬프트 기반 스크립트 봇이 됩니다. MCP를 쓰는 순간, AI는 실제로 도구를 사용하는 에이전트가 됩니다.
☔ 정리
👉 Spring REST는 사람이 쓰는 API입니다. MCP는 AI가 이해하는 프로토콜입니다. Python 실행은 둘 다 가능하지만, AI가 스스로 도구를 선택하고 계획을 세우는 구조는 MCP 위에서만 가능합니다. 그래서 MCP 없이 가는 AI 백엔드는 시간이 지날수록 기술 부채가 됩니다.
If I was of any help to you, please buy me coffee 😿😢😥
If you have any questions, please leave them in the comments
[2] Ads : https://apps.apple.com/us/app/beluga-classic-film-filters/id6744041061