MCP?
MCP는 한말로 모델이 사용할 context를 외부 시스템이 환경적으로 관리하고 제공하는 표준 인터페이스 (Model Context Protocol) 입니다.
- 기존 LLM은 prompt에 모든 정보를 계속 넣어줘야 했습니다.
- MCP는 이것을 환경적으로 분리
- 어느 정보를 기억할지
- 어느 정보를 주입할지
- 어느 때 업데이트할지 를 체계적으로 관리합니다.
즉, 모델은 context에 대해 더 고민하지 않고, MCP가 context의 lifecycle을 대신 관리합니다.
MCP의 주요 구성요소
MCP는 아래 3가지 해습 컨포리트로 이루어집니다.
| 구성 요소 | 역할 |
| Context Store (저장소) | 장기 context를 저장하는 DB 같은 역할. |
| Node (삽입 노드/삽입기) | 새 context를 store에 어떻게 저장할지 결정. |
| Retriever (검색기) | 현재 모델이 필요로 하는 context를 찾아서 반환. |
Context Store
- 보통 벡터DB, NoSQL DB, 혹은 전용 MCP store를 사용.
- 대화, 문서, 사용자 정보 등 장기 context가 사적.
- 다른 DB와 다른 점
- 메타데이터 관리
- 타임스템프 관리
- 중요동 관리
예시
{
"userId": "12345",
"timestamp": "2025-06-12T12:00:00Z",
"topic": "여행계획",
"content": "이번 여름에 도쿄로 여행 가려고 해."
}
Node (Insert Node)
- 새 context를 store에 삽입하는 과정 담당.
- 예를 들어, 사용자가 새로운 사실을 말했을 때:
- "내 강아지 이름은 보리야"
- 이 정보를 store에 어떤 포맷으로 넣을지, 어떤 weight를 줄지 결정.
- 보통 모델이나 heuristic rule이 같이 작동.
Retriever (Retrieval Node)
- 모델이 inference할 때, store에서 필요한 context를 검색
- 일반적으로 embedding 검색 (벡터 기반 유사도 검색)을 수행
- 때로는 rule-based filter나 metadata query도 결합
예
- 유저가 "보리가 사료를 안 먹어" → Retriever는 과거 "내 강아지 이름은 보리야"를 검색해서 모델에게 제공
MCP 구조 다이어그램
사용자 입력 → Insert Node → Context Store → Retriever → LLM Prompt → 응답
- 사용자의 입력이 들어온다.
- Insert Node가 이것을 store에 저장할지 판단.
- Context Store에 추적.
- 다음 대화 때 Retriever가 store에서 관련 데이터를 검색.
- 검색된 context가 LLM prompt에 주입됨.
- 모델이 더 "기억력 좋은" 답변 생성.
예시: 대화형 AI의 콘템스트 유지
사용 시나리오: AI 비서
- 유저: "이번 여름에 제주도 가려고 해."
- AI: "어디에서 미리 예정하고 계시나요?"
- 유저: "7월 초 생각 중이야."
이 대화에서 Insert Node는 다음 정보를 저장
- 여행지: 제주도
- 일정: 7월 초
몇 주 뒤 유저가
- "숙소 좀 추천해줘" → Retriever가 과거 대화 검색 → Prompt에 자동 주입 →
- 모델: "7월 초에 제주도 여행 계획하셨던 거 맞죠? 추천 드릴게요."
이처럼 MCP는 LLM의 short-term memory 한계를 보완해 장기 memory처럼 작동시켜줍니다.
MCP가 갖오는 변화
| 기존 방식 | MCP 방식 |
| 매 prompt마다 모든 정보를 새로 주입 | 필요한 context만 자동 검색 후 주입 |
| prompt 길이 제한 문제 | context store로 offload |
| 사용자가 기억 유지를 직접 관리 | 시스템이 자동 관리 |
'개발 공부' 카테고리의 다른 글
| 트랜잭션(Transaction) (0) | 2025.06.19 |
|---|---|
| MCP (Model Context Protocol) (3) (1) | 2025.06.17 |
| $, _name$ 네이밍 컨벤션 (0) | 2025.06.03 |
| Chrome DevTools (1) | 2025.05.25 |
| SCSS 중첩 선택자: .parent { .children {} } 와 & > .children {}의 차이 (0) | 2025.05.18 |