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

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

이번 마이그레이션에서 가장 이례적인 점은 메인 지침 파일을 전혀 변환할 필요가 없다는 것입니다.

Codex는 "작업을 시작하기 전에 AGENTS.md 파일을 읽습니다." Cursor는 AGENTS.md를 하위 디렉터리 중첩 지원과 함께 ".cursor/rules의 간단한 대안"으로 규칙 소스 목록에 포함하고 있습니다. 따라서 프로젝트를 여는 순간 레포지토리 루트의 AGENTS.md가 Cursor에서 바로 작동합니다. 이 부분은 추가 작업 없이 거저 얻는 부분이며, 여러분이 작성한 글의 대부분을 차지할 것입니다.

전송되지 않는 것은 해당 파일 주변의 메커니즘이며, Codex는 사람들이 생각하는 것보다 더 많은 메커니즘을 가지고 있습니다. 기본 파일을 가리는 override 파일, 디렉터리당 하나의 파일 규칙, ~/.codex에 있는 글로벌 스코프, GitHub 및 GitLab에 연결된 ## Code Review Rules 섹션, 그리고 전체 체인에 대한 32 KiB 제한 등이 있습니다. 이러한 개념은 Cursor 측에는 존재하지 않으며, 이 중 세 가지는 그대로 전송되었다고 가정할 경우 알아채지 못하는 사이에 동작을 변경시킵니다.

이 글에서는 무엇이 전송되고, 무엇을 수동으로 재구축해야 하며, 두 도구의 규칙 파일 모두 담아내기 어렵게 설계된 프로젝트 지식을 어디에 두어야 하는지 살펴봅니다. 이와 관련된 증상 측면은 why Codex forgets project context에서 다룹니다.

실제로 전송되는 것

기존 AGENTS.md 내용 그대로. 설정 명령, 스타일, 테스트 지침, 컨벤션 등. 형식 변경이나 추가할 frontmatter가 없습니다.

우선순위 의미 체계가 다른 중첩 디렉터리 파일. 두 도구 모두 디렉터리별 지침 파일을 지원합니다. Codex는 "루트부터 아래로 파일을 연결하여 빈 줄로 결합"하며, "현재 디렉터리에 더 가까운 파일이 결합된 프롬프트에서 나중에 나타나기 때문에 이전 지침을 재정의(override)"합니다. Cursor의 중첩된 AGENTS.md 파일은 "상위 디렉터리와 결합되며, 더 구체적인 지침이 우선순위를 갖습니다." 실질적으로는 유사합니다. 완전히 동일하지는 않습니다. Codex의 순서 효과는 위치 기반인 반면, Cursor의 효과는 명시적인 우선순위로 설명됩니다.

그 외에는 아무것도 전송되지 않으며, 구체적인 목록은 다음과 같습니다.

AGENTS.override.md에 해당하는 Cursor 기능이 없습니다. 이 부분이 가장 까다롭습니다. Codex에서는 각 디렉터리에서 AGENTS.override.md를 먼저 확인한 다음 AGENTS.md를 확인하며, "Codex는 디렉터리당 최대 하나의 파일만 포함"합니다. 따라서 두 파일이 모두 있는 디렉터리에서는 AGENTS.md무시됩니다. 이 레포지토리를 Cursor에서 열면 override 파일 이름은 아무런 의미가 없습니다. Cursor는 Codex가 의도적으로 건너뛰었던 파일인 AGENTS.md를 읽습니다. 단 한 줄도 수정하지 않았는데도 실제 적용되는 지침이 변경되는 것입니다.

글로벌 스코프가 다른 이름으로 다른 위치로 이동합니다. Codex는 CODEX_HOME이 설정되어 있지 않은 한 Codex 홈 디렉터리(~/.codex)에서 글로벌 지침을 읽으며, AGENTS.override.md가 있으면 이를 가져오고 없으면 AGENTS.md를 가져옵니다. 그리고 "Codex는 이 수준에서 비어 있지 않은 첫 번째 파일만 사용"합니다. Cursor의 이에 상응하는 기능은 User Rules로, "모든 프로젝트에 적용되는 Customize → Rules에 정의된 글로벌 기본 설정"으로 설명되며 Agent (Chat)에서 사용됩니다. 역할은 같지만 위치가 다르며, 커밋하거나 동기화할 수 있는 파일이 아니라 설정 창입니다.

## Code Review Rules 섹션이 더 이상 작동하지 않습니다. Codex에서는 해당 섹션을 제어하려는 코드와 가장 가까운 AGENTS.md에 추가하여, @codex review 또는 @codex security review로 호출되는 GitHub 풀 리퀘스트 및 GitLab 머지 리퀘스트의 Codex 코드 리뷰를 구동합니다. Cursor에는 이 섹션을 사용하는 주체가 없습니다. 이 텍스트는 여전히 일반 지침으로 읽히며, 이는 대개 무해하지만 가끔 혼란을 줄 수 있습니다.

제한 용량의 기준이 완전히 다릅니다. Codex는 "결합된 크기가 project_doc_max_bytes(기본값 32 KiB)로 정의된 제한에 도달하면 파일 추가를 중단"합니다. 이는 전체 체인에 걸친 예산입니다. Cursor의 지침은 규칙당 기준입니다. "규칙을 500줄 미만으로 유지"하고 큰 규칙은 조합 가능한 작은 규칙으로 분할하라고 권장합니다. Codex의 32 KiB 제한에 가까웠다면 붙여넣기보다는 분할하는 것이 좋습니다.

config.toml 또는 서브에이전트 정의의 모든 내용. 승인 모드, 샌드박스 설정, Codex 자체의 서브에이전트 구성은 Codex만의 개념입니다. 파일을 그대로 옮기려 하지 말고 의도를 재구축하십시오.

수동 마이그레이션

1단계: 전환하기 전에 override 파일 단일화(Flatten)하기

이 작업은 Codex가 여전히 신뢰할 수 있는 단일 소스(Source of Truth)일 때 수행해야 합니다. 그래야 알아채지 못하는 사이에 동작이 변경되는 것을 방지할 수 있습니다.

레포지토리에서 AGENTS.override.md를 찾아보십시오. override 파일과 AGENTS.md가 모두 있는 각 디렉터리에서 Codex는 override 파일만 읽어왔음을 기억하십시오. 실제로 원하는 콘텐츠를 결정하고, 이를 AGENTS.md에 병합한 다음 override 파일을 삭제하십시오. 글로벌 파일에 대해서도 동일하게 수행하십시오. ~/.codex/AGENTS.override.md가 존재한다면, 이는 ~/.codex/AGENTS.md를 완전히 가리고 있었던 것입니다.

삭제를 시작하기 전에 Codex가 무엇을 로드하고 있는지 확인할 수 있는 문서화된 방법이 있습니다. 확인하려는 디렉터리에서 다음을 실행하십시오.

codex --cd services/payments --ask-for-approval never "List the instruction sources you loaded."

문서에 따르면 예상되는 출력은 Codex가 글로벌 파일을 가장 먼저 보고하고, 레포지토리 루트의 AGENTS.md를 두 번째로, 중첩된 override 파일을 마지막으로 보고하는 것입니다. 이를 통해 가정이 아닌 실제 로드 체인을 확인할 수 있습니다.

2단계: 글로벌 레이어 재구축 및 Cursor에서 규칙 형식 선택하기

Cursor 측에서 두 가지를 결정해야 합니다.

글로벌 기본 설정 → User Rules. Customize → Rules를 열고 ~/.codex/AGENTS.md에 있던 내용을 붙여넣습니다. 모든 프로젝트에 적용되므로 진정으로 범용적인 기본 설정만 유지하십시오.

레포지토리 지침 → AGENTS.md 유지 또는 .cursor/rules로 변환. AGENTS.md를 유지하는 것은 추가 작업이 필요 없는 옵션이며 올바른 기본값입니다. 조건부 로드를 원할 때만 변환하십시오. 이것이 바로 .cursor/rules가 제공하는 기능이기 때문입니다. 즉, frontmatter를 통해 적용 시점을 결정하는 .mdc 파일입니다. Cursor의 네 가지 규칙 유형은 Always Apply(항상 적용), Apply Intelligently(지능적 적용 - "설명을 바탕으로 Agent가 관련이 있다고 판단할 때"), Apply to Specific Files(특정 파일에 적용 - "파일이 지정된 패턴과 일치할 때"), Apply Manually(수동 적용 - "채팅에서 @로 언급될 때")입니다.

변환하는 경우, Codex와는 무관한 함정에 주의하십시오. ".cursor/rules에 있는 일반 .md 파일은 description, globs, alwaysApply를 지정하는 frontmatter가 없기 때문에 규칙 시스템에서 무시됩니다. 일반 마크다운을 선호한다면 대신 AGENTS.md를 사용하십시오." .mdc로 이름을 바꾸고 frontmatter를 설정하거나, AGENTS.md를 그대로 유지하십시오.

그리고 규칙이 무엇인지에 대한 기대치를 명확히 하십시오. Cursor 자체의 설명에 따르면, "대규모 언어 모델은 완료(completion) 간에 메모리를 유지하지 않습니다. 규칙은 프롬프트 수준에서 지속적이고 재사용 가능한 컨텍스트를 제공합니다." 규칙은 요청마다 제공되는 컨텍스트이며, 이는 기존의 AGENTS.md 체인과 동일합니다. 세션 간에 이를 유지하는 메커니즘은 carrying Cursor context across sessions에서 다룹니다.

한동안 두 도구를 동시에 실행하게 될 경우 반대 방향에 대해서도 알아둘 가치가 있습니다. Codex는 다른 도구의 구성도 가져올 수 있으며, 이에 대한 내용은 what Codex can import from Cursor and Claude에서 다룹니다.

더 나은 방법: 규칙 파일에서 추론 과정을 완전히 분리하기

이제 새 도구에 동일한 지침을 적용했습니다. 하지만 6개월 동안 사용하면서 Codex 설정을 실제로 유용하게 만들었던 핵심 요소, 즉 이유에 대한 축적된 지식은 옮기지 못했습니다.

두 도구 모두 이를 잘 보관하지 못하며, 각 도구의 제한 사항을 통해 이를 보여줍니다. Codex는 기본적으로 전체 지침 체인을 32 KiB로 제한합니다. Cursor는 규칙을 500줄 미만으로 유지하고 "내용을 복사하는 대신 파일을 참조하십시오. 이렇게 하면 규칙을 짧게 유지하고 코드가 변경됨에 따라 규칙이 오래되는 것을 방지할 수 있습니다"라고 안내합니다. 이는 임의적인 제한이 아닙니다. 항상 켜져 있는 콘텐츠는 모든 요청과 함께 전송되기 때문입니다.

따라서 이미 거부했던 결정, 제약 조건, 접근 방식은 두 도구 어디에도 머무를 곳이 없습니다. 파일이 완벽하게 전송되었음에도 도구를 전환할 때 메모리가 완전히 지워진 것처럼 느껴지는 이유가 바로 이 때문입니다.

이것이 바로 MemoryLake가 보관하는 것입니다. 이번 분기에 어떤 에디터를 사용하든 상관없이 도구가 읽을 수 있는 레이어에 프로젝트의 지속 가능한 지식을 보관합니다. 설정은 세 단계로 진행됩니다.

1단계: API 키 생성

MemoryLake에 로그인하고 API 키를 생성합니다. 연결하는 도구 전반에 걸쳐 하나의 자격 증명만 사용됩니다.

Codex에서 Cursor로 마이그레이션할 때 MemoryLake API 키 생성하기
Codex에서 Cursor로 마이그레이션할 때 MemoryLake API 키 생성하기

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

각각 하나의 주장만 담은 짧은 항목들입니다. 마이그레이션 기억이 생생할 때 작성해야 할 내용들입니다.

MemoryLake에 프로젝트 결정 사항 및 환경 사실 작성하기
MemoryLake에 프로젝트 결정 사항 및 환경 사실 작성하기

결정을 강제한 제약 조건과 함께 결정 사항 기록. "부하 상태에서 읽기 복제본(read replica)이 지연되므로 마이그레이션은 추가 전용으로만 진행됩니다." 규칙은 정책을 명시할 수 있지만, 다음 주에 동일한 대안이 다시 제안되는 것을 막는 것은 오직 이 기록뿐입니다.

이 코드베이스에서 이미 거부했던 사항. 어떤 파일이나 커밋 메시지에도 존재하지 않는 범주입니다. 새로운 에디터나 에이전트는 매번 이를 다시 제안할 것입니다.

어렵게 배운 환경적 사실. CI에서만 실패하는 테스트, 문서와 다르게 동작하는 종속성, 문서에 없는 속도 제한 등.

두 번 이상 수정한 사항. Cursor의 자체 권장 사항은 Agent가 실수를 반복하는 것을 발견했을 때 규칙을 추가하는 것입니다. 수정 이유를 바로 여기에 함께 기록해 두십시오.

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

