byteforce

CPN 한국어 자습서 · 러닝패스 2 / 4 — Building with the Claude API

MCP

MCP 정리

MCP review

프로젝트를 다 만들었으니, 다음 주제로 넘어가기 전에 세 가지 서버 프리미티브 — 도구·리소스·프롬프트 — 를 한 번 정리합니다. 특히 각각을 앱의 어느 부분이 제어하는지에 주목하면, 언제 무엇을 써야 할지 감이 잡힙니다.

전체 내레이션영상 나레이션 한국어 번역 (전체)

Stephen Grider · Anthropic 기술 스태프

프로젝트는 모두 끝났지만, 다음으로 넘어가기 전에 우리가 배운 세 가지 서버 프리미티브 — 도구, 리소스, 프롬프트 — 를 빠르게 복습하려 합니다. 특히 각각에 대해 흥미로운 점 하나를 짚고 싶습니다. 바로 앱의 어느 부분이 각각을 실제로 실행하는지, 다시 말해 일반적인 애플리케이션에서 누가 각각을 실제로 돌리고 누가 이득을 보는지입니다.

먼저, 도구(tools)는 모델이 제어합니다. 즉 어떤 도구를 언제 실행할지는 오직 Claude가 결정합니다. 리소스(resources)는 앱이 제어합니다. 다시 말해 앱 안에서 도는 어떤 코드가 리소스가 제공하는 데이터가 필요하다고 판단합니다. 리소스를 실행하기로 결정하고 그 반환 데이터를 어딘가에 — 가령 UI에 — 쓰는 것은 여러분 앱의 코드입니다.

우리 프로젝트에서도 그랬습니다. 리소스를 가져와 그 데이터를 UI에서 자동완성 목록을 만드는 데 썼고, 또 리소스를 가져와 프롬프트를 보강하기도 했습니다. 둘 다 우리가 직접 작성한 애플리케이션 코드였습니다.

마지막으로 프롬프트(prompts)는 사용자가 제어합니다. 사용자가 프롬프트를 언제 실행할지 결정합니다. 버튼이나 메뉴 같은 UI 요소를 클릭해 프롬프트 실행을 시작할 수도 있고, 우리가 한 것처럼 슬래시 명령을 쓸 수도 있습니다.

각각을 무엇이 제어하는지 짚는 이유는 그 용도를 가늠하게 하기 위해서입니다. Claude에 능력을 더하고 싶다면 MCP 서버에 도구를 구현하거나 MCP 클라이언트로 어떤 서버의 도구를 소비하는 쪽을 보게 됩니다. UI에 내용을 보여 주는 등 앱에 데이터를 들이고 싶다면 리소스를 쓰게 됩니다. 미리 정의된 워크플로를 구현하고 싶다면 프롬프트를 보게 됩니다.

이 모든 개념의 예는 공식 Claude 인터페이스인 Claude.ai에서 볼 수 있습니다. 메인 채팅 입력창 아래에 버튼들이 있는데, 하나를 누르고 예시 중 하나를 고르면 곧바로 채팅으로 들어갑니다. 이건 사용자가 제어한 동작입니다 — 사용자인 제가 이 워크플로를 시작하기로 했고, 미리 작성되고 최적화되었을 프롬프트를 쓰는 셈입니다. 그 버튼 목록을 구현하려면 MCP 서버 안에 여러 프롬프트를 두게 됩니다.

다음으로 더하기(+) 버튼을 누르면 Google Drive에서 추가 버튼이 보입니다. 누르면 채팅에 컨텍스트로 더할 문서들이 나옵니다. 어떤 문서를 목록에 그릴지, 그리고 클릭하면 그 내용을 채팅 컨텍스트에 자동으로 주입하는 것은 전부 애플리케이션 코드입니다. 이 목록을 구현하려면 MCP 서버 안에 리소스를 두게 됩니다.

마지막으로 채팅에 “3의 제곱은 얼마야? JavaScript로 값을 계산해서 보내줘” 같은 메시지를 넣으면, 저는 Claude가 어떤 JavaScript 코드를 실행하기를 분명히 기대합니다 — 이는 도구로 처리될 가능성이 큽니다. 이 경우 도구를 쓰기로 한 결정은 100% 모델이 제어했습니다. JavaScript 도구 실행을 쓰기로 결정한 건 모델입니다. 이런 걸 MCP 서버에 구현하려면, 짐작하셨듯, 도구를 제공하게 됩니다.

