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

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

ChatGPT를 1년 동안 사용해 오다가 그 작업을 Cline으로 옮기려는 중이라면, 두 시스템이 지식을 저장하는 방식이 거의 정반대라는 사실을 곧 깨닫게 될 것입니다.

ChatGPT의 메모리는 일종의 종합(synthesis)입니다. OpenAI는 이를 "이전 대화의 컨텍스트를 지속적으로 업데이트하여 종합한 것"이라고 설명하며, 자체 문서에서도 사용자가 읽을 수 있는 요약본에 "ChatGPT가 대화를 바탕으로 기억하는 모든 내용이 포함되지는 않는다"고 솔직하게 밝히고 있습니다. ChatGPT가 특정 사실을 알고 있는지 확인하는 권장 방법은 직접 물어보는 것입니다: "ChatGPT가 무언가를 기억하고 있는지 알고 싶다면 대화창에서 그냥 물어보세요."

Cline은 그 반대입니다. Cline이 아는 모든 것은 사용자가 작성한 파일입니다. 문서에 따르면 "Cline은 `.clinerules/` 내부의 모든 `.md` 및 `.txt` 파일을 처리하여 하나의 통합된 규칙 세트로 결합합니다"라고 설명하며, 이번 마이그레이션의 방향을 결정짓는 중요한 문장인 "프런트매터(frontmatter)가 없는 규칙은 항상 활성화됩니다"를 덧붙입니다.

따라서 이번 마이그레이션은 완전히 열거할 수 없는 대상과 오직 열거된 것만 존재하는 대상 간의 변환 작업입니다. 부주의하게 붙여넣으면 사소한 선호도 설정 하나하나가 모든 작업에서 영구적인 컨텍스트가 되어 버립니다. 이 글에서는 실제로 무엇이 이전되는지, 요약본이 불완전한 상황에서 메모리를 어떻게 추출하는지, 그리고 각 정보를 Cline 측의 적절한 위치(많은 이들이 예상하는 것보다 더 적합한 목적지인 Memory Bank 포함)에 어떻게 배치하는지 단계별로 살펴보겠습니다.

실제로 이전되는 것

메모리 자체: 수동으로 직접 요청해야 합니다. ChatGPT 메모리를 다른 도구의 형식으로 내보내는 기능은 없습니다. OpenAI의 가이드에 따르면, 대화창에서 직접 물어보는 것이 유일한 방법입니다. 이는 임시방편이 아니라 공식 문서에 명시된 확인 방법입니다. 메모리 요약본은 명백히 불완전하기 때문입니다. 클릭 한 번이 아니라, 추출을 위한 세션을 한 번 따로 잡으세요.

선호도 및 작업 스타일: 원활하게 이전됩니다. 답변 구조를 어떻게 구성하고 싶은지, 어떤 규칙을 고수하는지, 항상 확인해야 할 사항이 무엇인지 등이 여기에 해당합니다. 이들은 Cline 규칙에 깔끔하게 매핑되며, 1년이 지난 후에도 여전히 유효할 가능성이 가장 높은 항목들입니다.

프로젝트 팩트: 최신 상태인지 확인 후 이전합니다. 기술 스택, 아키텍처 결정, 명명 규칙, 환경의 특이사항 등입니다. ChatGPT 메모리는 사용자가 작업하는 동안 이를 조용히 업데이트해 왔지만, 일부 항목은 사용자가 미처 알아차리지 못한 사이에 오래된 정보가 되었을 수 있습니다. 이 부분은 단순히 복사할 것이 아니라 꼼꼼히 읽어보아야 할 더미입니다.

기존에 저장된 메모리: 보유 여부를 확인하세요. 구형 시스템을 사용 중인 경우, OpenAI는 Settings > Memory > "saved memories" 아래에 별도의 목록을 제공하며, "삭제하지 않는 한 저장된 메모리는 향후 답변에 항상 고려됩니다"라는 노트를 명시하고 있습니다. 이 목록은 종합본과 달리 하나씩 열거할 수 있으므로 가장 먼저 옮기기에 가장 쉽습니다.

