AI 관련 프로젝트를 하다 보면, 모델이 똑같은 질문에 맥락을 전혀 모르고 답할 때가 종종 있다.
"이전에 했던 말은 다 잊었나?" 싶은 상황들.
나도 최근 비슷한 문제를 겪으면서 찾게 된 개념이 바로 MCP(Model Context Protocol) 이다.
공식 문서가 있는 건 아니지만, 내가 알아본 결과 MCP는 요즘 AI 시스템들이
"지능적으로 보이게 만들기 위해 꼭 필요한 맥락 구성 기술" 이었다.
◎ 왜 MCP가 필요한가?
기본적으로 GPT나 Claude 같은 LLM은 Stateless 하다.
즉, 이전 대화나 작업 내용을 스스로 기억하지 못한다.
예를 들어 이런 상황:
나: 지난번에 만든 API 명세서 다시 보여줘
모델: (지난번 대화를 기억 못 함) … 어떤 명세서를 말씀하시는 건가요?
그래서 이런 문제를 해결하려면, 우리가 직접 맥락을 정리해서 모델에게 던져줘야 한다.
이걸 체계적으로 정리하는 구조가 MCP라는 것이다.
◎ MCP의 기본 구조
내가 이해한 MCP의 구성 요소는 다음과 같았다:
구성 | 요소역할 |
User Profile | 사용자의 성향, 배경, 관심사 등을 요약 |
Task Definition | 지금 모델이 해야 할 역할이나 목표를 명시 |
Conversation History | 이전 대화의 기록 또는 요약 |
Working Memory | 세션이나 장기 작업 내용을 기억해두는 공간 |
Instructions | 모델이 지켜야 할 규칙, 금지어, 말투 등 |
이걸 조립해서 LLM에 던져주는 방식이 핵심이다.
즉, 모델에게 "너 지금 이런 사람과, 이런 목표를 가지고, 이런 문맥에서 대화 중이야" 라고 친절히 알려주는 것.
◎ MCP 전체 아키텍처 요약
내가 정리해본 MCP 기반 AI 시스템의 구조는 다음과 같다:
이 그림을 보면 흐름은 아래와 같다:
- 사용자가 어떤 요청을 보냄
- MCP Context Manager가 현재의 사용자 정보, 과업, 대화 이력 등을 모아서 Context를 구성
- Prompt Engine이 그 Context를 LLM에 전달할 수 있는 형태로 포맷팅
- LLM이 응답 생성
- 필요한 경우 Session DB나 Long-term Memory(RAG)를 통해 과거 정보도 끌어옴
이걸 통해 모델은 일시적인 대화가 아니라 "지속적이고 일관된 지능적 흐름" 을 가지게 된다.
◎ 예시: MCP 기반 초기 구축 맥락
내가 직접 만들어보려는 예제를 MCP에 맞춰 구성해 보면 이렇다.
☞ 상황:
- 사용자는 Spring Boot를 사용하는 백엔드 개발자
- API 명세서를 자동 생성해주는 AI 도우미를 만들고 싶음
☞ MCP Context 예시:
{
"user_profile": {
"role": "백엔드 개발자",
"framework": "Spring Boot",
"language": "Java"
},
"task_definition": "사용자의 설명을 바탕으로 REST API 명세서 템플릿을 생성한다",
"conversation_history": [
{"user": "고객 목록을 조회하는 API를 만들어줘", "assistant": "GET /customers ..."}
],
"working_memory": {
"base_url": "/api/v1",
"response_format": "JSON"
},
"instructions": [
"가능한 한 실무 예시 위주로 작성할 것",
"문장 대신 코드 중심으로 설명할 것",
"Swagger 스타일을 따를 것"
]
}
이 MCP를 기반으로 Prompt Engine이 아래와 같은 문장을 만들어 LLM에 넘긴다:
"당신은 Spring Boot 기반 백엔드 API 명세서를 작성하는 AI 도우미입니다. 사용자는 Java 개발자이며, 이전에 '/customers' API를 생성했습니다. 이번에는 같은 형식으로 새로운 API 명세서를 생성해야 합니다. 응답은 JSON 포맷을 사용하며 Swagger 스타일을 따릅니다."
이 정도만 해줘도 모델은 훨씬 더 "지능적인 흐름" 을 가질 수 있다.
◎ 내가 참고한 정리 포인트
- MCP는 하나의 표준은 아니고, 각자 시스템에 맞게 구조화하는 "개념적 프로토콜" 에 가깝다.
- 결국은 “프롬프트 엔지니어링을 시스템화” 한 구조라고 볼 수 있다.
- LangChain, Semantic Kernel 같은 프레임워크도 MCP 개념을 내장하고 있음.
- 중요한 건 "모델에게 지금 상황을 잘 설명해줘야 모델이 똑똑하게 행동한다" 는 점.
'※ 소소한 IT' 카테고리의 다른 글
데이터 전처리란? 쉽게 이해하는 데이터 정리 방법! (0) | 2025.02.26 |
---|---|
Grafana와 InfluxDB 연계: 실시간 데이터 시각화 및 대시보드 구성 가이드 (0) | 2025.01.02 |
Windows에서 PowerShell로 InfluxDB와 CLI 설치: 초보자를 위한 가이드 (1) | 2024.12.20 |
톰캣과 IIS 공존 설정 방법: 포트 분리 vs Reverse Proxy (0) | 2024.12.18 |
REST API 설계부터 Swagger 문서화까지: 실무 팁과 예제 총정리 (0) | 2024.11.27 |