기존 rails-pg-extras
젬은 PostgreSQL 성능 진단을 위한 약 40가지 메서드를 제공하며, diagnose
메서드를 통해 데이터베이스 상태에 대한 종합적인 보고서를 생성합니다. 그러나 동적인 개발 환경과 대규모 트래픽을 처리하는 Rails 프로젝트에서는 매주 새로운 데이터베이스 수준의 비효율성이 발생할 수 있으며, pg-extras
API의 방대한 메타데이터를 수동으로 해석하는 것은 매우 번거로운 일입니다. 이러한 문제를 해결하기 위해 rails-pg-extras-mcp
젬이 개발되었습니다. 이 젬은 rails-pg-extras
위에 구축된 간단한 래퍼로, LLM이 소화할 수 있는 형식으로 API를 노출합니다. 이를 통해 LLM을 선택한 AI 모델에 연결하여 데이터베이스 계층의 비효율성을 찾는 반복적인 작업을 자동화할 수 있습니다.
예시로 제시된 Slack 봇 데모는 n8n
플랫폼을 통해 구현되었으며, LLM이 원시 데이터를 유용한 정보로 추출하고 재구성하여 인간의 분석을 크게 단순화하는 강력한 능력을 보여줍니다. 이는 팀 협업 환경에서 데이터베이스 문제에 대한 논의를 촉진하고, LLM이 사전 처리된 메타데이터를 제공하여 상황 인식을 높이는 데 기여합니다. 이 인터페이스는 Slack 봇 외에도 이메일 보고서, Cursor IDE 채팅 등 다양한 형태로 구성될 수 있습니다.
생산 환경에서 LLM을 사용할 때의 법적 및 보안 문제는 매우 중요하게 다루어집니다. rails-pg-extras-mcp
는 비즈니스 로직 관련 테이블에 대한 LLM 접근을 차단하고, 쿼리 인자 값(예: $1
, $2
)을 노출하지 않음으로써 메타데이터만 사용하도록 설계되었습니다. 또한, 메타데이터 테이블에만 읽기 권한을 가진 전용 데이터베이스 사용자를 설정하여 보안을 강화할 수 있습니다. 선택적으로 PG_EXTRAS_MCP_EXPLAIN_ENABLED
및 PG_EXTRAS_MCP_EXPLAIN_ANALYZE_ENABLED
플래그를 활성화하면 LLM이 SQL 쿼리에 대해 EXPLAIN
및 EXPLAIN ANALYZE
를 실행할 수 있지만, 이는 민감한 데이터 노출 위험을 증가시키므로 주의가 필요합니다.
비용 측면에서는 OpenAI의 GPT-4o 모델이 가장 효율적인 것으로 나타났으며, 테스트 기간 동안 약 1.56달러의 API 요금이 발생했습니다. Anthropic의 Claude 모델은 더 비싼 경향이 있으며, 사용 사례에 따라 비용 효율적인 모델 선택이 중요함을 시사합니다.