정리하면, 세 가지 서버 프리미티브가 있고 각각은 전체 애플리케이션의 서로 다른 부분이 쓰도록 의도되었습니다. 도구는 대체로 모델을 위해, 리소스는 대체로 앱을 위해, 프롬프트는 사용자를 위해 봉사합니다. 다시 말하지만 이는 큰 틀의 가이드라인이며, 무엇을 만들려 하는지에 따라 각 프리미티브를 언제 쓸지 감을 주기 위한 것입니다.

이 장에서 배우는 것What you'll learn

약 4분
1

세 프리미티브의 제어 주체 — 도구=모델, 리소스=앱, 프롬프트=사용자

2

도구는 Claude가 언제 쓸지 결정 (모델 제어)

3

리소스는 앱 코드가 데이터 필요 시 실행 — UI·프롬프트 보강 (앱 제어)

4

프롬프트는 사용자가 버튼·슬래시로 시작 (사용자 제어)

5

언제 뭘? — 능력 추가=도구, 데이터=리소스, 워크플로=프롬프트

6

Claude.ai 예 — 버튼=프롬프트, Drive 추가=리소스, JS 계산=도구

먼저 짚고 갈 용어
모델 제어 (도구)
도구를 언제 실행할지는 Claude가 결정한다. 능력을 더할 때 쓴다.
앱 제어 (리소스)
앱 코드가 데이터가 필요하다고 판단해 실행한다. UI 표시·프롬프트 보강에 쓴다.
사용자 제어 (프롬프트)
사용자가 버튼이나 슬래시 명령으로 시작한다. 미리 정의된 워크플로에 쓴다.

한 가지 질문 — 누가 실행하나?

Who controls each?

세 프리미티브를 다시 볼 때, 각각을 앱의 어느 부분이 실행하는지를 물으면 그 용도가 또렷해집니다. 도구·리소스·프롬프트는 각각 모델·앱·사용자가 제어합니다.

세 프리미티브 · 카드를 눌러 제어 매트릭스를 펼치세요

같은 질문을 세 카드에 던집니다 — 누가 실행하는가 · 무엇에 쓰는가 · Claude.ai의 예. 제어 주체가 다르면 용도도 다릅니다.

핵심

제어 주체가 곧 용도의 힌트입니다. 능력을 더하면 도구, 앱에 데이터를 들이면 리소스, 미리 정의한 워크플로면 프롬프트 — 무엇을 만들려 하는지에 따라 고르세요.

언제 무엇을 쓰나

Which one, when

각 프리미티브를 무엇이 제어하는지 알면, 만들려는 것에 따라 어디를 봐야 할지 자연스럽게 정해집니다.

선택 가이드
  • Claude에 능력을 더하고 싶다 → MCP 서버에 도구를 구현하거나, 클라이언트로 어떤 서버의 도구를 소비한다.
  • UI 표시 등 앱에 데이터를 들이고 싶다리소스를 쓴다(우리 프로젝트의 자동완성 목록·프롬프트 보강처럼).
  • 미리 정의된 워크플로를 제공하고 싶다프롬프트를 쓴다(슬래시 /format처럼).

Claude.ai에서 보는 셋

All three in Claude.ai

이 개념들은 공식 Claude 인터페이스인 Claude.ai에서 그대로 볼 수 있습니다. 같은 화면 안에 세 프리미티브의 예가 모두 있습니다.

화면 속 예시
  • 입력창 아래 버튼을 눌러 예시를 고르면 곧바로 채팅 시작 → 미리 최적화된 프롬프트(사용자 제어).
  • 더하기(+) → Google Drive에서 추가로 문서를 컨텍스트에 주입 → 리소스(앱 제어).
  • “3의 제곱은? JavaScript로 계산해줘” → 모델이 코드 실행을 택함 → 도구(모델 제어).
기억할 한 줄

도구는 모델을, 리소스는 을, 프롬프트는 사용자를 위해 봉사합니다. 큰 틀의 가이드라인이지만, 무엇을 만들지 정할 때 좋은 출발점입니다.

MEMBER SESSION REQUIRED · REGISTRATION IS FREE

여기부터는 등록한 분에게 열립니다.

전 코스는 계속 무료입니다. 등록하면 이 코스의 남은 76개 레슨을 끝까지 읽을 수 있습니다.

등록하고 이어서 읽기

이미 등록하셨다면 그때 쓰신 이메일을 넣어 주세요.