MCP Context Framework - 대규모 코드베이스를 이해하는 AI의 새로운 접근
문제: AI는 큰 그림을 볼 수 없다
Cursor, Continue, Cline 같은 Code Agent를 써본 사람은 알 것이다. 작은 프로젝트에서는 마법 같지만, 대규모 프로젝트에서는 한계가 뚜렷하다.
왜 그럴까?
컨텍스트 윈도우의 벽
현재 최고 성능의 LLM도 컨텍스트 윈도우 한계가 있다.
| 모델 | 컨텍스트 윈도우 |
|---|---|
| GPT-4 Turbo | 128K 토큰 |
| Claude 3 | 200K 토큰 |
| Gemini 1.5 | 1M 토큰 |
많아 보이지만, 대규모 프로젝트는 수십만~수백만 줄 코드다. 128K 토큰으로는 프로젝트의 1% 도 담기 어렵다.
파일 단위의 시야
Code Agent는 기본적으로 파일 단위로 코드를 본다.
UserService.java를 읽는다UserController.java를 읽는다- 하지만 두 파일의 관계는?
OrderService가UserService를 어떻게 호출하는지?- 전체 시스템에서 이 코드의 역할은?
파일 몇 개 읽어서는 알 수 없다.
레거시의 늪
특히 레거시 시스템에서 문제가 심각하다.
- 한 파일이 수천~수만 줄
- 의존성이 스파게티처럼 얽힘
- 문서는 오래전에 업데이트 중단
- 원저자는 퇴사한 지 오래
AI에게 "이 시스템 분석해줘"라고 하면? 컨텍스트 초과 또는 엉뚱한 답변.
기존 해결책의 한계
RAG (Retrieval Augmented Generation)
코드를 벡터 DB에 저장하고, 질문과 관련된 부분만 검색해서 LLM에 전달.
문제점:
- 코드는 자연어와 다르다 - 키워드 검색이 잘 안 맞음
- 구조적 관계를 놓침 - "이 함수를 호출하는 곳"을 찾기 어려움
- 검색 결과가 단편적 - 전체 흐름 파악 불가
긴 컨텍스트 모델
Gemini 1.5처럼 1M 토큰을 지원하는 모델을 쓰면?
문제점:
- 비용 폭증 - 토큰당 과금
- 속도 저하 - 컨텍스트가 길수록 느림
- 여전히 무한대는 아님 - 초대형 프로젝트는 여전히 불가
새로운 접근: 두 LLM의 협업
핵심 아이디어는 간단하다.
"컨텍스트를 나눠 쓰자"
아키텍처 개요
[Code Agent (원본 LLM)]
│
│ 필요한 질문만 전달
│ (이전 대화 컨텍스트 X)
▼
[Context MCP Server]
│
├── [Project Index] - AST 파싱 결과
│
└── [Query Resolver (동등 LLM)]
│
│ 자기 컨텍스트로 코드 분석
│ 필요한 정보만 추출
▼
[정제된 응답]
역할 분담
| 구성요소 | 역할 | 컨텍스트 사용 |
|---|---|---|
| Code Agent | 개발자와 대화, 코드 수정 | 대화 컨텍스트에 집중 |
| Context MCP | 프로젝트 구조 인덱싱, 쿼리 라우팅 | 인덱스 저장소 |
| Query Resolver | 코드 분석, 정보 추출 | 코드 컨텍스트에 집중 |
핵심은 분리다.
- Code Agent는 대화에 집중 - 프로젝트 전체를 알 필요 없음
- Query Resolver는 코드에 집중 - 대화 맥락 필요 없음
- 둘이 각자의 컨텍스트를 최대 활용
동작 예시
개발자: "UserService에서 권한 체크하는 부분 찾아줘"
- Code Agent → MCP: "UserService 권한 체크 코드 찾기"
- MCP → Index: AST 검색 (UserService 클래스, 권한 관련 메서드)
- MCP → Query Resolver: 후보 코드 전달 + 분석 요청
- Query Resolver: 자기 컨텍스트로 코드 상세 분석
- Query Resolver → MCP: "checkPermission() 메서드, 42번 줄, ADMIN 권한 검증"
- MCP → Code Agent: 정제된 결과 전달
- Code Agent: 개발자에게 설명 + 코드 표시
결과: Code Agent는 전체 코드를 로드하지 않고도 정확한 정보를 얻음.
확장 가능성
멀티 프로젝트 지원
Context MCP에 여러 프로젝트를 등록하면?
- 프로젝트 A의 API가 프로젝트 B에서 어떻게 사용되는지
- 마이크로서비스 간 의존 관계
- 공통 라이브러리 영향도 분석
점진적 인덱싱
전체 인덱싱이 부담되면?
- 필요한 부분만 점진적으로 인덱싱
- Git diff 기반 변경분만 업데이트
- 자주 질문받는 영역 우선 인덱싱
도메인 특화
프로젝트별 컨텍스트를 누적하면?
- "우리 팀은 이 패턴을 선호한다"
- "이 모듈은 건드리면 안 된다"
- 암묵지의 명시화
현재 상태와 계획
이 프레임워크는 아직 기획 단계다.
| 단계 | 상태 | 예상 시기 |
|---|---|---|
| 기획 | ✅ 완료 | 2026년 1월 |
| 설계 | 🔄 진행 중 | 2026년 2월 |
| PoC | 📋 예정 | 2026년 상반기 |
기술적 과제
- AST 파싱 최적화 - 다양한 언어 지원
- 인덱스 효율화 - 대용량 프로젝트 처리
- Query Resolver 프롬프트 설계 - 정확한 정보 추출
- MCP 프로토콜 확장 - 구조화된 응답 포맷
마무리
AI Code Agent가 진정한 팀원이 되려면, 프로젝트 전체를 이해해야 한다. 단순히 컨텍스트 윈도우를 키우는 건 해답이 아니다.
컨텍스트를 효율적으로 나눠 쓰는 것. 이게 우리가 찾은 방향이다.
기술적 검증이 끝나면 오픈소스로 공개할 계획이다. 관심 있는 분들의 피드백을 기다린다.
이 기획은 대규모 엔터프라이즈 프로젝트에서 Code Agent를 적용하면서 느낀 한계에서 시작했다. 이론적으로는 가능해 보이지만, 실제 구현과 검증은 아직 남아있다.