MemoryLake
모든 글로 돌아가기
Tutorial2026년 7월 30일·7 분 소요

컨텍스트 손실 없이 GitHub Copilot에서 Claude Code로 마이그레이션하는 방법 (2026)

일상적인 코딩 작업을 GitHub Copilot에서 Claude Code로 전환하기로 결정하셨습니다. 설치는 몇 분밖에 걸리지 않습니다. 하지만 아무도 경고하지 않는 부분이 있습니다. 바로 Copilot이 여러분의 코드베이스에 대해 흡수했던 모든 것—컨벤션, 세 가지 아키텍처 결정의 배경 이유, 리팩터링해도 안전한 모듈과 절대 안 되는 모듈 등—은 함께 따라오지 않는다는 점입니다.

이에 대한 직접적인 답은 이렇습니다. 내보내기 버튼은 존재하지 않습니다. 마이그레이션하려는 정보의 대부분은 여러분이 소유한 데이터로 저장된 적이 없기 때문입니다. Copilot의 영구적인 레이어는 리포지토리에 있는 몇 개의 지침 파일뿐이며, 이는 반나절이면 포팅할 수 있습니다. 나머지는 세션을 닫으면 사라지는 채팅 세션에 존재했습니다. 따라서 깔끔한 마이그레이션을 하려면 파일을 포팅하고, 암묵적 지식을 의도적으로 다시 작성한 다음, 이 작업을 다시 반복하지 않도록 그 지식을 두 도구 모두에 종속되지 않는 곳에 두어야 합니다.

이 가이드에서는 이 세 가지 단계를 순서대로 다룹니다.

코딩 에이전트를 전환할 때 컨텍스트를 잃게 되는 이유

Copilot의 메모리는 생각보다 얇습니다

몇 달 동안 사용하다 보면 Copilot이 프로젝트를 잘 알고 있는 것처럼 느껴집니다. 하지만 실제로 세션당 Copilot이 가지고 있는 것은 열려 있는 파일, 리포지토리에서 검색할 수 있는 내용, 그리고 지침 파일뿐입니다. 리포지토리 수준의 맞춤형 지침(.github/copilot-instructions.md 및 그와 함께 제공되는 범위별 지침 및 프롬프트 파일)은 실제 존재하고 이식이 가능하며 버전 관리도 됩니다. 그 외의 모든 것은 매번 새로 수행되는 추론이며, 채팅 기록은 지식 베이스가 아니라 단순한 대화 기록에 불과합니다. 개발자들은 끊임없이 이 한계에 부딪히며, 그 메커니즘은 why GitHub Copilot forgets your codebase context에서 자세히 다루고 있습니다.

가치 있는 부분은 기록된 적이 없습니다

가장 가치 있는 지식은 대화 속에서만 만들어진 것들입니다. 예를 들어 결제 모듈이 왜 중복 쓰기를 허용하는지, 어떤 테스트 스위트가 잘못된 결과를 내는지, 이전의 인증 서비스 분리 시도가 왜 실패했는지 등입니다. 여러분은 이러한 내용을 채팅을 통해 Copilot에게 설명했습니다. 복사할 파일도 없고, 설령 있다 하더라도 이를 캡처할 수 있는 내보내기 형식도 존재하지 않습니다.

Claude Code 역시 상태를 저장하지 않습니다 (Stateless)

이 부분은 대부분의 마이그레이션 가이드가 생략하는 내용입니다. Claude Code는 모든 세션을 빈 도화지 상태로 시작합니다. 프로젝트 루트의 CLAUDE.md와 사용자 수준의 ~/.claude/CLAUDE.md를 읽고, MCP를 통해 연결한 도구에 접근할 수 있지만, 세션 자체에는 세션 종료 후 유지되는 정보가 누적되지 않습니다. 컨텍스트 저장 방식을 바꾸지 않고 도구만 전환한다면, Claude Code forgetting project context에서 자세히 설명하듯이 UI만 바뀐 채 동일한 문제에 직면하게 될 것입니다.

도구를 바꾸는 것은 인터페이스의 변화일 뿐입니다. 컨텍스트가 머무는 위치를 바꾸는 것만이 근본적인 상황의 변화를 가져옵니다.

수동 마이그레이션

1단계: Copilot이 실제로 보유한 정보 수집하기

리포지토리를 살펴보며 이식 가능한 요소들을 모으세요:

  • .github/copilot-instructions.md — 리포지토리 전체 지침
  • 지금까지 누적된 범위별 지침 파일 및 재사용 가능한 프롬프트 파일
  • 린트(lint) 및 포맷터(formatter) 설정 등 컨벤션이 인코딩된 에디터 설정
  • 위키, ADR 폴더 또는 온보딩 문서에 고정해 둔 모든 내용

그 다음, 더 까다로운 인벤토리 작업을 수행합니다. 지난 2주 동안의 Copilot 채팅을 열고 두 번 이상 설명해야 했던 모든 컨텍스트를 적어보세요. 이 반복 작업이 바로 메모리 감사(audit)입니다. 계속해서 다시 입력해야 했던 내용이 바로 저장되지 않았던 정보들입니다.

2단계: Claude Code가 읽을 수 있는 곳에 재구축하기

Claude Code는 CLAUDE.md를 읽으므로 여기서부터 시작합니다. 지침 내용을 포팅한 다음, 프로젝트가 성장해도 유용하게 유지되도록 다음과 같이 구조화하세요:

  • 프로젝트 형태: 서비스의 종류, 상호 작용 방식, 지원 중단(deprecated)된 부분
  • 컨벤션: 명명 규칙, 에러 처리, 테스트 기대치, 커밋 및 리뷰 규칙
  • 이유가 포함된 결정 사항: 단순히 "Postgres 사용"이 아니라 "Postgres 사용, 큐 모드 워커가 프로세스 내 상태를 손상시켰기 때문"
  • 함정: 불안정한 테스트 스위트, 숨겨진 결합도가 있는 모듈, 순서대로 실행해야 하는 마이그레이션

사용자 수준의 개인 설정은 ~/.claude/CLAUDE.md에 유지하고, 프로젝트 관련 사실은 리포지토리 파일에 유지하여, 팀원들이 여러분의 개인 설정 없이 프로젝트 관련 정보만 공유받을 수 있도록 하세요.

이렇게 하면 작동 가능한 Claude Code 설정이 완료되며, 아무것도 없이 시작하는 것보다 확실히 낫습니다. 하지만 한계도 존재합니다. 단일 마크다운 파일은 브리핑 문서일 뿐 메모리가 아닙니다. 스스로 성장하지 않으며, 힘든 디버깅 세션이 끝난 후 이를 업데이트하는 사람도 없고, 장애 검토에 사용하는 어시스턴트나 다음 달에 더 저렴한 모델로 라우팅할 에이전트에게 이 내용이 전달되지도 않습니다. 6달만 지나도 CLAUDE.md는 낡은 문서가 되거나 지나치게 비대해질 것입니다.

더 나은 방법: 도구에 종속되지 않는 단일 메모리 레이어

이러한 마이그레이션을 반복하지 않는 해결책은, 사용하는 에이전트 내부에 프로젝트 지식을 저장하는 것을 중단하는 것입니다. MemoryLake는 도구 외부에 존재합니다. 아키텍처 노트, 결정 사항, 리포지토리 컨텍스트가 단일 메모리 레이어에 저장되며, Claude Code는 MCP를 통해 이를 읽어옵니다. 나중에 Codex를 추가하거나, 자동 완성을 위해 Copilot을 계속 사용하거나, 두 번째 에이전트에게 작업을 넘기더라도, 각자 전용 복사본을 다시 빌드할 필요 없이 동일한 소스를 읽게 됩니다.

1단계: API 키 생성하기

키를 생성하고 약 30초 만에 첫 번째 요청을 보내보세요.

MemoryLake API 키 생성하기
MemoryLake API 키 생성하기

2단계: 첫 번째 메모리 업로드하기

방금 작성한 CLAUDE.md, 아키텍처 다이어그램, ADR, 런북, 장애 보고서, API 사양 등 프로젝트의 실제 컨텍스트가 담긴 문서, 이미지, 파일을 업로드하세요. 이전에는 채팅에만 존재했던 자료들입니다.

MemoryLake에 첫 번째 메모리 업로드하기
MemoryLake에 첫 번째 메모리 업로드하기

3단계: AI 및 에이전트 연결하기

Claude, Codex, OpenClaw 및 기타 에이전트가 MCP 또는 API를 통해 해당 메모리에 액세스할 수 있도록 허용하세요. Claude Code에 대한 구체적인 방법은 how to add memory to Claude Code를 참조하세요. 그 이후부터는 새 세션이 시작될 때 프로젝트가 이미 로드된 상태로 시작되며, 다음 도구 변경은 마이그레이션이 아니라 단순한 설정 수정이 됩니다.

MCP를 통해 AI 및 에이전트 연결하기
MCP를 통해 AI 및 에이전트 연결하기

이동에 드는 실제 비용과 절약되는 가치

수동 방식의 비용을 솔직하게 계산해 봅시다. 지침 파일 포팅: 1시간 미만. 암묵적 지식을 CLAUDE.md로 재구성: 철저히 할 경우 반나절. 그리고 반복되는 비용: 상시 프로젝트 컨텍스트가 2,000 토큰이고 세션과 에이전트 전반에서 하루에 20번씩 재진술된다고 가정해 보겠습니다. 이는 매달 약 120만 토큰을 같은 말을 반복하는 데 소비하는 것이며, 세션을 열 때마다 4~5분 동안 다시 브리핑하는 셈입니다.

공유 메모리 레이어에 단 한 번 기록하는 것으로 이러한 반복적인 비용의 절반을 대체할 수 있습니다. 또한 다음 도구를 평가할 때의 상황도 달라집니다. 현재로서는 Codex나 새로운 에이전트를 시도하려면 컨텍스트 재구축 비용을 다시 지불해야 하므로, 팀들이 이미 한계에 도달한 도구를 계속 붙잡고 있게 됩니다. 메모리가 외부에 있으면 도구를 평가하는 데 한 달이 아니라 반나절밖에 걸리지 않습니다.

