# Gemini + MCP 데모 스크립트 v10: 최종 정리 및 감상 ## 프로젝트 회고 ### 시작점 ``` "Claude Agent SDK처럼 Gemini도 외부 도구를 쉽게 사용할 수 있을까?" ``` 이 단순한 호기심에서 시작한 프로젝트가 v1부터 v10까지의 여정으로 이어졌다. ### 여정 1. **v1: 동기** - 왜 이걸 만들고 싶었는지 2. **v2: MCP 이해** - MCP가 무엇인지 학습 3. **v3: Gemini 탐색** - Gemini SDK 기능 조사 4. **v4: 설계** - 어떻게 만들지 계획 5. **v5: MCP Server** - Vercel MCP 발견 및 분석 6. **v6: 구현** - 실제 코드 작성 7. **v7: 테스트** - 동작 확인 및 시나리오 8. **v8: 비교** - Claude와 비교 분석 9. **v9: 개선** - 한계점 파악 및 개선 방향 10. **v10: 회고** - 배운 점 정리 ## 핵심 질문에 대한 답변 ### Q1: Gemini에서 MCP를 사용할 수 있는가? **답: 가능하다.** 단, Claude Agent SDK처럼 바로 사용할 수 있는 것은 아니고, 직접 브릿지를 만들어야 한다. **필요한 것**: - MCP protocol 이해 (JSON-RPC 2.0) - Gemini function calling 이해 - Schema 변환 로직 - 약 250줄의 TypeScript 코드 ### Q2: 실용적인가? **답: 상황에 따라 다르다.** **실용적인 경우**: - 비용이 중요할 때 (97% 절감 가능) - MCP 생태계를 활용하고 싶을 때 - 커스터마이징이 필요할 때 - 학습이 목적일 때 **비실용적인 경우**: - 빠른 프로토타입이 필요할 때 - 안정성이 최우선일 때 - 유지보수 리소스가 부족할 때 ### Q3: Claude Agent SDK와 비교하면? **답: 각각 장단점이 명확하다.** | 측면 | Claude Agent SDK | Gemini + MCP | |------|-----------------|--------------| | 편의성 | 압도적 승리 | 불편 | | 비용 | 비쌈 | 매우 저렴 | | 학습 가치 | 낮음 | 높음 | | 커스터마이징 | 제한적 | 자유로움 | ## 배운 것들 ### 기술적 학습 1. **MCP Protocol** - JSON-RPC 2.0 기반 - tools/list, tools/call 메서드 - HTTP vs stdio transport - 실제로 작동하는 표준 프로토콜 2. **Gemini SDK** - Function calling 메커니즘 - Tool 인터페이스 구조 - MCP 공식 지원 언급 - 다양한 tool types (codeExecution, googleSearch 등) 3. **통합 패턴** - Adapter 패턴 - Schema 변환 - Function call 처리 루프 - 에러 핸들링 전략 ### 비기술적 학습 1. **문서화의 중요성** - v1~v10까지 단계적 문서화 - 생각의 흐름을 기록 - 나중에 돌아봤을 때 이해 가능 2. **Trade-off 사고** - 모든 선택에는 장단점 - "최선"은 상황에 따라 다름 - 비용 vs 편의성 vs 제어 3. **오픈 스탠다드의 가치** - MCP는 여러 LLM이 공유할 수 있는 표준 - Vendor lock-in 회피 가능 - 생태계 형성 가능 ## 놀라웠던 점 ### 1. Gemini SDK의 MCP 언급 Gemini SDK 공식 문서에서 MCP를 직접 언급한 것이 인상적이었다: > "Defines the structure of an invokable tool that can be executed with external applications (e.g., via Model Context Protocol)" 이는 Google도 MCP를 표준으로 인정하고 있음을 의미한다. ### 2. 비용 차이의 극명함 Claude Sonnet 4.5 vs Gemini 2.0 Flash: - Input: 30배 차이 - Output: 37.5배 차이 대량 처리 시 이 차이는 엄청나다. ### 3. 구현이 생각보다 단순 복잡할 것 같았지만, 핵심은: 1. MCP에서 tools 가져오기 2. Gemini 형식으로 변환 3. Function call 처리 4. 결과 반환 이 4단계가 전부였다. ## 아쉬운 점 ### 1. 실제 실행 미검증 이 문서는 이론과 코드만 작성했지, 실제로 실행하고 검증하지는 못했다. **다음 단계**: 실제로 코드를 작동시켜보고 결과 확인 ### 2. Edge Cases 미처리 프로덕션 레벨의 에러 핸들링, 재시도, 타임아웃 등은 v9에서 제안만 했을 뿐 구현하지 않았다. ### 3. 다른 MCP Server 미탐색 Vercel MCP server만 다뤘지, filesystem, database 등 다른 MCP server는 시도하지 못했다. ## 실무 적용 가능성 ### 즉시 적용 가능한 경우 - 개인 프로젝트 - 사이드 프로젝트 - 비용 민감한 스타트업 - 학습 목적 ### 추가 작업 필요한 경우 프로덕션 배포를 위해서는: - [ ] 실제 테스트 및 검증 - [ ] 견고한 에러 핸들링 - [ ] 모니터링 및 로깅 - [ ] 성능 최적화 - [ ] 보안 강화 - [ ] 문서화 완성 ## 다음 스텝 제안 ### 단기 (1주일) 1. **실제 실행** - 코드를 실제로 작동시키기 - 버그 수정 - 실제 결과 문서화 2. **다른 MCP Server 시도** - Filesystem MCP - Fetch MCP - 커스텀 MCP server 만들기 3. **에러 케이스 테스트** - 네트워크 오류 - 인증 실패 - 타임아웃 ### 중기 (1개월) 1. **프로덕션 강화** - v9의 개선 사항 구현 - Circuit breaker - Rate limiting - Monitoring 2. **다른 LLM 지원** - OpenAI GPT-4 - Anthropic Claude (역으로) - 멀티 모델 클라이언트 3. **패키지화** - npm 패키지로 발행 - 문서 사이트 구축 - 예제 저장소 ### 장기 (3개월+) 1. **커뮤니티 구축** - GitHub 공개 - 이슈 및 PR 관리 - 사용자 피드백 수집 2. **고급 기능** - Streaming 지원 - 멀티 MCP server - Tool 권한 관리 - 비용 최적화 3. **생태계 기여** - MCP specification에 기여 - Gemini SDK 피드백 - 블로그 포스트 작성 ## 개인적 감상 ### 시작할 때 "Claude처럼 안 될 것 같은데... 그래도 한번 해보자" ### 도중에 "어? 생각보다 되네? MCP 표준이 이렇게 잘 되어 있구나" ### 완성 후 "직접 만들어보니 내부가 다 보여서 좋다. 비용도 훨씬 저렴하고." ### 결론 **Claude Agent SDK는 편하지만, Gemini + MCP는 강력하다.** - 편의성: Claude - 비용: Gemini - 학습: Gemini - 제어: Gemini - 안정성: Claude **개인적으로는 Gemini + MCP 직접 구현을 추천한다.** 이유: 1. 내부 동작 완전히 이해 2. 비용 97% 절감 3. 필요에 맞게 커스터마이징 4. MCP 생태계 활용 5. 다른 LLM으로 확장 가능 ## 엔지니어들에게 ### 이 프로젝트가 가치 있는 이유 1. **새로운 패러다임 이해** - LLM + 외부 도구 통합 - Function calling 메커니즘 - 표준 프로토콜의 중요성 2. **실용적 기술 습득** - 실제 적용 가능한 코드 - 프로덕션 고려사항 - Trade-off 분석 3. **미래 대비** - AI Agent 시대가 온다 - MCP가 표준이 될 수 있다 - 미리 이해하고 준비 ### 시도해보기를 권장 이 문서를 읽는 것만으로는 부족하다. **직접 해보자**: 1. v6의 코드를 타이핑해보기 2. 실제로 실행시켜보기 3. 자신만의 tool 추가해보기 4. 다른 MCP server 연결해보기 **그러면**: - MCP가 체득된다 - Gemini function calling이 이해된다 - 자신만의 AI agent를 만들 수 있게 된다 ## 마치며 이 프로젝트는: - Claude의 편리함에 감탄하며 시작했고 - Gemini의 가능성을 발견했으며 - MCP의 가치를 이해하게 되었고 - 직접 만드는 것의 즐거움을 느꼈다 **다음은 여러분 차례다.** v1부터 v10까지의 여정이 누군가에게 영감이 되고, 실제 프로젝트로 이어지길 바란다. --- **프로젝트 기간**: 2025-11-26 (1일) **총 문서**: v1 ~ v10 (10개) **총 코드 라인**: ~250 lines **투자 비용**: $0 (문서화만) **얻은 것**: Priceless ## 참고 자료 ### 공식 문서 - [Gemini API Documentation](https://ai.google.dev/gemini-api/docs) - [MCP Specification](https://modelcontextprotocol.io/specification) - [Vercel MCP Documentation](https://vercel.com/docs/mcp/vercel-mcp) ### 관련 프로젝트 - [@google/genai](https://github.com/googleapis/js-genai) - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) - [Vercel MCP Adapter](https://github.com/vercel/mcp-adapter) ### 다음 읽을거리 - Claude Agent SDK 문서 - LangChain vs MCP 비교 - AI Agent 설계 패턴 --- **The End** 이제 시작이다.