AI와 며칠 이상 긴 작업을 해본 사람이라면 한 번쯤 비슷한 경험을 했을 것이다.
어제까지 충분히 논의했던 내용을 오늘 다시 설명해야 한다. 이미 검토하고 제외한 방법을 AI가 새로운 아이디어처럼 제안하기도 한다. 분명 테스트까지 마친 작업인데, 왜 그런 방식으로 구현했는지는 다시 처음부터 이야기해야 한다.
짧은 질문과 답변을 주고받을 때는 큰 문제가 아니다. 하지만 하나의 프로젝트를 오랫동안 함께 진행하기 시작하면 이야기가 달라진다.
AI는 방금 나눈 대화에는 꽤 능숙하게 반응한다. 문제는 대화가 길어지거나 새로운 세션이 시작됐을 때다. 이전 대화가 남아 있더라도 현재 작업에 필요한 부분을 정확히 골라내지 못한다. 결국 사용자는 AI가 잊어버린 내용을 계속 설명하는 사람이 된다.
처음에는 단순히 이렇게 생각했다.
AI에게 이전 대화를 더 많이 보여주면 되지 않을까?
하지만 실제로 해보면 문제는 그렇게 간단하지 않았다.
기록이 남아 있는 것과 기억하는 것은 다르다
우리가 사용하는 도구에는 이미 많은 기록이 남아 있다.
대화 내용이 있고, 작성한 문서가 있고, 변경한 파일과 작업 기록도 있다. 개발 프로젝트라면 코드 변경 이력과 테스트 결과까지 남는다. 기록이 부족한 것은 아니다.
그런데 새로운 작업을 시작할 때 정말 필요한 정보는 대화 전체가 아니다.
예를 들어 어떤 기능을 만들면서 세 가지 방법을 검토했다고 해보자. 첫 번째 방법은 간단하지만 데이터가 많아지면 느려질 수 있어서 제외했다. 두 번째 방법은 성능은 좋지만 운영이 복잡해진다는 이유로 포기했다. 결국 세 번째 방법을 선택했고, 테스트를 통해 원하는 결과를 확인했다.
시간이 지나면 최종 코드와 “세 번째 방법을 사용했다”는 결과는 남는다. 그러나 다음과 같은 맥락은 쉽게 사라진다.
* 어떤 문제를 해결하려고 했는가
* 다른 방법은 왜 선택하지 않았는가
* 당시에는 어떤 제약이 있었는가
* 무엇을 근거로 현재 방법을 선택했는가
* 결과가 괜찮다는 것을 어떻게 확인했는가
* 지금도 그 결정이 유효한가
AI가 이 맥락을 알지 못하면 이미 검토한 방법을 다시 제안할 수밖에 없다. 과거의 선택이 잘못돼서가 아니라, 그 선택에 이르는 과정이 보이지 않기 때문이다.
그래서 중요한 것은 모든 기록을 보관하는 일이 아니었다. 현재 작업에 필요한 판단의 맥락을 다시 구성하는 일이었다.
대화 전체를 다시 보여주면 해결될까
가장 단순한 방법은 과거 대화를 모두 AI에게 다시 전달하는 것이다.
기록이 짧을 때는 어느 정도 효과가 있다. 하지만 대화가 계속 쌓이면 곧 다른 문제가 생긴다.
먼저, 필요한 내용보다 필요하지 않은 내용이 훨씬 많아진다. 중간에 잘못 이해한 내용, 잠깐 검토했다가 포기한 아이디어, 이미 수정된 계획도 모두 섞여 있다.
오래된 정보와 최신 정보가 충돌할 수도 있다. 처음에는 A를 사용하기로 했지만 이후 문제가 발견돼 B로 변경했는데, 과거 대화만 보면 두 결정이 모두 존재한다. 어떤 결정이 현재 유효한지 따로 판단해야 한다.
기록의 양이 많아질수록 비용도 커진다. AI가 한 번에 읽고 처리할 수 있는 정보에는 한계가 있다. 모든 기록을 매번 전달하면 정작 지금 중요한 내용이 긴 대화 사이에 묻힐 수 있다.
무엇보다 대화에는 사실과 추측이 섞여 있다.
“테스트가 통과했다”는 검증된 결과와 “이 방법이 더 좋을 것 같다”는 예상은 같은 종류의 정보가 아니다. AI가 대화를 요약했다고 해서 그 요약이 자동으로 사실이 되는 것도 아니다.
결국 필요한 것은 더 큰 대화 창이 아니었다. 무엇이 원본 기록이고, 무엇이 확인된 사실이며, 무엇이 아직 검토 중인 판단인지 구분할 방법이 필요했다.
필요했던 것은 ‘기억 창고’가 아니었다
이 문제를 해결하기 위해 Context Memory를 만들기 시작했다.
처음에는 이름 그대로 AI가 사용할 수 있는 작은 기억 저장소를 생각했다. 작업 중 중요한 내용을 보관하고, 다음 대화에서 다시 찾아주는 정도였다.
하지만 구현을 진행할수록 단순한 메모리로는 부족하다는 사실이 분명해졌다.
“우리는 SQLite를 사용하기로 했다”는 문장 하나를 기억하는 것만으로는 충분하지 않다.
왜 SQLite를 선택했는지, 다른 데이터베이스는 왜 제외했는지, 로컬에서 간단하게 실행되어야 한다는 제약이 있었는지, 실제 테스트 결과는 어땠는지까지 연결되어야 다음 판단에 도움이 된다.
또한 결정은 영원히 고정되지 않는다.
당시에는 맞았던 선택이 상황이 바뀌면서 더 이상 적절하지 않을 수 있다. 이전 결정을 지우는 대신, 어떤 근거로 새로운 결정이 이전 결정을 대신하게 됐는지 남겨야 한다.
그래서 Context Memory가 기억해야 할 대상을 다음과 같이 보기 시작했다.
* 결정
* 결정의 이유
* 당시의 제약
* 검토했던 대안
* 확인된 결과
* 아직 해결되지 않은 질문
* 그 내용을 뒷받침하는 원본 기록
이렇게 보면 Context Memory는 과거를 그대로 보관하는 창고보다, 프로젝트의 판단 과정을 정리하는 문서에 가깝다.
나는 이를 Decision Wiki, 즉 ‘의사결정 위키’라고 부르기로 했다.
Context Memory가 하려는 일
Context Memory의 목적은 AI가 과거 대화를 전부 외우게 만드는 것이 아니다.
현재 질문과 관련된 결정이 무엇인지 찾고, 그 결정이 왜 내려졌는지 보여주며, 지금도 유효한지 판단하는 데 필요한 근거를 함께 제공하는 것이 목적이다.
예를 들어 새로운 대화를 시작하면서 다음과 같이 질문할 수 있다.
왜 이 프로젝트는 별도의 서버 데이터베이스 대신 SQLite를 사용하고 있지?
일반적인 대화 기록 검색은 SQLite라는 단어가 등장한 메시지들을 보여줄 수 있다. 하지만 Context Memory가 목표로 하는 답은 조금 다르다.
* 로컬에서 쉽게 실행되는 것이 중요한 조건이었다.
* 별도의 데이터베이스 서버를 운영하고 싶지 않았다.
* 여러 AI 도구가 같은 컴퓨터에서 하나의 데이터를 공유해야 했다.
* SQLite의 트랜잭션과 검색 기능으로 현재 요구사항을 충족할 수 있었다.
* 따라서 초기 제품에서는 SQLite를 사용하기로 결정했다.
* 원격 다중 사용자 서비스는 별도의 제품 단계로 남겨두었다.
단순히 관련 문장을 찾는 것이 아니라, 현재 결정에 필요한 맥락을 하나의 흐름으로 다시 구성하는 것이다.
특정 AI에만 묶이지 않는 기억
또 하나 중요했던 점은 기억이 특정 AI 서비스에만 속하지 않아야 한다는 것이었다.
오늘은 한 AI 도구로 아이디어를 정리하고, 내일은 다른 도구로 코드를 작성할 수 있다. 문서를 다루는 AI와 개발을 돕는 AI가 서로 다를 수도 있다.
그때마다 기억이 분리된다면 사용자는 다시 중간 전달자가 된다.
그래서 Context Memory는 특정 AI 제품의 전용 기능이 아니라, 여러 AI 클라이언트가 함께 사용할 수 있는 독립적인 도구를 지향한다. 데이터는 우선 사용자의 컴퓨터에 보관하고, 각 AI 도구는 필요할 때 같은 기억을 읽고 새로운 작업 결과를 남긴다.
여기에는 거창한 자동화보다 단순한 원칙이 먼저 있다.
작업을 시작할 때 필요한 맥락을 불러오고, 작업을 마칠 때 다음 작업에 필요한 근거를 남긴다.
AI가 바뀌더라도 이 흐름은 유지되어야 한다.
더 많이 기억하는 것보다 올바르게 기억하는 것
Context Memory를 만들면서 목표는 점점 명확해졌다.
좋은 메모리 시스템은 모든 것을 기억하는 시스템이 아니다. 지금 필요한 것을 찾을 수 있고, 그 내용이 어디서 나왔는지 확인할 수 있으며, 잘못됐거나 오래된 판단은 구분할 수 있어야 한다.
때로는 관련된 기억을 찾지 못했다고 솔직하게 말할 수도 있어야 한다. 관계없는 과거 기록을 억지로 연결하는 것보다 “확실한 근거가 없다”고 답하는 편이 안전하기 때문이다.
결국 해결하고 싶었던 문제는 AI의 기억력이 아니었다.
사람과 AI가 긴 시간 동안 함께 일할 때, 과거의 판단이 다음 판단으로 자연스럽게 이어지지 않는 문제였다. Context Memory는 그 끊어진 연결을 복원하기 위한 시도다.
이제 다음 질문이 남는다.
그렇다면 무엇을 기억으로 저장해야 할까?
모든 대화를 저장해서는 안 된다면, 어떤 내용이 오래 남을 가치가 있을까? 사실과 추측은 어떻게 구분하고, AI가 만든 요약을 어디까지 믿어야 할까?
다음 편에서는 Context Memory가 원본 기록과 정리된 기억을 왜 분리했는지, 그리고 “많이 저장하는 것”보다 “검증 가능한 형태로 저장하는 것”을 중요하게 본 이유를 이야기해보려 한다.
https://github.com/foonsoo/context-memory
'AI' 카테고리의 다른 글
| [context memory] 3. 지금 필요한 기억을 어떻게 찾을까 (0) | 2026.09.03 |
|---|---|
| [context memory] 2. 모든 것을 저장하면 정말 잘 기억할까 (0) | 2026.09.02 |