사용하는 도구를 연결합니다. MemoryLake는 MCP 및 API를 통해 액세스할 수 있으므로, Claude Code, Codex, OpenClaw를 포함한 MCP 네이티브 에이전트는 MCP 서버를 가리켜 연결하고, 다른 어시스턴트는 API를 통해 동일한 메모리를 읽습니다. 즉, 전환을 완전히 끝내지 않고도 혜택을 누릴 수 있습니다. 결정을 내리는 동안 두 도구 모두 동일한 레이어를 읽을 수 있습니다.

MCP를 통해 동일한 메모리 레이어에 Codex와 Cursor 연결하기
MCP를 통해 동일한 메모리 레이어에 Codex와 Cursor 연결하기

세 가지 솔직한 제한 사항이 있습니다. MemoryLake는 Cursor 규칙이나 AGENTS.md를 작성하지 않습니다. 이는 각 도구를 조종하는 방법이므로 직접 올바르게 설정해야 합니다. MemoryLake는 사용자나 에이전트가 작성한 내용만 보관하므로 2단계는 수동으로 진행됩니다. 또한 규칙은 강제된 구성이 아니라 컨텍스트이므로, 메모리 레이어가 규정 준수 여부를 강제하지는 않습니다.

실제 변화하는 점

전환이 '전부 아니면 전무(all-or-nothing)'가 아니게 됩니다. 두 도구 모두 동일한 외부 메모리를 읽으므로, Codex 설정을 버리지 않고도 일주일 동안 Cursor를 실행해 볼 수 있습니다.

Override 단일화는 일회성 작업이 됩니다. 한 번 병합하고 나면 다음 사람이나 11월의 자신에게 설명해야 할 가려진 파일이 더 이상 존재하지 않습니다.

새 도구에서도 규칙 파일이 짧게 유지됩니다. Codex 체인이 32 KiB에 가까워졌던 이유는 두 가지 역할을 동시에 수행하고 있었기 때문입니다. 한 번 분할하고 나면 어떤 제한 용량도 제약이 되지 않습니다.

세 번째 도구를 도입하는 비용이 거의 들지 않습니다. AGENTS.md는 대부분의 생태계에서 읽을 수 있으며, 추론 과정은 모든 MCP 네이티브 에이전트가 쿼리할 수 있는 레이어에 존재합니다.

"내 프로젝트를 모른다"에 대한 진짜 해답을 얻게 됩니다. "규칙을 더 많이 작성하라"가 아니라 "지식은 애초에 규칙에 있지 않았다"는 것입니다. 이에 대한 일반적인 사례는 why RAG isn't memory에서 다룹니다.

Codex에서 Cursor로 전환하기 위한 모범 사례

AGENTS.override.md를 먼저 단일화하십시오. Cursor는 이 파일 이름을 인식하지 못하므로, 잊어버린 override 파일이 의도치 않게 활성화되는 지침이 될 수 있습니다.

무엇이든 변경하기 전에 로드된 체인을 덤프하십시오. Codex에 로드된 지침 소스 목록을 나열하도록 요청하고, 기억에 의존하지 말고 해당 목록을 바탕으로 작업하십시오.

CODEX_HOME을 확인하십시오. 이 변수가 설정되어 있으면 글로벌 파일이 ~/.codex에 있지 않으므로 엉뚱한 파일을 마이그레이션하게 됩니다.

글로벌 기본 설정은 레포지토리가 아닌 User Rules에 넣으십시오. Cursor의 User Rules는 모든 프로젝트에 적용되며, 이는 기존에 ~/.codex/AGENTS.md가 하던 역할입니다.

조건부 로드가 필요한 경우가 아니라면 AGENTS.md를 유지하십시오. .cursor/rules로 변환하면 규칙 유형을 얻을 수 있지만, 동시에 frontmatter를 관리해야 하는 번거로움도 생깁니다.

.cursor/rules에 일반 .md 파일을 절대 남겨두지 마십시오. 이는 자동으로 무시됩니다. frontmatter가 포함된 .mdc를 사용하거나 AGENTS.md를 사용하십시오.

## Code Review Rules를 제거하거나 레이블을 다시 지정하십시오. Cursor에서는 이를 사용하는 기능이 없으므로, 표시되지 않은 지침으로 남겨두면 사용자와 에이전트 모두에게 혼란을 줄 수 있습니다.