전혀 이전되지 않는 것. Temporary Chats(임시 채팅)는 메모리에 아무런 기여를 하지 않습니다. OpenAI 문서에 따르면 이들은 "기존 메모리를 사용하지 않으며 새로운 메모리를 생성하지도 않습니다." 동료의 ChatGPT가 알고 있는 정보는 동료에게만 남습니다. 메모리는 "각 개인 계정에 종속되며, 동일한 Business 워크스페이스 내에서도 다른 사용자에게 이전할 수 없습니다." 또한 업로드된 파일은 메모리가 아닙니다. 파일 콘텐츠는 대화 내에 존재하므로, 지식을 옮기려면 파일 자체를 옮겨야 합니다. 이 한계에 부딪혀 본 적이 있다면, ChatGPT가 업로드된 파일을 잊어버리는 이유에서 다룬 내용과 동일한 문제입니다.

받는 쪽에서, Cline은 하나가 아닌 두 개의 보금자리를 가지고 있습니다. 규칙은 워크스페이스 범위를 위해 .clinerules/에 저장되고, 개인 선호도를 위해 글로벌 Cline Rules 디렉토리에 저장됩니다. 문서에서는 이들이 어떻게 결합되는지 구체적으로 설명합니다: "워크스페이스 규칙과 글로벌 규칙이 모두 존재할 때, Cline은 이들을 결합합니다. 충돌이 발생하면 워크스페이스 규칙이 글로벌 규칙보다 우선합니다." 이와 별개로, Memory Bank는 문서화된 방법론입니다. 이는 Cline이 모든 작업을 시작할 때 읽도록 지시받는 마크다운 파일 세트로, 문서에서는 솔루션 제공업체의 문서치고는 이례적으로 솔직한 1인칭 문장으로 설명되어 있습니다: "나는 Cline이며, 독특한 특징을 가진 전문 소프트웨어 엔지니어입니다. 나의 메모리는 세션 사이에 완전히 초기화됩니다."

이 문장이 전체 설계의 핵심입니다. Cline은 상태(state)를 유지하는 척하지 않고, 문서화 규율을 통해 이를 보완합니다. 여러분의 마이그레이션은 ChatGPT 지식 중 어떤 부분을 이 규율에 포함시킬지 결정하는 과정입니다.

수동 마이그레이션

Step 1: 요약본이 불완전함을 인지하고 메모리 추출하기

설계상 기존 메모리를 사용하지 않는 Temporary Chat이 아닌, 일반 ChatGPT 대화를 열고 나와 내 작업에 대해 알고 있는 내용을 직접 적어달라고 요청하세요. 그런 다음 다양한 각도에서 다시 질문하세요. 종합된 정보에는 인덱스가 없기 때문입니다. 코딩 스타일에 대해 알고 있는 것, 특정 프로젝트에 대해 알고 있는 것, 하지 말라고 지시했던 것 등을 차례로 물어보세요. 프레임을 바꿀 때마다 서로 다른 항목들이 수면 위로 드러납니다.

두 가지 방법을 쓰면 이 과정이 덜 고통스럽습니다. 첫째, 구형 시스템을 사용 중이라면 질문을 시작하기 전에 Settings > Memory 아래의 열거 가능한 목록부터 확인하세요. 작업의 뼈대를 잡는 데 도움이 됩니다. 둘째, 메모리 요약이 예상보다 비어 보인다면, OpenAI가 제공하는 새로고침 경로(Settings > Personalization > Memory Summary로 이동한 다음 Manage를 누르고 삼점 메뉴에서 Refresh 선택)를 사용해 보세요. 물론 여전히 요약이 완벽히 망라되지는 않을 것입니다. 일반적인 문제 해결 사례는 ChatGPT 메모리가 작동하지 않을 때 대처법에서 다루고 있습니다.

결과를 하나의 임시 파일(scratch file)에 붙여넣으세요. 아직 정리하지 마세요. 분류는 Step 2에서 진행하며, 추출하면서 동시에 분류하려고 하면 작업을 조기에 중단하게 됩니다.

