[5편] 온톨로지 위에 MCP를 심으면 AI가 달라진다
"쿠팡 매출 알려줘."

"쿠팡 매출 알려줘."
이 질문을 ChatGPT에 CSV를 던져서 해봤다면, 결과가 얼마나 불안정한지 아실 겁니다. 어떤 때는 Wing 매출만, 어떤 때는 로켓그로스까지 합산하고, 또 어떤 때는 이지어드민 OMS 기준으로 답합니다. 같은 질문에 매번 다른 숫자가 나옵니다.
RAG(검색 증강 생성)를 붙여서 문서를 넣어봐도 마찬가지입니다. "경영지원 대시보드의 공헌이익률과 제품별 성과의 실 공헌이익률은 분모가 다르다"는 맥락을 문서에 넣어놔도, AI가 질문 시점에 이걸 꺼내 쓸지는 운에 달려 있습니다.
이 시리즈에서 다뤄온 문제들 — 상품명 충돌(2편), 재고/출고 괴리(3편), 광고비 배분(4편) — 을 AI가 제대로 다루려면, 데이터 위에 구조화된 관계 정의(온톨로지)가 있어야 하고, AI가 그 관계를 도구로 접근할 수 있어야 합니다.
그 도구가 MCP(Model Context Protocol)입니다.
RAG만으로 안 되는 이유
문서 기반 접근의 한계
커머스 데이터의 맥락을 문서로 정리해서 RAG에 넣는다고 합시다.
문서를 아무리 잘 써도 세 가지 문제가 남습니다.
-
검색 실패: "앤모드프로 수익성"이라고 물었을 때, RAG가 "문서 1"을 가져올지 보장이 없습니다. 의미적으로 관련 있지만 키워드가 다릅니다.
-
맥락 조합 불가: 앤모드프로의 공헌이익을 구하려면 문서 1(순매출 계산) + 4편의 광고비 배분 로직 + 2편의 상품 매핑이 동시에 필요합니다. RAG는 보통 Top-K 문서만 가져오는데, 이 세 조각이 모두 Top-K에 들어올 확률이 낮습니다.
-
실시간 데이터 접근 불가: 문서에는 "순매출 = 이러이러하다"는 정의만 있고, 실제 숫자는 없습니다. "이번 달 앤모드프로 순매출"을 답하려면 DB를 조회해야 합니다.
필요한 것: 정의 + 데이터 + 실행
| 필요한 것 | RAG | MCP + 온톨로지 |
|---|---|---|
| 측정값 정의 | 문서로 제공 (검색 의존) | 메타데이터로 구조화 |
| 관계 정의 | 문서로 제공 (검색 의존) | 온톨로지로 명시 |
| 실시간 데이터 | 불가 | DB 직접 조회 |
| 복합 질문 | 여러 문서 조합 필요 (불안정) | 관계 그래프 탐색 (결정적) |
MCP가 하는 일
MCP는 AI가 외부 도구를 호출할 수 있게 해주는 프로토콜입니다. 우리는 4개의 MCP 서버를 운영합니다.
| MCP 서버 | 역할 | 주요 도구 |
|---|---|---|
| MySQL MCP | 사용자·연결·소스 메타데이터 조회 | query_user, query_connection |
| Trino MCP | 실제 주문/광고/재고 데이터 조회 (READ-ONLY) | trino_query |
| Airflow MCP | ETL 파이프라인 상태 확인 | dag_runs, task_log |
| Sheets MCP | Google Sheets 데이터 조회 | sheets_get_data |
핵심은 AI가 질문을 받으면 직접 DB를 조회한다는 것입니다. CSV를 업로드하는 게 아니라, 질문에 맞는 쿼리를 생성하고 실행합니다.
온톨로지가 MCP를 똑똑하게 만드는 과정
예시: "쿠팡 매출 알려줘"
온톨로지 없이 MCP만 있을 때:
AI가 Trino에 쿼리를 날리지만, 어떤 테이블을 조회할지 모릅니다.
5가지 답이 나올 수 있고, 매번 다릅니다.
온톨로지 + MCP일 때:
온톨로지에 "쿠팡 매출"의 정의가 있습니다.
AI가 이 정의를 참조해서 정확한 쿼리를 생성합니다.
예시: "라플라스프로 공헌이익이 떨어진 이유 분석해줘"
이 질문 하나에 시리즈 전체가 동원됩니다.
-
상품 매핑 (2편): "라플라스프로"에 연결된 채널별 옵션명 71개를 조회
-
측정값 선택 (2편): 공헌이익 = 결제금액 - 원가 - 광고비 - 수수료 - 배송비 - 판매자부담배송비
-
광고비 확인 (4편): 4단계 매칭으로 배분된 광고비를 소스 B에서 조회
-
채널별 비교 (3편): 카페24 vs 쿠팡 vs 스마트스토어별 공헌이익 추이
-
원인 추론: 광고비 증가? 원가 상승? 환불률 증가? 특정 채널 문제?
온톨로지가 이 모든 관계를 정의하고 있기 때문에, AI는 한 번의 질문에 5단계를 자동으로 실행합니다.
"클로드용 데이터" 대시보드가 존재하는 이유
실제로 우리 고객사 중에는 AI에게 줄 데이터를 별도의 대시보드로 세팅하는 경우가 있습니다.
이 대시보드는 사람이 보는 용도가 아닙니다. AI가 질문에 답하기 위해 미리 결합된 데이터셋을 제공하는 것입니다.
왜 이게 필요한가?
-
경영지원 대시보드는 순매출 기준 → AI가 "매출"이라고 오해할 수 있음
-
제품별 성과는 결제금액 기준 → 또 다른 "매출"
-
클로드용 데이터는 가공 전 원본에 가장 가까운 형태 → AI가 필요에 따라 직접 집계
CS 태그 2단계가 AI 질문 해석을 바꾼다
CS 데이터도 온톨로지의 효과가 극명합니다.
태그가 평면적이면:
태그가 2단계 트리면:
태그의 계층 구조(온톨로지)가 있으면 AI가 집계 → 비교 → 원인 추론까지 한 번에 할 수 있습니다.
실전 체크리스트: AX팀의 MCP 도입 순서
-
READ-ONLY부터 시작하라 — AI가 데이터를 조회만 하고, 수정은 못 하게. 우리도 Trino MCP는 SELECT/SHOW/DESCRIBE만 허용
-
메타데이터 MCP를 먼저 만들어라 — 테이블 목록, 컬럼 의미, 관계 정의를 AI가 조회할 수 있게
-
측정값 사전을 구축하라 — "순매출", "결제금액", "공헌이익"의 정확한 수식과 맥락을 구조화
-
기준 소스 정책을 MCP에 심어라 — "쿠팡 매출 = Wing+RG+공급허브 합산"을 코드 레벨에서 정의
-
사람이 먼저 검증하라 — AI의 쿼리 결과를 대시보드 숫자와 대조. 불일치가 있으면 온톨로지를 보강
마무리: 온톨로지 → MCP → AI의 순서
이 시리즈에서 다룬 흐름을 정리하면:
CSV를 던지는 것은 AI에게 원재료를 주는 것이고, RAG를 붙이는 것은 레시피 책을 옆에 놓는 것입니다. 온톨로지 + MCP는 주방을 세팅하는 것입니다. 재료가 어디 있고, 도구가 어디 있고, 이 재료와 저 재료가 어떤 관계인지를 AI가 알고 있는 상태에서 요리하게 하는 것입니다.
커머스 AX팀이라면, AI를 붙이기 전에 온톨로지부터 세팅하세요. 그게 가장 빠른 길입니다.
커머스 데이터를 AI가 이해하게 만들기 — 시리즈 5편 (완결)