제한에 도달하면 붙여넣기보다 분할하십시오. 두 도구 모두 하나의 긴 파일보다는 중첩되고 조합 가능한 여러 파일을 지향합니다. 이는 why Cursor forgets project rules의 배경이 되는 구조입니다.

결론

Codex에서 Cursor로의 마이그레이션은 파일 자체에 손을 댈 필요가 없는 드문 사례입니다. 두 도구 모두 AGENTS.md를 읽으므로 지침이 그대로 유지됩니다. 위험 요소는 전적으로 그 주변 요소에 있습니다. AGENTS.override.md는 Codex 전용 개념이며, Codex는 디렉터리당 최대 하나의 파일만 포함하므로 override 파일이 이제 Cursor가 읽게 될 AGENTS.md숨기고 있었던 셈입니다. 글로벌 지침은 ~/.codex에서 Cursor의 User Rules로 이동합니다. ## Code Review Rules는 더 이상 아무것에도 연결되지 않습니다. 그리고 32 KiB 내에 들어맞던 체인은 각각 500줄 미만으로 유지되어야 하는 규칙 세트가 됩니다.

override 파일을 단일화하고, 편집하기 전에 실제 지침 체인을 덤프하고, Customize → Rules에서 글로벌 레이어를 재구축하고, 조건부 로드를 특별히 원하는 경우가 아니라면 AGENTS.md를 유지하십시오. 그런 다음 결정 사항, 제약 조건, 거부된 접근 방식을 두 도구 모두 쿼리할 수 있는 곳에 두어 다음 도구 전환이 거대한 프로젝트가 아닌 단순한 선호도 선택이 되도록 하십시오.

자주 묻는 질문

Cursor가 AGENTS.md를 읽나요?

네. Cursor의 규칙 문서에는 AGENTS.md가 마크다운 형식의 에이전트 지침이자 .cursor/rules의 간단한 대안으로 나열되어 있습니다. 하위 디렉터리의 중첩된 파일은 상위 디렉터리와 결합되며, 더 구체적인 지침이 우선순위를 갖습니다.

AGENTS.override.md 파일은 어떻게 되나요?

Cursor에서는 아무것도 이 파일을 읽지 않습니다. Codex에서는 각 디렉터리에서 AGENTS.md보다 AGENTS.override.md를 먼저 확인하며 디렉터리당 최대 하나의 파일만 포함하므로, override 파일이 해당 디렉터리의 AGENTS.md를 억제하고 있었던 것입니다. 전환하기 전에 원하는 내용을 AGENTS.md에 병합하고 override 파일을 삭제하십시오. 그렇지 않으면 실제 적용되는 지침이 변경됩니다.

글로벌 Codex 지침은 어디로 가나요?

모든 프로젝트에 적용되는 Customize → Rules에 정의된 Cursor의 User Rules로 이동합니다. Codex의 글로벌 파일은 CODEX_HOME이 설정되어 있지 않은 한 Codex 홈 디렉터리(~/.codex)에 위치하며, 해당 수준에서 비어 있지 않은 첫 번째 파일만 사용합니다.

AGENTS.md.cursor/rules 파일로 변환해야 하나요?

조건부 로드를 원하는 경우에만 변환하십시오. .cursor/rules는 frontmatter를 통해 적용 시점(항상, 파일 패턴별, 에이전트 판단별, 또는 @ 언급별)을 제어하는 .mdc 파일을 사용합니다. 이것이 필요하지 않다면 AGENTS.md를 유지하는 것이 유지보수 측면에서 더 수월합니다.

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

해당 디렉터리에서 Codex를 실행하고 로드된 지침 소스 목록을 나열하도록 요청하십시오. 문서에서는 이 정확한 패턴을 제시하며, 예상되는 출력으로 글로벌 파일이 첫 번째, 레포지토리 루트 파일이 두 번째, 중첩된 override 파일이 마지막으로 표시된다고 설명합니다.

내 Codex 코드 리뷰 규칙이 여전히 작동하나요?

아니요. ## Code Review Rules 섹션은 GitHub 풀 리퀘스트 및 GitLab 머지 리퀘스트에서 Codex 코드 리뷰를 구동합니다. Cursor에는 이를 사용하는 기능이 없으므로 해당 텍스트는 일반 지침이 됩니다. 일반적인 지침으로 읽히지 않도록 이를 제거하거나 명확한 헤더 아래로 이동시키십시오.