Step 2: 하나의 목적지가 아닌 세 개의 목적지로 분류하기

대부분의 마이그레이션이 실패하는 지점이 바로 여기입니다. 임시 파일을 그대로 .clinerules/에 쏟아붓는 뻔한 선택은 문서에 명시된 특정 결과를 초래하기 때문입니다. Cline은 해당 디렉토리의 모든 내용을 하나의 통합 규칙 세트로 결합하며, "프런트매터가 없는 규칙은 항상 활성화됩니다." 붙여넣은 메모리 덤프는 실행하는 모든 작업에서 영구적인 컨텍스트가 되어, 모델의 주의력과 토큰 예산을 실제 작업과 나누어 쓰게 만듭니다.

대신 세 개의 더미로 분류하세요.

항상 활성화되는 규칙 (Always-active rules). 이 리포지토리의 모든 작업에 적용되어야 하는 소수의 규칙 세트입니다. 언어 및 프레임워크 컨벤션, 사용할 명령어, 엄격한 금지 사항 등이 이에 해당합니다. 이들은 의도적으로 프런트매터 없이 .clinerules/ 파일에 들어갑니다. 이 더미는 철저하게 짧게 유지해야 합니다. 모든 단일 작업마다 비용을 지불하기로 선택하는 부분이기 때문입니다.

범위가 지정된 규칙 (Scoped rules). 코드베이스의 일부에만 적용되는 내용입니다. Cline의 조건부 규칙은 glob 패턴이 포함된 YAML 프런트매터를 사용하며, Cline은 사용자가 실제로 작업 중인 대상(열려 있는 파일, 보이는 탭, 언급된 경로, 편집 중인 파일 등)과 비교하여 일치하는 규칙을 활성화합니다. ChatGPT 메모리에서 가져온 대부분의 "프로젝트 팩트"는 항상 활성화되는 더미가 아니라 여기에 속해야 합니다. 이 정보들은 결코 보편적인 것이 아니라 API 레이어, 마이그레이션, 또는 프론트엔드에 관한 것이었기 때문입니다.

Memory Bank. 규칙이 아니라 지속적으로 성장하고 변화하는 지식입니다. Cline의 Memory Bank는 각기 다른 역할을 하는 6개의 파일을 정의합니다: 핵심 요구사항과 목표를 위한 projectbrief.md, 프로젝트의 존재 이유와 UX 목표를 위한 productContext.md, 현재 집중하고 있는 사항과 다음 단계를 위한 activeContext.md, 아키텍처 및 디자인 패턴을 위한 systemPatterns.md, 기술 스택, 설정 및 제약 조건을 위한 techContext.md, 그리고 작동하는 부분, 남은 부분, 알려진 문제를 위한 progress.md입니다.

임시 파일의 내용과 이 6가지 설명을 대조해 보면 분류는 대부분 저절로 이루어집니다. "우리는 npm이 아니라 항상 pnpm을 사용한다"는 규칙입니다. "감사인이 상태를 재생해야 하므로 원장(ledger)에 이벤트 소싱을 선택했다"는 systemPatterns.md에 들어갑니다. "스테이징 데이터베이스는 매일 밤 초기화된다"는 techContext.md에 속합니다. "결제 리팩토링 작업이 진행 중이다"는 activeContext.md에 들어가며, 이는 6주 후에 틀린 정보가 될 가능성이 가장 높은 항목이기도 합니다. 이것이 바로 이 항목이 자신만의 파일을 가져야 하는 이유입니다.

Memory Bank를 도입하기 전에 알아두어야 할 솔직한 두 가지 사항이 있습니다. 이는 런타임 기능이 아니라 사용자가 직접 설치하는 컨벤션입니다. 문서에서는 .clinerules/memory-bank.md와 같은 Cline Rules 파일에 커스텀 지침을 넣은 다음, Cline에게 Memory Bank를 초기화하도록 요청하여 설정하는 방법을 설명합니다. 또한 Cline은 모든 작업의 시작 부분에서 이 모든 파일을 읽도록 지시받기 때문에, 읽기 작업에 컨텍스트 비용이 발생합니다. 문서 자체에서도 컨텍스트 창 제한으로 인해 주기적으로 파일을 업데이트하고 새 대화를 시작하여 재개해야 할 수 있다고 언급하고 있습니다. 지속적인 유지 관리 비용이 따르지만 훌륭한 시스템이며, 1년 동안 쌓인 컨텍스트를 옮기기 전에 이를 인지하는 것이 중요합니다. 실제 설정 비교는 Cline을 위한 최적의 메모리 설정에서 확인할 수 있습니다.

