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

컨텍스트 손실 없이 Claude 메모리를 Codex로 마이그레이션하는 방법 (2026)

몇 달 동안 Claude와 함께 작업해 오셨을 것입니다. Claude는 여러분의 기술 스택, 코드 리뷰 기준, 영국식 철자를 고집하는 고객, 지난 3월에 실패했던 마이그레이션까지 모두 기억하고 있습니다. 이제 개발 작업을 Codex로 전환하려는데, 한 가지 이상한 점을 발견하게 됩니다. Codex는 단 한 번의 명령으로 Claude Code 설정 전체를 가져오는 임포터(importer)를 제공하지만, 정작 여러분이 정말로 가져오고 싶어 하는 데이터는 거부한다는 사실입니다.

결론부터 말씀드리면, Codex의 `/import` 기능은 Claude Code만 지원하며 Claude 앱은 지원하지 않습니다. 공식 문서에도 "표준 Claude Chat 데이터는 가져올 수 없습니다"라고 명시되어 있습니다. 따라서 Claude가 여러분에 대해 쌓아온 대화형 메모리는 마이그레이션할 수 있는 경로가 없으며, Claude 자체에도 이를 위한 구조화된 내보내기 기능이 없습니다. 여러분이 할 수 있는 방법은 이 메모리를 수동으로 한 번 추출하여, 기존보다 더 나은 형태로 정리한 뒤 두 도구 모두 읽을 수 있는 곳에 두는 것입니다.

이 글에서는 실제로 마이그레이션이 가능한 데이터가 무엇인지, 수동 작업을 올바르게 수행하는 방법은 무엇인지, 그리고 다음번에 도구를 바꿀 때 이 과정을 반복하지 않는 방법을 다룹니다.

실제로 마이그레이션되는 것

Claude Code 설정은 통째로 마이그레이션됩니다. 지식이 리포지토리에 있는 경우(CLAUDE.md, MCP 서버, 명령어, 서브에이전트, 스킬, 설정 등), Codex는 이를 위한 실제 임포터를 제공합니다. 공식 문서에 따르면 지침 파일, config.tomlsettings.json, 스킬 및 플러그인, MCP 서버 구성, 프로젝트 폴더 및 메모리, 훅 및 슬래시 명령, 서브에이전트, 그리고 최근 30일간의 채팅 내역을 그대로 가져올 수 있습니다. 이는 임시방편이 아니라 공식적으로 지원되는 경로이며, moving a Claude Code setup to Codex 가이드에서 별도로 다루고 있습니다.

Claude 앱 메모리는 마이그레이션되지 않습니다. 이 비대칭성에 주목해야 합니다. 경쟁 CLI의 전체 구성은 통째로 가져오는 임포터가 동일한 벤더의 소비자용 제품에 대해서는 선을 긋습니다. "표준 Claude Chat 데이터는 가져올 수 없습니다." 공식 문서에는 ChatGPT 데이터도 가져올 수 없다고 명시되어 있습니다. 이 임포터는 채팅 기록이 아닌 개발자 설정을 위한 것이며, 아무리 다시 시도해도 이 사실은 변하지 않습니다.

Claude 메모리에는 다운로드 버튼이 없습니다. Claude 앱의 설정(Settings)에서 메모리를 카테고리별로 확인하고 항목별로 편집할 수 있으며, 이는 불필요한 정보를 삭제하기에 매우 훌륭한 제어 화면입니다. 하지만 이를 파일로 내보낼 수는 없습니다. 현실적인 대안은 Claude에게 대화 중에 자신에 대한 기억을 그대로 텍스트로 작성해 달라고 요청한 다음, 그 출력을 직접 복사하는 것입니다. Claude 자체의 메모리 가져오기(Memory Import) 기능의 방향성도 주목해 보세요. 이 기능은 다른 어시스턴트로부터 Claude 내부로 메모리를 가져오는 기능이며 실험적(experimental) 단계로 표시되어 있습니다. 외부로 내보내는 기능은 존재하지 않습니다.

반대편에서 Codex가 준비해 둔 기능은 실재하지만, 기본적으로 꺼져 있습니다. Codex 메모리는 존재합니다. 공식 문서의 표현을 빌리자면, ~/.codex/memories/ 경로에 "이전 채팅의 요약, 영구 항목, 최근 입력 및 지원 증거"를 저장합니다. 또한 이 기능은 기본적으로 비활성화되어 있으며, 설정의 개인화(Personalization) 탭에서 활성화하거나 구성 파일에 [features] memories = true를 추가하여 켤 수 있습니다. 마이그레이션 시 세 가지 특징을 유의해야 합니다. 이 메모리는 사용자가 직접 작성하는 것이 아니라 Codex가 생성하는 상태(공식 문서에서는 이를 직접 편집하기보다는 검토용으로 설계된 '생성된 상태'라고 부름)이며, 프로젝트 단위가 아닌 글로벌 단위로 작동하고, 해당 로컬 머신에 저장됩니다. Codex 클라이언트는 자체 로컬 메모리 저장소를 유지하며, 웹상의 ChatGPT는 별도의 저장소를 유지합니다.

양쪽 모두에 존재하지 않는 것은 바로 '지속 가능한(durable)' 데이터입니다. Claude의 메모리는 대화의 종합본입니다. Codex의 메모리는 Codex와의 채팅 종합본입니다. 둘 다 사용자가 직접 작성한 기록이 아닙니다. 그렇기 때문에 한 종합본을 다른 종합본으로 단순히 복사하는 방식의 마이그레이션은 올바른 형태가 아닙니다. 아래에서 설명할 수동 마이그레이션 과정을 단순한 '이전'이 아닌 '업그레이드'의 기회로 삼아야 하는 이유가 바로 여기에 있습니다.

수동 마이그레이션 단계

1단계: Claude 메모리 추출 및 두 가지 유형으로 분류하기

Claude의 설정을 열고 카테고리별로 저장된 정보를 읽어보세요. 그런 다음 대화창에서 Claude에게 업무 관련 기억을 포함하여 자신에 대해 기억하고 있는 내용을 그대로 작성해 달라고 요청하세요. 그 출력을 임시 파일에 복사합니다.

이제 이 마이그레이션의 가치를 결정하는 가장 중요한 작업을 수행합니다. 목록을 훑어보며 각 항목을 다음 두 가지 범주 중 하나로 분류하세요.

선호도(Preferences). 말투, 서식, 언어, 원하는 설명의 깊이, 선호하는 프레임워크 등입니다. 이들은 짧고 다시 설명하기 쉬우며 대체로 일회성입니다. 어떤 어시스턴트를 사용하든 평소처럼 일주일 정도 대화하면 대부분 자연스럽게 다시 생성됩니다.

제약 조건 및 컨텍스트(Constraints and context). 계약 조건 때문에 영국식 철자를 사용해야 하는 고객, 마이그레이션 순서 문제로 두 차례 장애가 발생하여 데이터베이스를 공유하면 안 되는 서비스, 특정 이유로 존재하는 네이밍 규칙 등입니다. 이러한 항목들은 Claude가 저장한 버전에서 실제 맥락이 생략된 압축된 형태일 가능성이 높습니다. 메모리 시스템은 대개 결론만 남기고 그 이유는 버리기 때문입니다.

두 번째 범주에 속하는 모든 항목에 대해 그 '이유'를 다시 작성해 넣으세요. Claude가 "서비스 소유 데이터베이스 선호"라고 저장했다면, 이를 "서비스는 자체 쓰기 경로를 소유함 - 지난 3월 스키마 공유 마이그레이션으로 인해 두 차례 장애가 발생했으며, 스키마 소유자가 모든 배포를 통제할 수 없음"과 같이 작성하세요. 이 문장이 진짜 자산입니다. 또한 애초에 저장된 적이 없기 때문에 그 어떤 내보내기 도구도 만들어낼 수 없는 정보입니다.

이 분류 작업을 통해 절약되는 리소스를 확인해 보세요. 수백 개의 메모리 항목을 마이그레이션하는 것이 아닙니다. 이유가 담긴 8~10개의 핵심 항목만 마이그레이션하고, 나머지는 의도적으로 버리는 것입니다.

2단계: Codex가 실제로 참조하는 위치에 각 파일 배치하기

Codex는 AGENTS.md 파일을 읽으며, 그 우선순위는 문서에 다음과 같이 정의되어 있습니다: ~/.codex/AGENTS.md (또는 $CODEX_HOME), 리포지토리 루트, 중간 디렉터리, 그리고 현재 작업 디렉터리 순으로 위에서 아래로 병합되며 가장 가까운 파일이 우선권을 가집니다. Codex는 CLAUDE.md를 읽지 않으며, ChatGPT의 맞춤형 지침(custom instructions)도 읽지 않습니다.

이 계층 구조가 바로 여러분의 파일 정리 시스템입니다.

  • 모든 곳에 적용되는 개인 선호도는 ~/.codex/AGENTS.md에 작성합니다. 이 파일은 모든 프로젝트를 열 때마다 로드되므로 짧게 유지하세요.
  • 프로젝트 제약 조건은 해당 리포지토리의 루트에 있는 AGENTS.md에 작성하고 커밋하여 팀원들도 함께 공유할 수 있도록 합니다.
  • 코드베이스의 일부에만 적용되는 제약 조건은 해당 하위 디렉터리 내부의 AGENTS.md에 작성합니다. 이렇게 하면 모델이 알아서 조건을 감지하기를 바라는 대신, 위치를 통해 범위를 명확히 제한할 수 있습니다.
  • 공유 리포지토리에 포함되어서는 안 되는 고객 전용 규칙은 개인 파일에 보관하거나, 리포지토리 외부에 문서를 보관하다가 필요할 때 붙여넣어 사용합니다.

그다음 Codex 메모리 사용 여부를 별도로 결정하세요. 메모리를 켜두는 것은 합리적입니다. 여러분이 직접 관리하지 않아도 Claude가 구축했던 것과 유사한 선호도 레이어가 자연스럽게 쌓일 것입니다. 다만 여러분이 얻게 되는 것이 무엇인지 명확히 인지해야 합니다. 이는 생성된 상태이며, 프로젝트 단위가 아닌 글로벌 단위로 작동하고, 단일 머신에 저장되며, 수명이 짧은 세션에서는 생략되고, 속도 제한 여유가 부족할 때는 일시 중지됩니다. 이는 편의를 위한 레이어일 뿐, 지난 3월의 장애 기록과 같은 중요한 정보를 보관할 곳이 아닙니다.

임시 파일이 열려 있는 동안 한 가지 더 해볼 만한 작업이 있습니다. 시스템에 대한 사실처럼 보이고 개인의 선호도가 아닌 내용은 어시스턴트의 메모리가 아니라 리포지토리의 문서로 남겨두는 것이 좋습니다. 버전 관리 시스템의 의사 결정 기록은 검토가 가능하지만, 메모리 항목은 그렇지 않기 때문입니다.

더 나은 방법: 두 어시스턴트 모두에서 공유하는 단일 메모리 레이어

수동 마이그레이션을 한 번 거치고 나면 여러분이 방금 무엇을 했는지 깨닫게 될 것입니다. 특정 벤더가 대화 내용을 종합해 둔 데이터를 이유가 첨부된 명문화된 지식으로 변환한 것입니다. 이는 분명한 업그레이드입니다. 문제는 이 정보가 저장된 위치입니다. 절반은 Codex만 읽는 AGENTS.md 파일에 있고, 나머지 절반은 임시 파일에 있으며, 글쓰기와 생각 정리용으로 여전히 사용 중인 Claude 앱에서는 전혀 보이지 않습니다.

대안은 지속 가능한 자료를 양쪽 도구 모두 읽을 수 있는 단일 저장소에 보관하고, 각 도구의 내장 메모리는 본연의 역할에 맞게 일회성 편의 레이어로 활용하는 것입니다.

MemoryLake는 이를 위한 메모리 레이어입니다. 제약 조건, 의사 결정, 소스 문서를 한곳에 보관하고, Claude 및 Codex와 같은 MCP 지원 도구에서 직접 읽을 수 있으며, API를 통해 ChatGPT에서도 읽을 수 있습니다. 도구를 마이그레이션한다고 해서 지식까지 마이그레이션할 필요가 없어집니다.

1단계: API 키 생성하기

키를 생성하고 약 30초 만에 첫 번째 요청을 보내보세요. 키를 채팅 창에 붙여넣지 말고 환경 변수나 보안 관리 도구에 보관하세요.

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

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

방금 작성한 제약 조건의 배경이 되는 문서, 이미지, 파일을 업로드하세요. 데이터베이스 규칙을 유발한 장애 보고서, 고객의 스타일 가이드, 아키텍처 의사 결정 기록(ADR), 사양서 등이 이에 해당합니다. 요약본 대신 원본 소스를 업로드하세요. 우리가 마이그레이션을 통해 해결하려는 근본적인 문제는 요약만 남기고 이유는 버리는 시스템의 한계이기 때문입니다.

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

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

Claude, Codex, OpenClaw 및 기타 AI 에이전트가 MCP 또는 API를 통해 메모리에 액세스할 수 있도록 설정하세요. Codex와 Claude는 모두 MCP를 지원하므로 동일한 저장소를 직접 읽을 수 있습니다. ChatGPT의 경우, API를 통해 필요한 정보를 검색하여 프롬프트, 맞춤형 GPT의 지침 또는 모델을 호출하는 워크플로우에 주입할 수 있습니다.

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

실제 업무에서 달라지는 점

첫 번째 차이점은 다음번에 도구를 바꿀 때 과거의 흔적을 찾아 헤매는 대신 반나절 정도의 설정만으로 끝낼 수 있다는 점입니다. 지식이 이미 명확하게 존재할 때 AGENTS.md 파일을 작성하는 것은 간단하지만, 요약된 문장으로부터 원래의 이유를 재구성해야 할 때는 많은 비용이 듭니다.

두 번째는 Claude와 Codex가 프로젝트에 대해 서로 다른 정보를 가지는 현상이 사라진다는 점입니다. 현재는 설계를 돕는 어시스턴트와 코드를 작성하는 CLI가 서로 다른 대화로부터 개별적으로 학습하여 정보의 격차가 발생합니다. 동일한 제약 조건을 공유하는 것은 프로젝트 컨텍스트 없이 작동하는 어시스턴트 문제를 도구마다 반복해서 해결해야 하는 번거로움을 방지하는 열쇠입니다.

세 번째는 '이유'가 보존된다는 점입니다. 이는 메모리 마이그레이션 시 데이터 손실이 느껴지게 만드는 결정적인 요인입니다. 아키텍처 의사 결정이 단순한 선호도로 압축되면 쉽게 무시되고 덮어씌워집니다. 하지만 장애 이력이 첨부된 저장 문서는 무시되지 않습니다.

또한 각 도구가 기본적으로 제공하는 기능과도 조화를 이룹니다. Codex 메모리는 로컬에서 사용자의 습관을 계속 학습하고, Claude는 사용자가 선호하는 대화 방식을 계속 기억합니다. 어느 쪽도 가장 취약한 역할인 '최종 기록 시스템(system of record)' 역할을 맡을 필요가 없어집니다.

어시스턴트 간 메모리 이동을 위한 모범 사례

항목이 아닌 '이유'를 마이그레이션하세요

수백 개의 메모리 항목이 존재한다는 이유만으로 모두 옮기고 싶은 유혹이 생길 수 있습니다. 하지만 대부분은 다시 생성할 수 있는 선호도에 불과합니다. 진짜 가치 있는 소수는 '왜냐하면'이라는 이유가 포함된 항목들이며, 기존에 저장된 버전에는 이 이유가 누락되어 있을 가능성이 높습니다. 이러한 항목들을 다시 작성하고 나머지는 과감히 버리세요.

항상 로드되는 파일은 작게 유지하세요

~/.codex/AGENTS.md는 머신의 모든 프로젝트에 로드되며, 루트 AGENTS.md는 리포지토리 전체에 로드됩니다. 파일이 너무 길어지면 모델의 주의력이 분산되고 규칙 준수율만 떨어집니다. 엄격한 제약 조건만 여기에 작성하고, 나머지는 검색(retrieval)에 맡기거나 하위 디렉터리의 범위가 제한된 파일에 위임하세요.

형용사가 아닌 '위치'로 범위를 표현하세요

Codex는 디렉터리별로 지침을 해석합니다. 결제 서비스에만 적용되는 규칙은 루트 파일에 "결제 서비스 전용"이라는 접두사를 붙여 작성하는 대신 billing/AGENTS.md에 두어야 합니다. 위치는 강제되지만, 수식어는 모델이 알아차려 주기를 바라는 희망 사항에 불과합니다.

생성된 메모리에 대해 신중하게 결정하세요

Codex 메모리가 기본적으로 꺼져 있는 것은 우연이 아니며, 이를 활성화하는 것 역시 합리적인 선택입니다. 다만 이를 백업 수단으로 취급해서는 안 됩니다. 이 메모리는 머신 로컬에 저장되고, 프로젝트 단위가 아닌 글로벌 단위로 작동하며, 시스템에 의해 생성됩니다. 누적되는 내용을 주기적으로 검토하되, 손실되었을 때 곤란한 중요한 정보는 여기에만 보관하지 마세요.

구독을 해지하기 전에 내보내기를 수행하세요

Claude의 메모리는 Claude에 액세스할 수 있는 동안에만 볼 수 있습니다. 구독을 해지할 계획이라면, 수동으로 복사하는 이 한 시간이 마이그레이션에서 되돌릴 수 없는 유일한 단계입니다. 다른 모든 작업은 나중에 다시 할 수 있지만, 이 작업은 불가능합니다.

결론

Claude 메모리를 Codex로 마이그레이션하는 것은 수동 작업이며, 그 이유는 불분명한 것이 아니라 공식 문서에 명시되어 있습니다. Codex의 임포터는 Claude Code를 지원하며, "표준 Claude Chat 데이터는 가져올 수 없습니다." Claude 역시 구조화된 내보내기 기능을 제공하지 않으며, 저장된 내용을 확인할 수 있는 설정 페이지와 이를 텍스트로 작성해 달라고 요청할 수 있는 대화창만 제공할 뿐입니다.

다행인 점은 올바르게 수행하기만 한다면 이 수동 마이그레이션이 훌륭한 업그레이드가 된다는 것입니다. 선호도와 제약 조건을 분류하고, 모든 제약 조건에 이유를 다시 작성해 넣고, Codex가 실제로 참조하는 위치(디렉터리별로 범위가 지정된 AGENTS.md 계층 구조)에 파일을 배치하세요. 그리고 Codex 메모리는 기록 보관용이 아닌 편의 레이어로 활성화하여 사용하세요. 그런 다음 지속 가능한 절반의 데이터를 두 어시스턴트가 모두 읽는 단일 저장소에 보관하면, 다음번에 도구를 바꿀 때 마이그레이션해야 할 것은 오직 도구 자체뿐일 것입니다.

자주 묻는 질문

Codex가 Claude 메모리를 자동으로 가져올 수 있나요?

아니요. /import 기능은 Claude Code 설정(지침 파일, MCP 서버, 스킬, 서브에이전트, 명령어, 최근 채팅)을 위해 빌드되었으며, 공식 문서에는 표준 Claude Chat 데이터는 가져올 수 없다고 명시되어 있습니다. 소비자용 앱의 메모리를 양방향으로 자동 마이그레이션하는 경로는 존재하지 않습니다.

Claude가 저에 대해 기억하고 있는 모든 내용을 어떻게 확인할 수 있나요?

Claude의 설정을 열고 메모리 제어 화면을 확인하세요. 여기에서 항목들이 카테고리별로 나열되어 있으며 개별적으로 편집하거나 삭제할 수 있습니다. 복사 가능한 텍스트 형태로 얻으려면 대화창에서 Claude에게 자신에 대한 기억을 그대로 작성해 달라고 요청한 다음 출력을 복사하세요. 별도의 파일 다운로드 기능은 제공되지 않습니다.

Codex에도 메모리 기능이 있나요?

네, 존재하며 기본적으로 꺼져 있습니다. 설정의 개인화(Personalization) 탭에서 활성화하거나 구성 파일에 [features] memories = true를 추가하여 켤 수 있습니다. 이 기능은 ~/.codex/memories/ 경로에 이전 채팅의 요약, 영구 항목, 최근 입력 및 지원 증거를 저장합니다. 이는 사용자가 직접 작성하는 것이 아니라 시스템이 생성하는 상태이며, 프로젝트 단위가 아닌 글로벌 단위로 작동하고, 해당 머신에만 유지됩니다. 유용한 기능이지만 최종 기록 저장소로 의존하기에는 적합하지 않습니다.

Claude 메모리를 AGENTS.md에 넣어야 하나요?

제약 조건은 넣어야 합니다. 단, 그 이유를 포함하여 계층 구조의 적절한 수준에 배치해야 합니다. 선호도는 대부분 넣지 않는 것이 좋습니다. AGENTS.md는 매 세션마다 컨텍스트에 로드되므로, 스타일 관련 노트가 너무 많으면 실제로 중요한 규칙에 대한 준수율이 떨어집니다. 답변의 정답 여부에 영향을 미치는 내용이라면 파일에 포함하고, 단순히 답변을 더 마음에 들게 만드는 수준의 내용이라면 어시스턴트가 자연스럽게 다시 학습하도록 두는 것이 좋습니다.

Codex가 CLAUDE.md 파일을 읽나요?

아니요. Codex는 AGENTS.md를 읽습니다. Claude Code 리포지토리를 이동하는 경우 대개 콘텐츠는 변경 없이 그대로 전송됩니다. 지침을 다시 작성할 필요 없이 파일 이름을 바꾸고 Codex의 로드 경로에 배치하면 됩니다. Claude Code to Codex path 가이드에서 임포터가 자동으로 처리하는 작업을 포함하여 이 케이스를 자세히 다루고 있습니다.

두 도구를 모두 계속 사용하고 싶다면 어떻게 해야 하나요?

그렇다면 지식 저장소의 주도권을 어느 한쪽에만 주지 마세요. Codex는 로컬 메모리를 유지하고, Claude는 대화형 메모리를 유지하되, 중요한 제약 조건은 양쪽 모두 읽을 수 있는 단일 저장소에 두어야 합니다. 그렇지 않으면 동일한 기준에 대해 서로 다른 두 가지 버전이 유지되어 리뷰 시점에 정보 격차를 발견하게 됩니다. 이는 각 도구가 프로젝트를 개별적으로 학습하는 상황을 해결하는 방법이기도 합니다.