LLM과 실제 애플리케이션의 연결 문제
대규모 언어 모델(LLM)은 폭발적인 성장을 이루었지만, 기존 웹 애플리케이션의 실시간 데이터 및 기능에 직접 접근할 수 없는 근본적인 한계를 지닙니다. 이는 LLM이 실제 세계의 맥락 없이 일반적인 응답만 제공하게 하여, ‘유럽 낭만 여행 예약’과 같은 실제 세계 상호작용 프롬프트의 성공 가능성을 낮춥니다. 기존에는 LLM과 API 엔드포인트 간의 번역 계층을 구축하여 이 문제를 해결했지만, 이는 M*N 통합 문제로 이어져 확장성이 떨어지고 AI 네이티브 솔루션과는 거리가 멀었습니다.
Model Context Protocol (MCP) 소개
Model Context Protocol(MCP)은 LLM에 실시간의 동적이고 최신 맥락을 제공하기 위한 개방형 표준입니다. 2023년 Anthropic에 의해 소개된 후 Google, OpenAI 등 주요 기업들의 지지를 받으며 빠르게 확산되었습니다. MCP는 LLM이 실제 애플리케이션의 기능을 호출하고 데이터를 활용할 수 있도록 돕습니다.
MCP의 핵심 구성 요소는 다음과 같습니다: * MCP 호스트 (MCP Host): 사용자 대면 애플리케이션(예: ChatGPT, Claude AI)으로, LLM과 통신하며 MCP 서버로부터 맥락을 가져와 프롬프트를 보강합니다. * MCP 서버 (MCP Server): LLM에 추가 맥락을 제공하는 애플리케이션으로, HTTP 또는 표준 입출력을 통해 통신합니다. * MCP 프리미티브 (MCP Primitives): 맥락을 구성하는 기본 요소들입니다. * 도구 (Tools): 서버가 수행할 수 있는 실행 가능한 기능(예: 날씨 예측, 여행 목록 조회, 게시물 발행). * 리소스 (Resources): LLM에 필요한 데이터(예: 이미지, 로그, 파일). * 프롬프트 (Prompts): MCP 호스트가 서버로부터 받아 사용자에게 보여주는 표준화된 지침.
Rails 애플리케이션에 MCP 적용 및 시연
발표자는 Ruby on Rails 애플리케이션을 MCP 서버로 전환하는 과정을 시연했습니다.
1. Rails 프로젝트 생성 및 템플릿 적용: rails new 명령 후 공식 Ruby SDK와 추가 라우트, 컨트롤러, 설정을 포함하는 템플릿을 적용했습니다.
2. CRUD 도구 스캐폴딩: rails g scaffold Post title:string body:text 및 rails g scaffold Comment post:references content:text 명령을 통해 게시물과 댓글 모델을 생성하고, 각 CRUD 작업에 해당하는 MCP 도구를 자동으로 스캐폴딩했습니다.
3. MCP Inspector를 통한 확인: MCP Inspector 도구를 사용하여 Rails 서버가 MCP 서버로 올바르게 작동하며, 스캐폴딩된 도구들이 정상적으로 노출되는 것을 확인했습니다.
4. Hotwire 통합: 실시간 업데이트를 위해 Hotwire를 추가하여, LLM을 통해 생성되거나 수정된 게시물과 댓글이 즉시 UI에 반영되도록 했습니다.
5. 프로덕션 배포 및 Claude Desktop 연동: Camal을 사용하여 Rails 애플리케이션을 프로덕션 환경에 배포한 후, Claude Desktop과 연결하여 LLM이 실제 Rails 애플리케이션의 MCP 도구를 사용하여 게시물 생성, 댓글 작성, 게시물 삭제, 댓글 업데이트 등의 작업을 수행하는 과정을 실시간으로 시연했습니다.
6. 커스텀 도구 생성: rails g mcp_tool check_weather_tool location:string 명령으로 사용자 정의 check_weather_tool을 생성하고, 외부 날씨 API와 연동하여 두 도시의 날씨를 비교하는 게시물을 작성하는 복합적인 기능을 구현했습니다.
이 시연을 통해 Rails가 AI 네이티브 애플리케이션을 구축하는 데 얼마나 유연하고 강력한지 입증했습니다.