394 lines
37 KiB
Markdown
394 lines
37 KiB
Markdown

|
|
|
|
[](https://GitHub.com/microsoft/mcp-for-beginners/graphs/contributors)
|
|
[](https://GitHub.com/microsoft/mcp-for-beginners/issues)
|
|
[](https://GitHub.com/microsoft/mcp-for-beginners/pulls)
|
|
[](http://makeapullrequest.com)
|
|
|
|
[](https://GitHub.com/microsoft/mcp-for-beginners/watchers)
|
|
[](https://GitHub.com/microsoft/mcp-for-beginners/fork)
|
|
[](https://GitHub.com/microsoft/mcp-for-beginners/stargazers)
|
|
|
|
|
|
[](https://discord.gg/nTYy5BXMWG)
|
|
|
|
이 리소스를 사용하기 시작하려면 다음 단계를 따르세요:
|
|
1. **리포지토리 포크하기**: 클릭 [](https://GitHub.com/microsoft/mcp-for-beginners/fork)
|
|
2. **리포지토리 클론하기**: `git clone https://github.com/microsoft/mcp-for-beginners.git`
|
|
3. <strong>가입하기</strong> [](https://discord.gg/nTYy5BXMWG)
|
|
|
|
|
|
### 🌐 다국어 지원
|
|
|
|
#### GitHub Actions를 통한 지원 (자동 및 항상 최신 상태 유지)
|
|
|
|
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
|
|
[아랍어](../ar/README.md) | [벵골어](../bn/README.md) | [불가리아어](../bg/README.md) | [버마어(미얀마)](../my/README.md) | [중국어(간체)](../zh-CN/README.md) | [중국어(번체, 홍콩)](../zh-HK/README.md) | [중국어(번체, 마카오)](../zh-MO/README.md) | [중국어(번체, 대만)](../zh-TW/README.md) | [크로아티아어](../hr/README.md) | [체코어](../cs/README.md) | [덴마크어](../da/README.md) | [네덜란드어](../nl/README.md) | [에스토니아어](../et/README.md) | [핀란드어](../fi/README.md) | [프랑스어](../fr/README.md) | [독일어](../de/README.md) | [그리스어](../el/README.md) | [히브리어](../he/README.md) | [힌디어](../hi/README.md) | [헝가리어](../hu/README.md) | [인도네시아어](../id/README.md) | [이탈리아어](../it/README.md) | [일본어](../ja/README.md) | [칸나다어](../kn/README.md) | [크메르어](../km/README.md) | [한국어](./README.md) | [리투아니아어](../lt/README.md) | [말레이어](../ms/README.md) | [말라얄람어](../ml/README.md) | [마라티어](../mr/README.md) | [네팔어](../ne/README.md) | [나이지리아 피진어](../pcm/README.md) | [노르웨이어](../no/README.md) | [페르시아어(파르시)](../fa/README.md) | [폴란드어](../pl/README.md) | [포르투갈어(브라질)](../pt-BR/README.md) | [포르투갈어(포르투갈)](../pt-PT/README.md) | [펀자브어(구르무키)](../pa/README.md) | [루마니아어](../ro/README.md) | [러시아어](../ru/README.md) | [세르비아어(키릴문자)](../sr/README.md) | [슬로바키아어](../sk/README.md) | [슬로베니아어](../sl/README.md) | [스페인어](../es/README.md) | [스와힐리어](../sw/README.md) | [스웨덴어](../sv/README.md) | [타갈로그어(필리핀어)](../tl/README.md) | [타밀어](../ta/README.md) | [텔루구어](../te/README.md) | [태국어](../th/README.md) | [터키어](../tr/README.md) | [우크라이나어](../uk/README.md) | [우르두어](../ur/README.md) | [베트남어](../vi/README.md)
|
|
|
|
> **로컬에서 클론하는 걸 선호하시나요?**
|
|
>
|
|
> 이 리포지토리는 50개 이상의 언어 번역본을 포함하고 있어 다운로드 크기가 상당히 큽니다. 번역본 없이 클론하려면 희박한 체크아웃(sparse checkout)을 사용하세요:
|
|
>
|
|
> **Bash / macOS / Linux:**
|
|
> ```bash
|
|
> git clone --filter=blob:none --sparse https://github.com/microsoft/mcp-for-beginners.git
|
|
> cd mcp-for-beginners
|
|
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
|
|
> ```
|
|
>
|
|
> **CMD (Windows):**
|
|
> ```cmd
|
|
> git clone --filter=blob:none --sparse https://github.com/microsoft/mcp-for-beginners.git
|
|
> cd mcp-for-beginners
|
|
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
|
|
> ```
|
|
>
|
|
> 이렇게 하면 코스를 완료하는 데 필요한 모든 것을 훨씬 빠르게 다운로드할 수 있습니다.
|
|
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
|
|
|
|
# 🚀 초보자를 위한 모델 컨텍스트 프로토콜(MCP) 교육 과정
|
|
|
|
## **C#, Java, JavaScript, Rust, Python, TypeScript의 실습 코드 예제로 MCP 배우기**
|
|
|
|
## 🧠 모델 컨텍스트 프로토콜 교육 과정 개요
|
|
모델 컨텍스트 프로토콜의 여정에 오신 것을 환영합니다! AI 애플리케이션이 다양한 도구와 서비스와 어떻게 소통하는지 궁금했다면, 개발자가 지능형 시스템을 구축하는 방식을 혁신하는 우아한 해결책을 이제 곧 발견하게 될 것입니다.
|
|
|
|
MCP를 AI 애플리케이션을 위한 만능 번역기로 생각해 보세요 - USB 포트가 어떤 장치든 컴퓨터에 연결할 수 있게 하듯, MCP는 AI 모델이 모든 도구나 서비스와 표준화된 방식으로 연결하도록 해줍니다. 첫 챗봇을 만들든 복잡한 AI 워크플로우를 작업하든, MCP를 이해하면 더 강력하고 유연한 애플리케이션을 만들 수 있는 힘을 얻게 됩니다.
|
|
|
|
이 커리큘럼은 여러분의 학습 여정을 위해 인내심과 신중함을 가지고 설계되었습니다. 이미 알고 있는 간단한 개념부터 시작해 좋아하는 프로그래밍 언어로 실습하며 점차 전문성을 키워갈 것입니다. 각 단계는 명확한 설명, 실용적인 예제, 그리고 많은 격려로 구성되어 있습니다.
|
|
|
|
이 여정을 완료할 때쯤이면 자신만의 MCP 서버를 구축하고, 인기 있는 AI 플랫폼과 통합하는 방법을 알게 되며, 이 기술이 AI 개발의 미래를 어떻게 재편하고 있는지 이해할 수 있는 자신감을 갖게 될 것입니다. 이 흥미진진한 모험을 함께 시작해 봅시다!
|
|
|
|
### 공식 문서 및 명세
|
|
|
|
이 커리큘럼은 **MCP 명세 2025-11-25** (최신 안정 버전)에 맞추어져 있습니다. MCP 명세는 날짜 기반 버전 관리(YYYY-MM-DD 형식)를 사용하여 프로토콜 버전 추적을 명확하게 합니다.
|
|
|
|
이 리소스들은 이해도가 깊어질수록 더욱 가치가 있지만, 모든 내용을 즉시 읽어야 한다는 부담을 갖지 마세요. 가장 관심 가는 부분부터 시작하세요!
|
|
- 📘 [MCP 문서](https://modelcontextprotocol.io/) – 단계별 튜토리얼과 사용자 가이드를 찾을 수 있는 대표 리소스입니다. 초보자를 위해 작성되어 자신의 속도에 맞춰 따라 할 수 있는 명확한 예제가 포함되어 있습니다.
|
|
- 📜 [MCP 명세](https://modelcontextprotocol.io/specification/2025-11-25) – 포괄적인 참조 매뉴얼로 생각하세요. 커리큘럼을 진행하면서 특정 세부사항을 찾거나 고급 기능을 탐색할 때 참고하게 될 곳입니다.
|
|
- 📜 [MCP 명세 버전 관리](https://modelcontextprotocol.io/specification/versioning) – 프로토콜 버전 히스토리와 MCP가 날짜 기반 버전 관리를 사용하는 방법이 포함되어 있습니다.
|
|
- 🧑💻 [MCP GitHub 리포지토리](https://github.com/modelcontextprotocol) – 여러 프로그래밍 언어로 된 SDK, 도구, 코드 샘플을 찾을 수 있습니다. 실용적인 예제와 즉시 사용할 수 있는 컴포넌트의 보물창고와 같습니다.
|
|
- 🌐 [MCP 커뮤니티](https://github.com/orgs/modelcontextprotocol/discussions) – MCP에 대해 배우고 경험 많은 개발자들과 함께 토론하고 질문할 수 있는 지원하는 커뮤니티입니다.
|
|
|
|
## 학습 목표
|
|
|
|
이 커리큘럼을 마치면 새롭게 갖춘 능력에 자신감과 흥분을 느낄 것입니다. 여러분이 달성할 내용은 다음과 같습니다:
|
|
|
|
• **MCP 기본 이해**: 모델 컨텍스트 프로토콜이 무엇이고 왜 AI 애플리케이션들이 함께 작동하는 방식을 혁신하는지 비유와 예제를 통해 이해하게 됩니다.
|
|
|
|
• **첫 MCP 서버 구축**: 자신이 선호하는 프로그래밍 언어로 작동하는 MCP 서버를 단계별로 간단한 예제부터 시작해 구축하는 법을 배웁니다.
|
|
|
|
• **AI 모델과 실제 도구 연결**: AI 모델과 실제 서비스 사이의 간극을 연결하는 방법을 배워 애플리케이션에 강력한 새 기능을 부여합니다.
|
|
|
|
• **보안 모범 사례 구현**: MCP 구현을 안전하게 유지하는 방법을 이해하여 애플리케이션과 사용자를 모두 보호합니다.
|
|
|
|
• **자신감 있는 배포**: MCP 프로젝트를 개발 단계에서 실제 운영 환경에 성공적으로 배포하는 실용적인 전략을 익힙니다.
|
|
|
|
• **MCP 커뮤니티 참여**: AI 애플리케이션 개발의 미래를 함께 만들어가는 커뮤니티의 일원이 됩니다.
|
|
|
|
## 필수 배경 지식
|
|
|
|
MCP 세부 내용에 들어가기 전에 몇 가지 기본 개념에 익숙해져야 합니다. 전문가는 아니어도 괜찮으니 걱정하지 마세요—필요한 모든 내용을 차근차근 설명해 드립니다!
|
|
|
|
### 프로토콜 이해하기 (기초)
|
|
|
|
프로토콜은 대화 규칙과 같습니다. 친구에게 전화할 때 양쪽이 인사하고, 차례로 말하고, 끝날 때 작별 인사를 하는 것처럼, 컴퓨터 프로그램도 효과적으로 통신하려면 비슷한 규칙이 필요합니다.
|
|
|
|
MCP는 프로토콜입니다 - AI 모델과 애플리케이션이 도구 및 서비스와 생산적인 "대화"를 나누도록 돕는 합의된 규칙 집합입니다. 인간의 대화 규칙이 소통을 원활하게 하듯, MCP는 AI 애플리케이션 간 통신을 더 신뢰할 수 있고 강력하게 만듭니다.
|
|
|
|
### 클라이언트-서버 관계 (프로그램 간 상호작용 방식)
|
|
|
|
우리는 매일 클라이언트-서버 관계를 사용하고 있습니다! 웹 브라우저(클라이언트)를 이용해 웹사이트를 방문하면 페이지 내용을 보내주는 웹 서버와 연결되는 것이죠. 브라우저는 정보를 요청하는 방법을 알고, 서버는 응답하는 방법을 압니다.
|
|
|
|
MCP에서도 유사한 관계가 있습니다: AI 모델은 정보를 요청하거나 작업을 요청하는 클라이언트 역할을 하고, MCP 서버는 그 기능을 제공합니다. AI가 특정 작업을 수행하도록 요청할 수 있는 도우미(서버)가 있는 것과 같습니다.
|
|
|
|
### 표준화가 중요한 이유 (서로 작동하게 만들기)
|
|
|
|
만약 모든 자동차 제조사가 다른 모양의 주유구를 사용한다면, 차마다 다른 어댑터가 필요할 것입니다! 표준화는 공통된 방법에 동의하여 모든 것이 매끄럽게 작동하도록 만드는 것을 의미합니다.
|
|
|
|
MCP는 AI 애플리케이션을 위한 이러한 표준화를 제공합니다. 모든 AI 모델이 각 도구와 작동하기 위해 맞춤 코드를 작성할 필요 없이, MCP는 이들이 통신하는 보편적 방식을 만듭니다. 즉, 개발자가 도구를 한 번 개발하면 다양한 AI 시스템과 모두 호환될 수 있습니다.
|
|
|
|
## 🧭 학습 경로 개요
|
|
|
|
여러분의 MCP 여정은 점진적으로 자신감과 기술을 쌓을 수 있도록 체계적으로 구성되어 있습니다. 각 단계별로 새로운 개념을 소개하면서 이미 배운 내용을 반복 강화합니다.
|
|
|
|
### 🌱 기초 단계: 기본 개념 이해 (모듈 0-2)
|
|
|
|
모험이 시작되는 곳입니다! 익숙한 비유와 간단한 예제를 사용해 MCP 개념을 소개합니다. MCP가 무엇인지, 왜 존재하는지, 그리고 AI 개발의 큰 그림에서 어떻게 맞물리는지 이해하게 됩니다.
|
|
|
|
• **모듈 0 - MCP 소개**: MCP가 무엇이며 현대 AI 애플리케이션에 왜 중요한지 탐구합니다. MCP가 실제로 어떻게 작동하는지 사례를 보고, 개발자가 직면하는 일반적인 문제를 어떻게 해결하는지 이해합니다.
|
|
|
|
• **모듈 1 - 핵심 개념 설명**: MCP의 필수 구성 요소를 배웁니다. 풍부한 비유와 시각적 예제를 사용하여 이 개념들이 자연스럽고 이해하기 쉽게 느껴지도록 합니다.
|
|
|
|
• **모듈 2 - MCP의 보안**: 보안은 복잡하게 느껴질 수 있지만, MCP가 포함하는 내장 안전 기능과 애플리케이션을 처음부터 보호하는 모범 사례를 알려드립니다.
|
|
|
|
### 🔨 구축 단계: 첫 구현 만들기 (모듈 3)
|
|
이제 진짜 재미가 시작됩니다! 실제 MCP 서버와 클라이언트를 구축하는 실습 경험을 하게 됩니다. 걱정하지 마세요 - 우리는 간단한 것부터 시작해서 단계별로 안내할 것입니다.
|
|
|
|
이 모듈에는 선호하는 프로그래밍 언어로 연습할 수 있는 여러 실습 가이드가 포함되어 있습니다. 최초의 서버를 만들고, 연결할 클라이언트를 구축하며, VS Code 같은 인기 개발 도구와 통합하는 방법도 배울 수 있습니다.
|
|
|
|
각 가이드에는 완전한 코드 예제, 문제 해결 팁, 그리고 특정 설계 선택의 이유에 대한 설명이 포함되어 있습니다. 이 단계가 끝나면 자부심을 가질 수 있는 작동하는 MCP 구현체를 갖게 될 것입니다!
|
|
|
|
### 🚀 성장 단계: 고급 개념 및 실제 적용 (모듈 4-5)
|
|
|
|
기본기를 마스터한 후에는 더 정교한 MCP 기능을 탐구할 준비가 된 것입니다. 실용적인 구현 전략, 디버깅 기법, 멀티모달 AI 통합 같은 고급 주제를 다룹니다.
|
|
|
|
또한 MCP 구현을 프로덕션 용도로 확장하는 방법과 Azure 같은 클라우드 플랫폼과의 통합 방법도 배웁니다. 이 모듈들은 실제 요구를 처리할 수 있는 MCP 솔루션 구축을 준비시켜 줍니다.
|
|
|
|
### 🌟 숙련 단계: 커뮤니티 및 전문화 (모듈 6-11)
|
|
|
|
마지막 단계에서는 MCP 커뮤니티에 참여하고 자신이 가장 관심 있는 분야에 전문화하는 데 집중합니다. 오픈 소스 MCP 프로젝트에 기여하는 법, 고급 인증 패턴 구현, 데이터베이스 통합 솔루션 구축을 배웁니다.
|
|
|
|
모듈 11은 특별히 언급할 가치가 있습니다 - PostgreSQL 통합으로 프로덕션 준비가 된 MCP 서버를 만드는 완전한 13개의 실습 학습 경로입니다. 여러분이 지금까지 배운 모든 것을 한데 모으는 캡스톤 프로젝트와 같습니다!
|
|
|
|
### 📚 전체 커리큘럼 구성
|
|
|
|
| Module | Topic | Description | Link |
|
|
|--------|-------|-------------|------|
|
|
| **Module 0-3: Fundamentals** | | | |
|
|
| 00 | MCP 소개 | 모델 컨텍스트 프로토콜의 개요와 AI 파이프라인에서의 중요성 | [Read more](./00-Introduction/README.md) |
|
|
| 01 | 핵심 개념 설명 | MCP 핵심 개념 심층 탐구 | [Read more](./01-CoreConcepts/README.md) |
|
|
| 02 | MCP 보안 | 보안 위협 및 모범 사례 | [Read more](./02-Security/README.md) |
|
|
| 03 | MCP 시작하기 | 환경 설정, 기본 서버/클라이언트, 통합 | [Read more](./03-GettingStarted/README.md) |
|
|
| **Module 3: 첫 서버 & 클라이언트 구축** | | | |
|
|
| 3.1 | 첫 서버 | 최초의 MCP 서버 생성 | [Guide](./03-GettingStarted/01-first-server/README.md) |
|
|
| 3.2 | 첫 클라이언트 | 기본 MCP 클라이언트 개발 | [Guide](./03-GettingStarted/02-client/README.md) |
|
|
| 3.3 | LLM 클라이언트 | 대형 언어 모델 통합 | [Guide](./03-GettingStarted/03-llm-client/README.md) |
|
|
| 3.4 | VS Code 통합 | VS Code에서 MCP 서버 사용 | [Guide](./03-GettingStarted/04-vscode/README.md) |
|
|
| 3.5 | stdio 서버 | stdio 전송을 사용한 서버 생성 | [Guide](./03-GettingStarted/05-stdio-server/README.md) |
|
|
| 3.6 | HTTP 스트리밍 | MCP에서 HTTP 스트리밍 구현 | [Guide](./03-GettingStarted/06-http-streaming/README.md) |
|
|
| 3.7 | Microsoft Foundry Toolkit | MCP와 Microsoft Foundry Toolkit 사용 | [Guide](./03-GettingStarted/07-aitk/README.md) |
|
|
| 3.8 | 테스트 | MCP 서버 구현 테스트 | [Guide](./03-GettingStarted/08-testing/README.md) |
|
|
| 3.9 | 배포 | MCP 서버를 프로덕션에 배포 | [Guide](./03-GettingStarted/09-deployment/README.md) |
|
|
| 3.10 | 고급 서버 사용법 | 고급 기능 활용과 개선된 아키텍처를 위한 고급 서버 사용 | [Guide](./03-GettingStarted/10-advanced/README.md) |
|
|
| 3.11 | 간단한 인증 | 처음부터 인증과 RBAC 설명하는 장 | [Guide](./03-GettingStarted/11-simple-auth/README.md) |
|
|
| 3.12 | MCP 호스트 | Claude Desktop, Cursor, Cline 및 기타 MCP 호스트 구성 | [Guide](./03-GettingStarted/12-mcp-hosts/README.md) |
|
|
| 3.13 | MCP Inspector | Inspector 도구로 MCP 서버 디버깅 및 테스트 | [Guide](./03-GettingStarted/13-mcp-inspector/README.md) |
|
|
| 3.14 | 샘플링 | 샘플링을 이용한 클라이언트 협업 | [Guide](./03-GettingStarted/14-sampling/README.md) |
|
|
| 3.15 | MCP 앱 | MCP 앱 개발 | [Guide](./03-GettingStarted/15-mcp-apps/README.md) |
|
|
| **Module 4-5: 실용적 & 고급** | | | |
|
|
| 04 | 실용적 구현 | SDK, 디버깅, 테스트, 재사용 가능한 프롬프트 템플릿 | [Read more](./04-PracticalImplementation/README.md) |
|
|
| 4.1 | 페이징 | 커서 기반 페이징으로 대용량 결과 처리 | [Guide](./04-PracticalImplementation/pagination/README.md) |
|
|
| 05 | MCP 고급 주제 | 멀티모달 AI, 확장, 엔터프라이즈 사용 | [Read more](./05-AdvancedTopics/README.md) |
|
|
| 5.1 | Azure 통합 | MCP와 Azure 통합 | [Guide](./05-AdvancedTopics/mcp-integration/README.md) |
|
|
| 5.2 | 멀티모달리티 | 여러 모달리티 작업 | [Guide](./05-AdvancedTopics/mcp-multi-modality/README.md) |
|
|
| 5.3 | OAuth2 데모 | OAuth2 인증 구현 | [Guide](./05-AdvancedTopics/mcp-oauth2-demo/README.md) |
|
|
| 5.4 | 루트 컨텍스트 | 루트 컨텍스트 이해 및 구현 | [Guide](./05-AdvancedTopics/mcp-root-contexts/README.md) |
|
|
| 5.5 | 라우팅 | MCP 라우팅 전략 | [Guide](./05-AdvancedTopics/mcp-routing/README.md) |
|
|
| 5.6 | 샘플링 | MCP 샘플링 기법 | [Guide](./05-AdvancedTopics/mcp-sampling/README.md) |
|
|
| 5.7 | 확장 | MCP 구현 확장 | [Guide](./05-AdvancedTopics/mcp-scaling/README.md) |
|
|
| 5.8 | 보안 | 고급 보안 고려사항 | [Guide](./05-AdvancedTopics/mcp-security/README.md) |
|
|
| 5.9 | 웹 검색 | 웹 검색 기능 구현 | [Guide](./05-AdvancedTopics/web-search-mcp/README.md) |
|
|
| 5.10 | 실시간 스트리밍 | 실시간 스트리밍 기능 구축 | [Guide](./05-AdvancedTopics/mcp-realtimestreaming/README.md) |
|
|
| 5.11 | 실시간 검색 | 실시간 검색 구현 | [Guide](./05-AdvancedTopics/mcp-realtimesearch/README.md) |
|
|
| 5.12 | Entra ID 인증 | Microsoft Entra ID 인증 | [Guide](./05-AdvancedTopics/mcp-security-entra/README.md) |
|
|
| 5.13 | Foundry 통합 | Microsoft Foundry와 통합 | [Guide](./05-AdvancedTopics/mcp-foundry-agent-integration/README.md) |
|
|
| 5.14 | 컨텍스트 엔지니어링 | 효과적인 컨텍스트 엔지니어링 기법 | [Guide](./05-AdvancedTopics/mcp-contextengineering/README.md) |
|
|
| 5.15 | MCP 맞춤 전송 | 맞춤형 전송 구현 | [Guide](./05-AdvancedTopics/mcp-transport/README.md) |
|
|
| 5.16 | 프로토콜 기능 | 진행 알림, 취소, 리소스 템플릿 | [Guide](./05-AdvancedTopics/mcp-protocol-features/README.md) |
|
|
| 5.17 | 대립하는 멀티 에이전트 추론 | 두 에이전트가 반대 입장으로 공유 MCP 도구를 사용해 논쟁, 판사 에이전트가 평가 | [Guide](./05-AdvancedTopics/mcp-adversarial-agents/README.md) |
|
|
| **Module 6-10: 커뮤니티 & 모범 사례** | | | |
|
|
| 06 | 커뮤니티 기여 | MCP 생태계에 기여하는 방법 | [Guide](./06-CommunityContributions/README.md) |
|
|
| 07 | 초기 도입 교훈 | 실제 구현 사례 | [Guide](./07-LessonsfromEarlyAdoption/README.md) |
|
|
| 08 | MCP 모범 사례 | 성능, 내결함성, 탄력성 | [Guide](./08-BestPractices/README.md) |
|
|
| 09 | MCP 사례 연구 | 실용적 구현 예제 | [Guide](./09-CaseStudy/README.md) |
|
|
| 10 | 실습 워크숍 | Microsoft Foundry Toolkit으로 MCP 서버 구축 | [Lab](./10-StreamliningAIWorkflowsBuildingAnMCPServerWithAIToolkit/README.md) |
|
|
| **Module 11: MCP 서버 실습** | | | |
|
|
| 11 | MCP 서버 데이터베이스 통합 | PostgreSQL 통합을 위한 13개 실습 경로의 종합 학습 | [Labs](./11-MCPServerHandsOnLabs/README.md) |
|
|
| 11.1 | 소개 | 데이터베이스 통합 MCP 개요 및 리테일 분석 사용 사례 | [Lab 00](./11-MCPServerHandsOnLabs/00-Introduction/README.md) |
|
|
| 11.2 | 핵심 아키텍처 | MCP 서버 아키텍처, 데이터베이스 레이어, 보안 패턴 이해 | [Lab 01](./11-MCPServerHandsOnLabs/01-Architecture/README.md) |
|
|
| 11.3 | 보안 및 멀티 테넌시 | 행 수준 보안, 인증, 다중 테넌트 데이터 접근 | [Lab 02](./11-MCPServerHandsOnLabs/02-Security/README.md) |
|
|
| 11.4 | 환경 설정 | 개발 환경 구성, Docker, Azure 리소스 | [Lab 03](./11-MCPServerHandsOnLabs/03-Setup/README.md) |
|
|
| 11.5 | 데이터베이스 설계 | PostgreSQL 설정, 리테일 스키마 설계, 샘플 데이터 | [Lab 04](./11-MCPServerHandsOnLabs/04-Database/README.md) |
|
|
| 11.6 | MCP 서버 구현 | 데이터베이스 통합 FastMCP 서버 구축 | [Lab 05](./11-MCPServerHandsOnLabs/05-MCP-Server/README.md) |
|
|
| 11.7 | 도구 개발 | 데이터베이스 쿼리 도구 및 스키마 인트로스펙션 생성 | [Lab 06](./11-MCPServerHandsOnLabs/06-Tools/README.md) |
|
|
| 11.8 | 시맨틱 검색 | Azure OpenAI 및 pgvector로 벡터 임베딩 구현 | [Lab 07](./11-MCPServerHandsOnLabs/07-Semantic-Search/README.md) |
|
|
| 11.9 | 테스트 및 디버깅 | 테스트 전략, 디버깅 도구, 검증 방법 | [Lab 08](./11-MCPServerHandsOnLabs/08-Testing/README.md) |
|
|
| 11.10 | VS Code 통합 | VS Code MCP 통합 및 AI 챗 사용법 구성 | [Lab 09](./11-MCPServerHandsOnLabs/09-VS-Code/README.md) |
|
|
| 11.11 | 배포 전략 | Docker 배포, Azure Container Apps, 확장 고려사항 | [Lab 10](./11-MCPServerHandsOnLabs/10-Deployment/README.md) |
|
|
| 11.12 | 모니터링 | Application Insights, 로깅, 성능 모니터링 | [Lab 11](./11-MCPServerHandsOnLabs/11-Monitoring/README.md) |
|
|
| 11.13 | 모범 사례 | 성능 최적화, 보안 강화, 프로덕션 팁 | [Lab 12](./11-MCPServerHandsOnLabs/12-Best-Practices/README.md) |
|
|
| **Module 12: MCP 툴링** | | | |
|
|
| 12.1 | 툴링 | Copilot 앱에서의 MCP 사용 | [ Guide ](./12-tooling/README.md) |
|
|
|
|
### 💻 샘플 코드 프로젝트
|
|
|
|
MCP를 배우는 가장 흥미로운 부분 중 하나는 코드 실력이 점진적으로 향상되는 것을 보는 것입니다. 저희는 코드 예제를 간단하게 시작해 이해가 깊어짐에 따라 점점 더 정교해지도록 설계했습니다. 개념을 소개하는 방법은 이해하기 쉽지만 실제 MCP 원리를 보여주는 코드로, 이 코드가 무엇을 하는지 뿐 아니라 왜 이렇게 구조화되었는지, 큰 MCP 애플리케이션에 어떻게 맞는지 이해할 수 있습니다.
|
|
|
|
#### 기본 MCP 계산기 샘플
|
|
|
|
| Language | Description | Link |
|
|
|----------|-------------|------|
|
|
| C# | MCP 서버 예제 | [View Code](./03-GettingStarted/samples/csharp/README.md) |
|
|
| Java | MCP 계산기 | [View Code](./03-GettingStarted/samples/java/calculator/README.md) |
|
|
| JavaScript | MCP 데모 | [View Code](./03-GettingStarted/samples/javascript/README.md) |
|
|
| Python | MCP 서버 | [View Code](../../03-GettingStarted/samples/python/mcp_calculator_server.py) |
|
|
| TypeScript | MCP 예제 | [View Code](./03-GettingStarted/samples/typescript/README.md) |
|
|
| Rust | MCP 예제 | [View Code](./03-GettingStarted/samples/rust/README.md) |
|
|
|
|
#### 고급 MCP 구현
|
|
|
|
| Language | Description | Link |
|
|
|----------|-------------|------|
|
|
| C# | 고급 샘플 | [View Code](./04-PracticalImplementation/samples/csharp/README.md) |
|
|
| Java with Spring | 컨테이너 앱 예제 | [코드 보기](./04-PracticalImplementation/samples/java/containerapp/README.md) |
|
|
| JavaScript | 고급 샘플 | [코드 보기](./04-PracticalImplementation/samples/javascript/README.md) |
|
|
| Python | 복잡한 구현 | [코드 보기](./04-PracticalImplementation/samples/python/README.md) |
|
|
| TypeScript | 컨테이너 샘플 | [코드 보기](./04-PracticalImplementation/samples/typescript/README.md) |
|
|
|
|
|
|
## 🎯 MCP 학습을 위한 전제 조건
|
|
|
|
이 커리큘럼을 최대한 활용하려면 다음 조건을 갖추는 것이 좋습니다:
|
|
|
|
- C#, Java, JavaScript, Python 또는 TypeScript 중 최소 한 가지 프로그래밍 언어에 대한 기본 지식
|
|
- 클라이언트-서버 모델 및 API에 대한 이해
|
|
- REST 및 HTTP 개념에 대한 익숙함
|
|
- (선택 사항) AI/ML 개념에 대한 배경 지식
|
|
|
|
- 지원을 위한 커뮤니티 토론 참여
|
|
|
|
## 📚 학습 가이드 및 자료
|
|
|
|
이 저장소에는 효과적으로 탐색하고 학습할 수 있도록 여러 자료가 포함되어 있습니다:
|
|
|
|
### 학습 가이드
|
|
|
|
포괄적인 [학습 가이드](./study_guide.md)를 통해 이 저장소를 효과적으로 탐색할 수 있습니다. 이 시각적 커리큘럼 맵은 모든 주제가 어떻게 연결되는지 보여주고 샘플 프로젝트를 효율적으로 사용하는 방법을 안내합니다. 전체적인 그림을 보는 것을 선호하는 시각 학습자에게 특히 유용합니다.
|
|
|
|
가이드에는 다음이 포함됩니다:
|
|
- 모든 주제를 보여주는 시각적 커리큘럼 맵
|
|
- 각 저장소 섹션의 상세 분류
|
|
- 샘플 프로젝트 활용 가이드
|
|
- 다양한 수준별 추천 학습 경로
|
|
- 학습 여정을 보완하는 추가 자료
|
|
|
|
### 변경 로그
|
|
|
|
커리큘럼 자료의 주요 업데이트를 추적하는 상세한 [변경 로그](./changelog.md)를 유지합니다. 최신 개선 사항과 추가 내용도 확인할 수 있습니다.
|
|
- 신규 콘텐츠 추가
|
|
- 구조 변경
|
|
- 기능 개선
|
|
- 문서 업데이트
|
|
|
|
## 🛠️ 이 커리큘럼을 효과적으로 활용하는 방법
|
|
|
|
이 가이드의 각 수업에는 다음이 포함됩니다:
|
|
|
|
1. MCP 개념에 대한 명확한 설명
|
|
2. 여러 언어로 된 실시간 코드 예제
|
|
3. 실제 MCP 애플리케이션 구축 연습 문제
|
|
4. 고급 학습자를 위한 추가 자료
|
|
|
|
### C#으로 배우는 MCP - 튜토리얼 시리즈
|
|
AI 모델과 클라이언트 애플리케이션 간 상호작용을 표준화하도록 설계된 혁신적인 프레임워크인 Model Context Protocol(MCP)을 학습해봅시다. 초보자도 쉽게 따라올 수 있는 이 세션에서는 MCP를 소개하고 첫 MCP 서버를 만드는 과정을 안내합니다.
|
|
#### C#: [https://aka.ms/letslearnmcp-csharp](https://aka.ms/letslearnmcp-csharp)
|
|
#### Java: [https://aka.ms/letslearnmcp-java](https://aka.ms/letslearnmcp-java)
|
|
#### JavaScript: [https://aka.ms/letslearnmcp-javascript](https://aka.ms/letslearnmcp-javascript)
|
|
#### Python: [https://aka.ms/letslearnmcp-python](https://aka.ms/letslearnmcp-python)
|
|
|
|
## 🎓 MCP 여정의 시작
|
|
|
|
축하합니다! 프로그래밍 능력을 확장하고 AI 개발의 최첨단에 연결할 흥미로운 여정의 첫걸음을 내디뎠습니다.
|
|
|
|
### 지금까지 달성한 것
|
|
|
|
소개를 읽음으로써 이미 MCP 지식의 기초를 쌓기 시작했습니다. MCP가 무엇이고 왜 중요한지, 그리고 이 커리큘럼이 학습 여정을 어떻게 지원하는지 이해했습니다. 이는 중요한 성과이며 이 중요한 기술 분야에서 전문성을 쌓기 위한 출발점입니다.
|
|
|
|
### 앞으로의 모험
|
|
|
|
모듈을 진행하며 모든 전문가도 한때는 초보자였다는 점을 기억하세요. 지금 복잡하게 느껴지는 개념도 연습하고 적용하다 보면 자연스럽게 익히게 될 것입니다. 작은 한 걸음씩이 강력한 역량으로 쌓여 개발 경력 내내 큰 도움이 될 것입니다.
|
|
|
|
### 지원 네트워크
|
|
|
|
MCP에 열정을 가진 학습자와 전문가들의 커뮤니티에 합류하셨습니다. 코딩 문제로 어려움을 겪거나 돌파구를 공유하고 싶을 때, 커뮤니티가 여러분의 여정을 지원합니다.
|
|
|
|
AI 애플리케이션 빌드에 관한 질문이나 어려움이 있으면 MCP 관련 동료 학습자 및 경험 많은 개발자들과 토론에 참여하세요. 질문이 환영받고 지식이 자유롭게 공유되는 지원 커뮤니티입니다.
|
|
|
|
[](https://discord.gg/nTYy5BXMWG)
|
|
|
|
제품 피드백이나 빌드 중 오류가 있으면 다음 포럼을 방문하세요:
|
|
|
|
[](https://aka.ms/foundry/forum)
|
|
|
|
### 시작할 준비가 되셨나요?
|
|
|
|
지금 바로 MCP 모험을 시작하세요! 0번 모듈부터 시작해 첫 MCP 실습을 경험하거나 샘플 프로젝트를 둘러보며 무엇을 만들지 확인할 수 있습니다. 모든 전문가가 지금 여러분의 자리에서 시작했다는 점과 인내와 연습으로 놀라운 성과를 이룰 수 있다는 것을 기억하세요.
|
|
|
|
Model Context Protocol 개발 세계에 오신 것을 환영합니다. 함께 멋진 것을 만들어 봅시다!
|
|
|
|
## 🤝 학습 커뮤니티에 기여하기
|
|
|
|
이 커리큘럼은 여러분과 같은 학습자의 기여로 더 강해집니다! 오타 수정, 더 명확한 설명 제안, 새 예제 추가 등 어떤 기여든지 초보자들이 성공할 수 있도록 돕습니다.
|
|
|
|
Microsoft Valued Professional [Shivam Goyal](https://www.linkedin.com/in/shivam2003/)에게 코드 샘플 기여에 감사드립니다.
|
|
|
|
기여 절차는 친근하고 지원적입니다. 대부분의 기여는 기여권 계약서(CLA)를 요구하지만 자동화 도구가 과정을 원활히 안내합니다.
|
|
|
|
## 📜 오픈 소스 학습
|
|
|
|
이 커리큘럼 전체는 MIT [LICENSE](../../LICENSE) 하에 제공되어 자유롭게 사용, 수정, 공유할 수 있습니다. 이는 전 세계 개발자들이 MCP 지식을 쉽게 접할 수 있도록 하는 우리의 사명을 지원합니다.
|
|
## 🤝 기여 지침
|
|
|
|
이 프로젝트는 기여 및 제안을 환영합니다. 대부분의 기여는 기여자가 자신의 기여물에 대한 권리를 가지고 있으며 실제로 이를 프로젝트에 사용할 권리를 부여한다는 내용을 담은 기여자 권한 계약서(CLA)에 동의하는 것을 요구합니다. 자세한 내용은 <https://cla.opensource.microsoft.com>을 참고하세요.
|
|
|
|
풀 리퀘스트를 제출할 때, CLA 봇이 자동으로 CLA 제출 필요 여부를 판단하고 PR에 적절한 표시(상태 검사, 댓글 등)를 합니다. 봇의 지시에 따라 진행하면 됩니다. 모든 저장소에서 단 한 번만 진행하면 됩니다.
|
|
|
|
이 프로젝트는 [Microsoft 오픈 소스 행동 강령](https://opensource.microsoft.com/codeofconduct/)을 채택하고 있습니다.
|
|
자세한 정보는 [행동 강령 FAQ](https://opensource.microsoft.com/codeofconduct/faq/)를 참고하거나 추가 질문이 있으면 [opencode@microsoft.com](mailto:opencode@microsoft.com) 으로 연락하세요.
|
|
|
|
---
|
|
|
|
*MCP 여정을 시작할 준비가 되셨나요? [Module 00 - MCP 소개](./00-Introduction/README.md)부터 시작하여 Model Context Protocol 개발의 세계에 첫 발을 내딛으세요!*
|
|
|
|
|
|
|
|
## 🎒 기타 강좌
|
|
저희 팀에서 제공하는 다른 강좌들도 있습니다! 확인해 보세요:
|
|
|
|
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
|
|
### LangChain
|
|
[](https://aka.ms/langchain4j-for-beginners)
|
|
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
|
|
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
|
|
---
|
|
|
|
### Azure / Edge / MCP / Agents
|
|
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
|
|
|
|
---
|
|
|
|
### 생성 AI 시리즈
|
|
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
|
|
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
|
|
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
|
|
|
|
---
|
|
|
|
### 핵심 학습
|
|
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
|
|
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
|
|
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
|
|
|
|
---
|
|
|
|
### 코파일럿 시리즈
|
|
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
|
|
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
|
|
[](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
|
|
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**면책 조항**:
|
|
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역은 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서의 원어본이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문가의 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |