MemoryLake
모든 글로 돌아가기
Tutorial2026년 9월 4일·11 분 소요

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

이것은 첫 번째 단계가 '아무것도 하지 않는 것'인 매우 드문 마이그레이션이며, 바로 그 점 때문에 위험합니다.

Amp는 여러분의 CLAUDE.md를 읽습니다. 변환을 거치거나 임포터를 통하는 것이 아니라, 문서화된 동작 방식에 따라 직접 읽습니다. Claude Code용으로 설정된 리포지토리를 Amp로 가리키기만 하면 프로젝트 지침이 이미 적용됩니다. 이 카테고리에서 가장 깔끔한 도구 전환처럼 느껴집니다.

하지만 이 기능이 작동하게 만드는 문장을 읽어보세요: "디렉토리에 AGENTS.md가 존재하지 않지만, AGENT.md(S가 없는) 또는 CLAUDE.md라는 이름의 파일이 존재한다면 해당 파일이 포함됩니다."

AGENTS.md가 존재하지 않는 경우에만. 이것은 폴백(fallback)입니다. 팀원 중 누군가가 Amp의 제너레이터를 실행하거나 다른 도구를 위해 AGENTS.md를 커밋하는 날, 해당 디렉토리에서는 폴백 적용이 중단되고 여러분의 CLAUDE.md는 아무 소리 없이 무시됩니다. 오류도 없고 경고도 없으며, 파일은 여전히 그 자리에 그대로 남아 있습니다.

이것이 이번 마이그레이션이 숨기고 있는 두 가지 사실 중 첫 번째입니다. 두 번째는 더 큽니다. Claude Code에는 Amp에 전혀 대응되는 기능이 없는 두 번째 메모리 시스템이 있습니다.

시작하기 전에 한 가지 범위를 명확히 하겠습니다. 이 글은 Claude Code에서 Amp로 전환하는 것에 대한 내용입니다. 만약 Amp를 계속 사용 중이고 매 작업마다 너무 많은 내용을 로드하는 것이 문제라면, 해결책은 다른 메커니즘입니다. scoping Amp's instructions to the files they apply to에서 이 내용을 다룹니다.

실제로 이전되는 것

여러분의 CLAUDE.md는 조건부로 있는 그대로 이전됩니다. 위에서 다룬 내용입니다. 이를 최종 목적지가 아닌 유예 기간으로 생각하세요. 같은 디렉토리에 AGENTS.md가 나타나기 전까지만 작동합니다.

로드 모델은 안심할 수 있을 정도로 비슷합니다. Claude Code는 실행 시 "작업 디렉토리 상위의 디렉토리 계층 구조에 있는 CLAUDE.md 및 CLAUDE.local.md 파일..."을 로드하는 반면, "하위 디렉토리의 파일은 Claude가 해당 디렉토리의 파일을 읽을 때 필요에 따라 로드"합니다. Amp도 거의 동일합니다. "현재 작업 디렉토리(또는 에디터 워크스페이스 루트) 상위 디렉토리($HOME까지)의 AGENTS.md 파일은 항상 포함"되며, "하위 트리 AGENTS.md 파일은 에이전트가 하위 트리의 파일을 읽을 때 포함"됩니다.

동일한 형태이며, 하위 트리에 대한 지연 로딩(lazy loading) 방식도 같습니다. 여러분이 가지고 있던 멘탈 모델의 절반은 그대로 유지됩니다.

개인 및 시스템 스코프는 양쪽 모두 서로 다른 경로에 존재합니다. Claude Code는 로드 순서대로 관리형 정책, 사용자 (~/.claude/CLAUDE.md), 프로젝트, ./CLAUDE.local.md라는 네 가지 문서화된 스코프를 가집니다. Amp는 리포지토리 파일 외에도 "커밋하기 전에 로컬에서 테스트하는 개인 기본 설정, 기기별 명령 및 안내"를 위한 "$HOME/.config/amp/AGENTS.md""$HOME/.config/AGENTS.md"를 제공하며, "모든 Amp 세션에 대한 시스템 전체 또는 조직 관리 안내"를 위해 /etc/ampcode/AGENTS.md, /Library/Application Support/ampcode/AGENTS.md 또는 %ProgramData%\ampcode\AGENTS.md에 시스템 전체 파일을 둡니다.

Amp의 리포지토리 외 파일은 모두 "존재하는 경우 항상 포함"됩니다. 따라서 사용자 스코프 콘텐츠는 깔끔하게 매핑되며, 경로가 변경되고 로딩이 무조건적이라는 점은 양쪽 모두 동일합니다.

조건부 규칙이 이전되며, 더 개선됩니다. 이것은 진정한 업그레이드입니다. Claude Code는 .claude/rules/ 프론트매터의 paths 필드를 사용하여 지침의 범위를 지정하며, 여기서 "경로 스코프 규칙은 Claude가 패턴과 일치하는 파일을 읽을 때 트리거"됩니다. Amp는 globs 목록을 포함하는 @ 언급 파일을 통해 동일한 작업을 수행합니다. "globs가 있는 언급된 파일은 Amp가 해당 glob 중 하나라도 일치하는 파일을 읽은 경우에만 포함됩니다."

변환할 때 알아두어야 할 두 가지가 있습니다. 단순 언급은 무조건적입니다. "globs가 지정되지 않은 경우, @ 언급 시 파일이 항상 포함됩니다." 따라서 프론트매터가 핵심입니다. 그리고 glob 해석에는 자체 규칙이 있습니다. "Glob은 ./ 또는 ../로 시작하지 않는 한 암시적으로 앞에 **/가 붙으며, ./../로 시작하는 경우에는 언급된 파일에 대한 상대 경로를 나타냅니다."

임포트 구문은 철자뿐만 아니라 의미도 바뀝니다. Claude Code의 @path/to/import는 실행 시 파일을 가져옵니다. "임포트된 파일은 이를 참조하는 CLAUDE.md와 함께 실행 시 컨텍스트로 확장 및 로드"되며, "최대 깊이는 4단계"입니다. Amp의 @ 언급도 비슷해 보이며 조건부로 설정할 수 있습니다. 둘 다 코드 블록은 건너뜁니다. Claude Code의 "임포트 파싱은 마크다운 코드 스팬 및 펜스 코드 블록을 건너뜁니다", Amp의 "코드 블록 내의 @ 언급은 오탐을 방지하기 위해 무시됩니다"이므로 백틱 안의 경로는 양쪽 모두에서 리터럴로 유지됩니다.

주의해야 할 한 가지 차이점은 다음과 같습니다. "상대 경로는 작업 디렉토리가 아니라 언급을 포함하는 에이전트 파일을 기준으로 해석"됩니다. Claude Code도 동일한 방식으로 해석하므로 그대로 복사해도 대부분 작동하지만, 파일을 한 단계 위나 아래로 이동하면 해당 언급이 깨지게 됩니다.

자동 메모리(Auto memory)는 이전되지 않습니다. 이전할 대상이 없기 때문입니다. Claude Code는 하나가 아닌 두 개의 시스템을 실행합니다. 여러분이 작성하는 파일과 함께, "자동 메모리를 통해 Claude는 사용자가 아무것도 작성하지 않아도 세션 전반에 걸쳐 지식을 축적"하며, 유형별로 태그가 지정됩니다. user는 "사용자의 역할, 전문성 및 작업 선호도", feedback은 "사용자가 Claude에게 제공한 수정 사항 및 확인된 접근 방식", project는 "Claude가 코드나 git 기록에서 도출할 수 없는 진행 중인 작업, 마감일 및 결정 사항", reference는 외부 포인터를 나타냅니다.

이 기능은 기본적으로 활성화되어 있으며, ~/.claude/projects/<project>/memory/ 아래의 로컬 파일에 MEMORY.md 인덱스와 함께 저장됩니다. 스코프는 "리포지토리별로 작업 트리 간에 공유"되며, 로드되는 슬라이스는 제한되어 있습니다. "매 세션마다 (첫 200줄 또는 25KB)."

Amp의 문서화된 지속성(persistence)은 사용자가 작성하는 AGENTS.md 파일과 스레드뿐이며, 스레드는 저장소라기보다는 대화입니다. 스스로 작성하는 메모리 디렉토리에 대응하는 문서화된 기능은 없습니다. 따라서 스스로 축적되었던 Claude Code 설정의 절반(제공한 수정 사항, 추론된 선호도 등)은 갈 곳이 없습니다.

스레드는 메모리 레이어가 아니며, Amp도 그렇게 주장하지 않습니다. 스레드는 작업의 연속성을 위해 정말 잘 설계되었습니다. 스레드에는 URL이 있으며, "웹 앱, CLI, iOS 및 macOS용 Amp 앱에서 동일한 스레드가 열리고", "에이전트가 실행되는 위치는 이를 확인하는 위치와 분리"됩니다. 지침은 작업당 하나의 스레드를 사용하는 것입니다. "관련 없는 작업이 섞인 스레드는 에이전트가 추론하기에 더 나쁜 컨텍스트를 제공"하기 때문이며, 스레드가 커질 때를 대비한 문서화된 탈출구도 있습니다. "에이전트에게 'Handoff and …(핸드오프 및...)'를 요청하면 중요한 컨텍스트만 가지고 새 스레드를 시작합니다."

유용합니다. 하지만 사실(facts)을 보관할 장소는 아닙니다. 핸드오프는 프로젝트에 대한 모든 사실이 아니라 에이전트가 관련이 있다고 판단한 내용만 전달하기 때문입니다.

수동 마이그레이션

1단계: 의도적으로 이름을 변경한 다음, 트리거별로 분할하기

폴백에 의존하지 마세요. CLAUDE.md 파일이 있는 동일한 경로에 실제 AGENTS.md 파일을 생성하여, 나중에 누군가 파일을 추가하더라도 동작이 조건부로 바뀌지 않고 명시적으로 유지되도록 하세요.

그런 다음 분할하세요. Amp는 다음과 같이 권장합니다. "여러 하위 프로젝트가 있는 대규모 리포지토리에서는 최상위 AGENTS.md를 일반적인 내용으로 유지하고, 각 하위 프로젝트의 하위 트리에 더 구체적인 AGENTS.md 파일을 만드는 것을 권장합니다." Claude Code도 반대 방향에서 동일한 조언을 했습니다. "CLAUDE.md 파일당 200줄 미만을 목표로 하세요. 파일이 길어지면 더 많은 컨텍스트를 소비하고 준수율이 떨어집니다." 따라서 이미 이 제한을 지키고 있었다면 대부분 그대로 복사하면 됩니다.

다음으로 .claude/rules/ 항목을 변환합니다. paths 필드가 있는 규칙은 프론트매터에 globs 목록이 포함된, AGENTS.md에서 참조하는 파일이 됩니다. paths 필드가 없는 규칙은 무조건 로드되었으므로 단순 언급이 아닌 일반 파일에 속해야 합니다.

~/.claude/CLAUDE.md 콘텐츠를 $HOME/.config/amp/AGENTS.md로 이동합니다. 버전 관리에서 제외했던 CLAUDE.local.md에 있던 내용("개인 프로젝트별 선호도")의 경우, Amp의 $HOME/.config 파일이 가장 적합한 보금자리입니다. 차이점은 하나의 프로젝트가 아니라 모든 곳에 적용된다는 점입니다.

그런 다음 전용 명령어로 확인합니다. "Amp가 사용 중인 에이전트 파일을 보려면 커맨드 팔레트에서 agents-md list를 선택하세요." 몇 개의 디렉토리에서, 그리고 에이전트가 다른 파일 형식을 읽은 후에 이 명령을 실행해 보세요. 이는 Claude Code에서 Memory files에 대해 /context를 확인하는 것과 같으며, 이동 중에 상대 경로가 깨진 언급을 찾아내는 방법입니다.

2단계: Claude Code 사용을 중단하기 전에 자동 메모리 읽기

이 단계는 도구가 제공되지 않으며 사람들이 가장 많이 건너뛰는 단계입니다.

~/.claude/projects/<project>/memory/를 여세요. 이 파일들은 MEMORY.md 인덱스가 있는 일반 마크다운 파일이며, Claude가 스스로를 위해 작성했기 때문에 쉽게 읽을 수 있습니다. 읽어보세요.

그곳에서 발견하는 것은 몇 달 동안 축적된 수정 사항의 잔재일 것이며, 진행하면서 분류할 가치가 있습니다. 지침처럼 읽히는 항목(포맷 선호도, 계속 반복했던 규칙 등)은 새 AGENTS.md 또는 glob 스코프 파일의 콘텐츠가 됩니다. 프로젝트에 대한 사실처럼 읽히는 항목(마감일, 결정 사항 및 그 이유, 임시 방편이 존재하는 이유 등)은 지침 파일에 전혀 속하지 않으며, 이에 대해서는 나중에 다시 다루겠습니다.

또한 Claude Code가 의도적으로 기록하지 않은 사항도 유의하세요. 찾을 수 있는 내용이 달라지기 때문입니다. "Claude는 코드베이스에서 도출할 수 있는 모든 것을 건너뜁니다" 그리고 "또한 CLAUDE.md 파일에 이미 명시된 내용도 건너뜁니다." 따라서 자동 메모리는 파일의 복제본이 아니라 보완재입니다. 그 안에 있는 모든 것은 코드가 알려줄 수 없는 내용입니다. 이것이 바로 가장 구출할 가치가 있는 부분인 이유이자, 해당 파일들이 유실되었을 때 why Claude Code forgets project context가 발생하는 배경입니다.

더 나은 방법: 두 도구 외부에서 축적되는 절반을 유지하기

이름 변경은 기계적이고 glob 변환은 업그레이드입니다. 이 마이그레이션에 진짜 시간이 걸리게 만드는 것은 축적된 절반의 영역입니다. 그리고 다음 도구로 전환할 때 또다시 이 비용을 치르게 될 것입니다. 축적된 내용이 도구 내부에 저장되어 있었기 때문입니다.

Claude Code 자체의 프레임워크가 그 이유를 보여줍니다. Claude Code는 사용자가 작성하는 내용과 에이전트가 학습하는 내용을 분리하고, 둘 다 구성(configuration)이 아닌 컨텍스트로 취급합니다. "Claude는 이를 강제된 구성이 아닌 컨텍스트로 취급합니다." Amp는 첫 번째 카테고리는 유지하고 두 번째 카테고리는 버립니다. 두 도구 모두 틀리지 않았습니다. 단지 이 카테고리는 도구가 아닌 다른 곳에 보관되어야 할 뿐입니다.

축적되는 절반을 메모리 레이어에 넣으면 마이그레이션은 단순한 이름 변경으로 줄어듭니다. MemoryLake는 세 단계로 설정할 수 있습니다.

1단계: API 키 생성

로그인하고 대시보드에서 API 키를 생성합니다. 이것은 에디터 설정이나 에이전트의 로컬 디렉토리가 아니므로, 이번 마이그레이션을 촉발한 특성(다른 파일이 소리 없이 우선순위를 차지할 수 있는 폴백 구조)을 가지지 않습니다.

Claude Code와 Amp 모두에 하나의 저장소를 제공하기 위해 MemoryLake API 키 생성하기
Claude Code와 Amp 모두에 하나의 저장소를 제공하기 위해 MemoryLake API 키 생성하기

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

여기에 2단계의 두 번째 묶음이 들어갑니다. 결정 사항과 그 이유, 마감일, 도메인 어휘, 임시 방편이 존재하는 이유, 이미 한 번 이상 제공했던 수정 사항 등입니다.

지침 파일에 담기지 않는 축적된 지식을 MemoryLake에 업로드하기
지침 파일에 담기지 않는 축적된 지식을 MemoryLake에 업로드하기

동작 관련 내용은 패턴이 맞는 곳에 globs로 범위를 지정하여 AGENTS.md에 남겨두세요. 두 레이어는 서로 다른 역할을 수행하며, 이를 혼용하면 지침 파일이 너무 커져 에이전트가 제대로 따르지 못하게 됩니다.

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

Amp가 저장소를 가리키도록 설정합니다. AGENTS.md 파일은 짧고 동작 중심적으로 유지되고, 새 스레드는 핸드오프 요약이 아닌 프로젝트의 실제 사실에서 시작되며, 지식은 다음에 평가할 도구에서도 그대로 유지됩니다. 이에 대한 자세한 내용은 cross-agent memory에서 다룹니다.

MCP 및 API를 통해 동일한 MemoryLake 저장소에 Amp와 Claude Code 연결하기
MCP 및 API를 통해 동일한 MemoryLake 저장소에 Amp와 Claude Code 연결하기

실제 변화하는 점

첫 번째 변화는 폴백이 더 이상 핵심 역할을 하지 않는다는 점입니다. 명시적인 AGENTS.md 파일과 외부 저장소를 사용하면 설정의 어떤 부분도 특정 파일이 존재하지 않는 상태에 의존하지 않게 됩니다.

두 번째는 자동 메모리를 잃는 비용이 줄어든다는 점입니다. 자동 메모리는 훌륭한 기능이었고 Amp에 이 기능이 없다는 것은 분명한 공백이지만, 이는 보관할 곳이 없는 지식에만 해당되는 이야기입니다.

세 번째는 glob 스코프 지침을 작게 유지할 수 있다는 점입니다. Amp의 조건부 로딩은 항상 켜져 있는 파일보다 확실히 더 나으며, 프로젝트 사실을 담은 서류 캐비닛이 아니라 지침을 제한할 때 가장 잘 작동합니다. 이에 대한 논리는 reducing token usage with a memory layer에서 다룹니다.

Claude Code에서 Amp로 이동할 때의 베스트 프랙티스

  • 실제 AGENTS.md 파일을 생성하세요. CLAUDE.md 폴백은 AGENTS.md가 존재하지 않는 곳에만 적용됩니다.
  • 루트 파일을 분할하세요. Amp는 일반적인 최상위 파일과 구체적인 하위 트리 파일을 함께 사용할 것을 권장합니다.
  • pathsglobs로 변환하세요. 단순 @ 언급은 무조건적이라는 점을 기억하세요.
  • glob 해석에 유의하세요. 패턴이 ./ 또는 ../로 시작하지 않는 한 암시적으로 **/ 접두사가 붙습니다.
  • 파일 이동 후 언급 경로를 확인하세요. 언급이 포함된 파일을 기준으로 해석됩니다.
  • 자동 메모리 디렉토리를 먼저 읽어보세요. MEMORY.md로 인덱싱된 일반 마크다운이며, 이를 내보내는 기능은 없습니다.
  • agents-md list로 확인하세요. 여러 디렉토리에서, 그리고 다양한 파일 형식을 다룬 후에 실행해 보세요.
  • 스레드를 저장소로 취급하지 마세요. 작업당 하나의 스레드를 사용하며, 핸드오프는 에이전트가 관련이 있다고 판단한 내용만 전달합니다.

결론

Amp가 CLAUDE.md를 읽는다는 점 덕분에 이번 마이그레이션은 이 카테고리에서 가장 쉬운 것처럼 보이며, 파일 영역에 있어서는 실제로도 거의 그렇습니다. 기존보다 개선된 조건부 로딩 모델을 제공하기 때문입니다.

하지만 뼈아픈 부분은 스스로 작성되었던 절반의 영역입니다. Claude Code는 사용자의 수정 사항을 로컬 마크다운에 축적해 왔지만, Amp에는 그러한 레이어가 없으며 이를 위한 임포터도 제공되지 않습니다. 떠나기 전에 해당 디렉토리를 읽고, 지침과 사실을 분류하여, 다음 도구 전환 시에도 영향을 받지 않는 곳에 사실을 보관하세요.

자주 묻는 질문

Amp가 기존의 CLAUDE.md를 읽을 수 있나요?

네, 하지만 조건부입니다. "디렉토리에 AGENTS.md가 존재하지 않지만, AGENT.md(S가 없는) 또는 CLAUDE.md라는 이름의 파일이 존재한다면 해당 파일이 포함됩니다." 이는 디렉토리별 폴백이므로, 해당 디렉토리에 AGENTS.md가 나타나는 순간 기존 CLAUDE.md는 더 이상 읽히지 않습니다.

Amp에 Claude Code의 자동 메모리 같은 기능이 있나요?

문서화된 기능은 없습니다. Amp의 문서화된 지속성은 사용자가 작성하는 AGENTS.md 파일과 스레드뿐입니다. Claude Code의 자동 메모리는 네 가지 유형에 걸쳐 ~/.claude/projects/<project>/memory/에 자체 노트를 작성하고 매 세션마다 "첫 200줄 또는 25KB"를 로드하지만, Amp에는 이를 수신할 수 있는 문서화된 기능이 없습니다.

경로 스코프 규칙은 어떻게 변환하나요?

.claude/rules/ 파일 중 paths 필드가 있는 파일은 프론트매터에 globs 목록이 포함된, AGENTS.md에서 @ 언급하는 파일이 됩니다. Amp는 "Amp가 glob 중 하나라도 일치하는 파일을 읽은 경우"에만 이를 포함하므로, 에이전트의 실제 읽기 동작에 따라 제한됩니다.

사용자 레벨의 CLAUDE.md는 어디로 가나요?

$HOME/.config/amp/AGENTS.md(또는 $HOME/.config/AGENTS.md)로 이동합니다. Amp는 이 파일들이 존재할 때 항상 포함합니다. 단, 이는 모든 작업에 걸쳐 적용되므로 진정으로 프로젝트에 특화된 내용은 다른 곳에 보관해야 합니다.

스레드가 유실되는 메모리를 대체할 수 있나요?

사실(facts)을 대체할 수는 없습니다. 스레드는 작업의 연속성(웹, CLI, 앱에서 열 수 있는 하나의 URL)에는 매우 훌륭하며, Amp는 작업당 하나의 스레드를 사용할 것을 권장합니다. 핸드오프는 "중요한 컨텍스트만 가지고 새 스레드를 시작"하는데, 이는 영구적인 기록이라기보다는 관련성에 대한 판단에 가깝습니다.

Amp가 실제로 무엇을 로드하고 있는지 어떻게 확인하나요?

커맨드 팔레트에서 agents-md list를 선택하세요. 하위 트리 파일과 glob 제한 파일은 트리거가 실행된 후에만 나타나므로, 여러 디렉토리에서 그리고 에이전트가 다른 파일 형식을 읽은 후에 실행해 보세요. 이는 what coding agents actually read에서 설명하는 일반적인 습관입니다.