본문 바로가기
C.W.K.
Stream
Lesson 01 of 04 · published

MCP vs Function Calling vs REST

~22 min · comparison, mcp, function-calling, rest

Level 0호기심 많은 독자
0 XP0/48 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

비슷해 보이지만 서로 다른 질문에 답하는 셋이야. 이 차이가 한 번 또렷해지면 '이거 MCP 로 해야 하나' 를 두고 빙빙 도는 논쟁이 사라져.

  • Function calling 은 LLM API 하나가 가진 기능이야. 네 코드모델 provider 사이를 잇는 선의 모양을 정해. Provider 는 네가 요청에 실어 보냈으니까 네 tool 을 알고, 그 밖에는 아무도 몰라. 한 application 안의 배관이지.
  • MCP 는 어느 client 든 어느 server 든 갖다 쓸 수 있게 해주는 protocol 이야. Contract 가 서로 따로 만들어진 host 와 server 사이에 놓여. Server 의 tool 은 붙어 있는 client 전부에게 보이고, 그 연결을 지배하는 건 모델이 아니라 protocol 이야. Application 과 application 사이의 배관인 셈이지.
  • REST/OpenAPI 는 고전적인 웹 API contract 야. 아무 HTTP client 나 쓸 수 있게 resource 와 method 와 status code 를 정해. 한쪽 끝에 LLM 이 앉아 있든 말든 상관 안 해. LLM 이 있기 한참 전부터 정확성을 따져온 물건이야. 범용 배관이고.

짧은 결정 트리는 이래. App 하나 안에서 모델 하나로 만든다면 function calling. 여러 AI product 가 갖다 쓸 tool 을 만든다면 MCP. 브라우저든 모바일이든 통합 스크립트든 AI agent 든 아무나 쓸 공개 API 라면 REST/OpenAPI. 그리고 이 셋은 층으로 쌓여. MCP server 의 tool 은 안에서 REST API 를 감싸고 있는 경우가 많고, LLM 은 그 MCP server 의 tool 을 provider 의 function-calling 모양으로 받아 써. 층마다 자기 값이 있어.

Code

세 layer stack — 구체 예시·text
User → Claude Desktop (host)
     → Anthropic Messages API (function-calling envelope)
     → MCP client → MCP server  (protocol contract)
                  → calls Stripe REST API   (REST contract)

Function-calling layer 가 모델의 tool call carry.
MCP layer 가 host↔server protocol carry.
REST layer 가 upstream service 의 HTTP request carry.

External links

Exercise

만들고 싶은 (또는 이미 만든) integration 을 셋 골라. 각각을 위 결정 트리에 태워서 어느 contract 가 맞는지 정해봐. 둘이 겹쳐 쌓이는 경우도 찾아봐 — 보통 그런 게 제일 강력한 integration 이지 중복이 아니야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.