내가 Mneme HQ를 만든 이유: AI 에이전트 아키텍처 드리프트 방지
Source: Dev.to
원본은 theovalmis.com에 처음 게재되었습니다.
AI 코딩 에이전트와 새 세션을 시작할 때마다, 그 에이전트는 모든 것을 잊어버립니다. 작은 것들—변수 이름, 문법, 마지막 오류 메시지—뿐만 아니라, 3주 전 포스트그레스를 선택한 이유, 보안 검토 후 고정한 인증 패턴, 프로덕션에서 문제를 일으켰다는 이유로 명시적으로 배제한 라이브러리까지 모두 잊어버립니다.
모델은 차가운 상태에서 시작합니다. 여러분은 다시 설명해야 합니다. 또 다시.
“AI 코딩 에이전트의 문제는 지능이 아니라 기억력입니다. 매 세션이 첫 번째 세션이죠.”
저는 Cursor, Claude Code, GPT‑4와 같은 AI 어시스턴트를 이용해 장기 프로젝트를 몇 달 동안 진행하면서 같은 패턴을 목격했습니다. 모델은 개별 작업에서는 뛰어나지만 연속성이 없습니다. 이미 해결한 제약 조건을 인식하지 못하고, 이 코드베이스가 가진 히스토리와 의도된 아키텍처 선택을 기억하지 못합니다.
이를 저는 아키텍처 드리프트라고 부르기 시작했습니다. 에이전트가 새 의존성을 제안하면—이미 충분히 평가하고 정당한 이유로 거부한 경우—당신은 이를 잡아내야 합니다(마찰·시간 손실) 혹은 놓치게 됩니다(기술 부채·불일치). 에이전트는 훈련 데이터에서 더 자주 보던 데이터베이스 어댑터를 제안하고, 6개월 전 명시적으로 포기한 패턴으로 모듈을 리팩터링하기도 합니다.
이 모든 것이 모델의 잘못은 아닙니다. 이러한 시스템은 여러분의 의사결정 히스토리에 접근할 수 없으며, 여러분이 알고 있는 것을 알 수 없습니다. 눈앞에 있는 코드만 볼 뿐, 그 코드를 만들게 된 대화는 보지 못합니다.
표준적인 조언은 다음과 같습니다. 모든 것을 시스템 프롬프트에 넣고, 긴 CLAUDE.md를 작성하고, 모든 곳에 주석을 달고, 매 세션 시작마다 다시 설명하라는 것이죠.
하지만 그것은 해결책이 아닙니다. 인지 부하를 줄여야 할 도구에 대해 수동으로 메모리를 관리하는 셈이니까요.
결정은 코드가 있는 곳에 저장해야 합니다. 별도의 위키가 아니라, 아무도 확인하지 않는 Notion 데이터베이스가 아니라, 레포지토리 안에, 버전 관리되고, 해당 작업과 함께 배치된 형태로 말이죠.
그 결정을 자동으로 주입해야 합니다. 매번 새로운 채팅에 복사·붙여넣기 하는 것이 아니라, 모델이 드리프트할 기회를 갖기 전에 올바른 제약을 적절한 순간에 도구가 표출하도록 해야 합니다.
강제해야 합니다, 단순히 상기시키는 것이 아니라. 무시될 수 있는 결정은 결정이 아니라 제안에 불과합니다. 저는 현재 코드베이스가 기록된 결정을 실제로 준수하고 있는지 검증하고, 위반된 항목을 표시해 주는 무언가가 필요했습니다.
그래서 저는 Mneme HQ를 만들었습니다. 이름은 기억과 회상을 담당하는 그리스 여신 ‘Mneme’에서 따왔으며, 원래 뮤즈 중 하나였습니다. 아이디어는 단순합니다: 여러분의 프로젝트는 기억을 가지고 있습니다. AI 어시스턴트도 마찬가지여야 합니다.
Mneme HQ는 결정들을 구조화된 파일에 저장하고, 이 파일들은 코드베이스와 함께 이동합니다:
$ mneme add "Use Postgres — no new databases without ADR"
Decision recorded. ID: ADR-001
이 결정들은 코드와 함께 커밋됩니다. Git에 존재하고, 리뷰와 감사를 받을 수 있습니다. 새 세션을 시작하면 Mneme HQ는 현재 작업과 관련된 결정만 컨텍스트에 주입합니다—모두가 아니라, 지금 필요한 것만 말이죠.
그리고 배포 전에는 사전 검사를 실행할 수 있습니다:
$ mneme check --mode strict
Checking decisions against current context...
PASS Storage decision enforced — Postgres locked, no new DBs
PASS Auth pattern respected — JWT middleware unchanged
WARN New dependency introduced — prisma not in approved list
FAIL Violates ADR-004 — Repository pattern bypassed in user.service.ts
2 passed · 1 warning · 1 failure
PASS·WARN·FAIL. 모델의 제안이 프로덕션 코드가 되기 전에 행동할 수 있는 명확한 신호입니다.
대부분의 AI 지원 개발이 에디터 안에서 이루어지기 때문에, Mneme HQ는 저장된 결정을 바로 Cursor 규칙으로 생성할 수 있습니다:
$ mneme cursor generate
Generated .cursor/rules/mneme.mdc from 7 decisions
이 규칙들은 에디터 수준의 가드레일이 됩니다. 프로젝트 내에서 Cursor나 Claude Code가 제안하는 모든 내용은 이미 설정한 제약을 통과하게 됩니다. 설명을 멈출 수 있습니다. 모델이 이미 알고 있기 때문이죠.
AI 코딩 에이전트는 놀라운 속도로 발전하고 있습니다. 하지만 단일 세션에서 할 수 있는 일과 장기 프로젝트 전반에 걸쳐 유지할 수 있는 능력 사이의 격차는 줄어들지 않고 오히려 커지고 있습니다. 더 좋은 모델이 기억 문제를 해결해 주지는 않습니다. 긴 컨텍스트 윈도우가 가장자리에서는 도움이 되지만 연속성을 근본적으로 해결하지는 못합니다.
AI 지원 개발에서 가장 큰 가치를 얻을 수 있는 프로젝트는 최고의 프롬프트를 가진 프로젝트가 아니라, 최고의 결정 인프라를 갖춘 프로젝트입니다. 즉, 코드베이스 자체가 자신의 아키텍처 의도를 기억하고 있는 경우 말이죠.
그것이 바로 Mneme HQ가 존재하는 이유입니다. 오픈 소스이며, 레포지토리 친화적이고 CI에서도 바로 사용할 수 있습니다. 여러분이 Cursor, Claude Code 혹은 다른 AI 코딩 도구를 사용하고, 히스토리—결정, 고정된 패턴, 설정된 제약—가 있는 프로젝트라면 Mneme HQ가 큰 도움이 될 것입니다.
시도해 보세요: mnemehq.com · GitHub
원본은 theovalmis.com에 처음 게재되었습니다. 저는 AI 거버넌스, 아키텍처 드리프트, 그리고 AI 지원 개발을 대규모로 지속 가능하게 만드는 시스템에 대해 글을 씁니다.