전환을 위한 모범 사례

대화 기록이 아닌 결정을 마이그레이션하세요

새 설정에 채팅 로그를 그대로 쏟아붓지 마세요. 선택, 이유, 날짜와 같은 결론을 추출하여 저장하세요. 결론은 검색이 잘 되지만, 대화 기록은 핵심 신호를 묻어버리고 읽는 데 토큰 비용만 소모합니다.

2주 동안 두 도구를 함께 실행하세요

Claude Code가 에이전트 작업을 수행하는 동안 Copilot의 자동 완성 기능은 유지하세요. 두 도구를 겹쳐서 사용하면 포팅하는 것을 잊어버린 컨텍스트가 표면으로 드러납니다. 무언가를 두 번 설명하고 있는 자신을 발견하게 될 것이기 때문입니다.

메모리는 한 번만 쓰고, 어디서나 읽으세요

컨벤션, 제약 조건, 사후 분석 결과 등 나중에 다시 필요할 내용을 에이전트에게 설명할 때마다 세션이 아닌 공유 레이어에 저장하세요. 이러한 습관이 세 번째 마이그레이션을 아주 사소한 일로 만들어 줍니다. 이는 처음부터 다시 시작하지 않고 migrating from Cursor to Claude Codemoving off Codex를 수행하는 것과 동일한 원리입니다.

결론

GitHub Copilot에서 Claude Code로 이동하는 것은 하나의 이름 아래 두 개의 마이그레이션이 진행되는 것과 같습니다. 첫 번째는 기계적인 작업입니다. 지침 파일을 CLAUDE.md로 옮기는 것으로, 1시간이면 끝납니다. 두 번째는 고통스러운 작업입니다. 채팅에서 설명했던 수개월 간의 컨텍스트로, 저장된 적이 없기 때문에 내보낼 방법이 없습니다.

이를 수동으로 재구축할 수 있으며, 한 번은 그렇게 해야 합니다. 하지만 Claude Code 내부에서 이를 재구축한다면, 결국 언젠가 떠나게 될 다음 도구에 이를 저장하는 셈이 됩니다. 프로젝트의 메모리를 에이전트가 읽을 수 있는 레이어에 보관하세요. 그러면 질문은 "어떻게 내 컨텍스트를 Claude Code로 옮길 것인가"가 아니라 "오늘은 어떤 에이전트가 이 메모리를 읽게 할 것인가"로 바뀔 것입니다.

자주 묻는 질문

GitHub Copilot 채팅 기록을 Claude Code로 내보낼 수 있나요?

Copilot 채팅 기록을 사용할 수 있는 형태로 Claude Code로 가져오는 공식 내보내기 기능은 지원되지 않으며, 원시 대화 기록이 있더라도 형식이 맞지 않습니다. Claude Code는 다른 도구의 로그가 아니라 지침과 연결된 메모리를 읽기 때문입니다. 지침 파일을 포팅한 다음, 해당 채팅에서 지속적으로 필요한 결론을 수동으로 추출하세요.

`.github/copilot-instructions.md`에 해당하는 Claude Code의 기능은 무엇인가요?

프로젝트 루트의 CLAUDE.md와 사용자 수준의 ~/.claude/CLAUDE.md 설정입니다. 둘 다 일반 마크다운 형식이며 코드와 동일한 검토 절차를 거쳐야 합니다. 오래된 지침 파일은 이를 읽는 모든 세션을 잘못된 방향으로 안내할 수 있기 때문입니다.

Claude Code는 세션 간에 내 프로젝트를 기억하나요?

자체적으로는 기억하지 못합니다. 매 세션마다 CLAUDE.md 파일을 다시 읽고 MCP를 통해 연결된 모든 항목에 접근할 수 있지만, 세션 자체에는 아무것도 유지되지 않습니다. 영속성은 에이전트에 무엇을 연결하느냐에 따라 결정됩니다.

마이그레이션 후에도 Copilot을 계속 사용해야 하나요?

많은 팀이 그렇게 하고 있습니다. 인라인 자동 완성에는 Copilot을 사용하고, 다중 파일 에이전트 작업에는 Claude Code를 사용하는 방식입니다. 하지만 이 조합은 두 도구가 동일한 컨텍스트를 가리키고 있을 때만 원활하게 작동하며, 그렇지 않으면 서로 다른 두 개의 프로젝트 지식을 관리해야 하는 번거로움이 발생합니다.

이러한 마이그레이션을 다시 하지 않으려면 어떻게 해야 하나요?

프로젝트 컨텍스트를 에이전트 외부에 저장하세요. 컨벤션, 결정 사항, 함정 등이 에이전트가 MCP나 API를 통해 읽을 수 있는 메모리 레이어에 존재하면, 도구를 전환하거나 추가하는 것은 지식을 재구축하는 프로젝트가 아니라 단순한 연결 변경 작업이 됩니다.