더 나은 방법: 어시스턴트에 종속되지 않는 단일 메모리 레이어

여기서 짚고 넘어가야 할 점이 있습니다. 여러분은 방금 원래 여러분의 것이었던 지식을 회복하기 위해 한 어시스턴트를 심문하는 데 세션을 보냈고, 이제 이를 다른 어시스턴트만 읽을 수 있는 형식으로 넘겨주려 하고 있습니다. 이 작업을 두 번 더 반복하면 서로 어긋나는 세 개의 개별 사본을 갖게 될 것입니다.

MemoryLake가 대안이 될 수 있습니다. 프로젝트의 영구적인 지식을 하나의 레이어에 보관하고, 각 어시스턴트가 이를 읽어가도록 하는 것입니다. Cline의 규칙은 매 작업마다 컨텍스트에 있어야 하는 좁은 범위의 고유한 역할만 계속 수행하고, 축적된 지식 본체는 도구별로 중복 생성되지 않습니다. 설정은 세 단계로 진행됩니다.

Step 1: API 키 생성

MemoryLake에 로그인하고 API 키를 생성합니다. 연결하는 모든 도구에서 하나의 자격 증명을 사용하므로, 이번 마이그레이션 이후에도 영구적으로 유지되는 특성을 갖게 됩니다.

ChatGPT 메모리를 Cline으로 마이그레이션하기 위한 MemoryLake API 키 생성
ChatGPT 메모리를 Cline으로 마이그레이션하기 위한 MemoryLake API 키 생성

Step 2: 첫 번째 메모리 업로드

Step 1에서 작성한 임시 파일을 업로드합니다. 분류는 되었지만 아직 흩어지지 않은 상태의 결정 사항, 제약 조건, 컨벤션, 특히 기각된 대안들과 그 이유를 업로드하세요. 항목은 짧고 단일 주제로 유지하세요. 긴 문서보다 구체적인 항목에서 검색이 더 잘 작동하며, 짧은 항목일수록 최신 상태를 유지하기 쉽습니다.

추출된 ChatGPT 메모리를 MemoryLake 워크스페이스에 업로드
추출된 ChatGPT 메모리를 MemoryLake 워크스페이스에 업로드

Step 3: AI 및 에이전트 연결

사용하는 도구들을 연결합니다. MemoryLake는 MCP 및 API를 통해 접근할 수 있으므로, Claude Code, Codex, OpenClaw를 포함한 MCP 네이티브 에이전트들은 MCP 서버를 가리켜 연결하고, 다른 어시스턴트들은 API를 통해 동일한 메모리를 읽습니다. 결과적으로 다음에 새로운 도구를 도입하더라도 또 다른 추출 세션을 거칠 필요 없이 동일한 지식에서 시작할 수 있습니다.

Cline 및 다른 에이전트들을 하나의 공유 메모리 레이어에 연결
Cline 및 다른 에이전트들을 하나의 공유 메모리 레이어에 연결

솔직하게 밝혀둘 두 가지 한계가 있습니다. MemoryLake가 여러분의 ChatGPT 메모리를 대신 읽어주지는 않습니다. 가져올 수 있는 내보내기 기능이 없으므로, 위의 Step 1은 여러분이 한 번은 직접 수행해야 하는 실제 작업입니다. 또한 이는 강제 적용 레이어가 아닙니다. 모델이 어떤 결정을 내리든 상관없이 반드시 지켜져야 하는 사항은 규칙 파일이나 체크 항목에 두어야 하며, 이것이 바로 Cline의 항상 활성화되는 규칙이 존재하는 이유입니다.

실제 변화하는 점

항상 활성화되는 더미가 작게 유지됩니다. 영구적인 지식을 검색할 수 있게 되면, 모든 것을 규칙으로 만들고 싶은 유혹에서 벗어나게 됩니다. 이를 통해 .clinerules/가 본연의 역할을 잘 수행하도록 유지하고, 작업당 컨텍스트 비용을 낮출 수 있습니다.

추출은 한 번만 발생합니다. ChatGPT에서 메모리를 꺼내기 위해 수행했던 심문 과정은 비용이 많이 드는 단계입니다. 이를 공유 레이어에 구축해 두면 다음 어시스턴트는 반복 작업 없이 연결만 하면 됩니다.

오래된 항목이 눈에 보입니다. 열거할 수 없는 종합본은 정보가 오래되었다는 사실을 숨깁니다. 반면 명시적인 항목들로 구성된 짧은 목록은 그렇지 않습니다. 여러분도, 팀원도 쉽게 읽을 수 있습니다.

팀원들이 동일한 컨텍스트를 공유합니다. ChatGPT 메모리는 계정별로 제공되며, OpenAI에 따르면 동일한 Business 워크스페이스 내에서도 다른 사용자에게 이전할 수 없습니다. 팀이 공유해야 하는 지식은 애초에 그곳에 머무를 수 없었습니다.

Cline 고유의 강점이 더 명확해집니다. Memory Bank는 프로젝트 상태를 파악하는 데 정말 유용합니다. 하지만 1년 치 개인 선호도를 모아두는 쓰레기통으로는 적합하지 않으며, 이 둘을 분리하면 두 기능 모두 더 잘 작동합니다. 이 차이점은 Cline이 작업 기록을 잊어버리는 이유에서 확인할 수 있습니다.

이전을 위한 모범 사례

요약본에 의존하지 말고 직접 물어보세요. OpenAI는 요약본에 모든 내용이 포함되지 않는다고 명시하며 대화창에서 물어볼 것을 권장합니다. 이 말을 그대로 받아들이고 다양한 각도에서 여러 번 질문하세요.

프런트매터는 실수로가 아니라 의도적으로 추가하세요. 프런트매터가 없는 규칙은 항상 활성화됩니다. 이는 의도했을 때는 강력한 기능이지만, 의도하지 않았을 때는 비용(세금)이 됩니다.

프로젝트 상태는 Memory Bank로, 선호도는 규칙으로 이동하세요. 6개 파일 구조는 이들을 분리하기 위해 존재합니다. 이를 존중하면 파일들이 유용하게 유지되지만, 무시하면 activeContext.md는 잡동사니 서랍이 되어 버립니다.

마이그레이션하기 전에 삭제하세요. 오래된 선호도, 버려진 컨벤션, 더 이상 그렇게 작동하지 않는 모델을 위한 임시방편 등은 복사한다고 해서 나아지지 않습니다. 마이그레이션은 불필요한 정보를 정리할 수 있는 가장 비용이 적게 드는 기회입니다.

워크스페이스 규칙과 글로벌 규칙을 분리하여 유지하세요. 충돌 시 워크스페이스 규칙이 우선하므로, 팀 표준은 .clinerules/에 두고 개인적인 습관은 글로벌 디렉토리에 두세요. 이들을 섞어 쓰면 나중에 충돌 원인을 파악하기 어려워집니다.

기각된 사항은 이유와 함께 기록해 두세요. 가장 가치 있는 카테고리이자 어떤 메모리 시스템도 스스로 포착하지 못하는 부분입니다. 이유가 기록되어 있지 않으면, 새로운 에이전트는 기각된 접근 방식을 다시 한번 자신 있게 제안할 것입니다.

결론

이번 마이그레이션이 보기보다 더 많은 작업이 필요한 이유는 구조적인 차이 때문입니다. 완전히 읽을 수 없는 종합본을 사용자가 명시적으로 끄지 않는 한 항상 켜져 있는 파일 세트로 변환해야 하기 때문입니다. 분류 과정을 건너뛰면 매 작업마다 1년 치의 반쯤 유용한 선호도를 짊어지고 가는 Cline 설정을 얻게 될 뿐입니다. 하지만 제대로 분류하면 처음으로 지식을 열거할 수 있게 되므로 이전보다 더 나은 환경을 구축할 수 있습니다.

추출은 한 번만 수행하고, 항상 활성화되는 더미는 작게 유지하며, 프로젝트 상태는 Memory Bank가 원하는 곳에 두고, 영구적인 지식 본체는 Cline에 종속되지 않는 곳에 보관하세요. 그래야 다음 이동이 또 다른 심문이 아닌 단순한 연결이 될 수 있습니다. 나중에 다른 곳으로 이동할 계획이 있다면 Cline에서 Cursor로 마이그레이션하기에서 나가는 여정을 다루고 있으며, ChatGPT 메모리의 한계에서는 뒤에 남겨두고 떠나는 것들에 대해 다룹니다.

자주 묻는 질문

ChatGPT 메모리를 Cline으로 자동으로 내보낼 수 있나요?

아니요. ChatGPT 메모리를 다른 도구의 형식으로 내보내는 기능은 없으며, 메모리 요약본은 명백히 불완전합니다. OpenAI 문서에 따르면 "ChatGPT가 기억하는 모든 내용이 포함되지는 않는다"고 명시되어 있으며, 저장된 내용을 확인하려면 대화창에서 직접 물어볼 것을 권장합니다. 추출은 다운로드가 아니라 대화를 통해 이루어집니다.

추출한 메모리는 어디에 두어야 하나요?

세 곳에 나누어 둡니다. 범용 규칙은 프런트매터 없이 .clinerules/에 넣습니다. Cline은 이를 항상 활성화된 것으로 처리하기 때문입니다. 코드베이스의 일부에만 적용되는 규칙은 glob 패턴이 포함된 YAML 프런트매터를 추가하여 일치하는 파일에서 작업할 때만 활성화되도록 합니다. 아키텍처, 제약 조건, 현재 집중하고 있는 사항과 같은 프로젝트 상태는 Memory Bank의 6개 파일에 속합니다.

Cline의 Memory Bank란 정확히 무엇인가요?

규칙을 기반으로 구축된 문서화된 방법론입니다. Cline이 모든 작업을 시작할 때 읽도록 지시받는 마크다운 파일 세트(projectbrief.md, productContext.md, activeContext.md, systemPatterns.md, techContext.md, progress.md)를 말합니다. .clinerules/memory-bank.md와 같은 규칙 파일에 커스텀 지침을 넣고 Cline에게 이를 초기화하도록 요청하여 설정할 수 있습니다.

Cline은 세션 사이에 스스로 기억을 유지하나요?

문서에서는 모델이 스스로 기억하지 못한다고 명시하고 있습니다: "나의 메모리는 세션 사이에 완전히 초기화됩니다." Memory Bank는 이를 보완하는 메커니즘으로, 에이전트가 기억을 유지하는 상태(state) 방식이 아니라 에이전트가 다시 읽는 문서를 통해 영속성을 유지합니다.

ChatGPT 메모리 전체를 `.clinerules/`에 붙여넣어도 작동하나요?

로드되기는 하겠지만, 그것이 바로 문제입니다. 프런트매터가 없는 파일은 항상 활성화되므로, 붙여넣은 모든 내용이 코드베이스의 특정 부분에만 관련된 내용일지라도 모든 작업에서 영구적인 컨텍스트가 됩니다. 먼저 분류하고, 프런트매터로 범위를 지정하며, 항상 활성화되는 세트는 짧게 유지하세요.

팀원들이 가진 메모리는 어떻게 하나요?

그대로 유지됩니다. OpenAI 문서에 따르면 메모리는 각 개인 계정에 종속되며, 동일한 Business 워크스페이스 내에서도 다른 사용자에게 이전할 수 없습니다. 팀 지식은 처음부터 공유 목적지(체크인된 파일이나 공유 메모리 레이어 등)에 보관해야 하며, 한 사람의 어시스턴트에 머물러서는 안 됩니다.