본문 바로가기
IT

AI 에이전트가 매번 기억을 잃는 문제, 이 워크플로로 잡았다

by 안드뽀개기 2026. 5. 6.
반응형

Claude Code로 장기 프로젝트를 진행하다 보면 반드시 마주치는 순간이 있다. 어제 세션에서 "이 모듈은 직접 수정하지 말고 인터페이스만 쓰자"고 합의했는데, 오늘 새 세션을 열면 Claude는 그 결정을 전혀 모른다. 처음부터 다시 설명해야 한다. 프로젝트 규칙, 기술 스택 선택 이유, 건드리면 안 되는 영역들을 매번 주입하는 반복 작업이 쌓이기 시작한다.

세션 내에서도 문제는 생긴다. 작업이 길어질수록 초반 결정들이 흐릿해지고, 코드 스타일 일관성이 흔들리고, 이미 논의한 내용을 다시 물어보는 일이 생긴다. 이건 모델의 실력 문제가 아니라 컨텍스트 윈도우라는 구조적 한계다.

Elephant/Goldfish 패턴이 뭔가

Daniel Rensin이 제안한 이 패턴은 단순한 원칙 하나에 기반한다. "기억해야 할 것(Elephant)"과 "지금 당장 처리할 것(Goldfish)"을 명시적으로 분리하라는 것이다. AI는 개별 작업 단위에서는 금붕어처럼 한 가지에만 집중하고, 프로젝트 레벨의 맥락은 코끼리처럼 보존한다.

vshvedov/elephant-goldfish 저장소는 이 개념을 Claude Code, Codex, Gemini CLI에서 실제로 쓸 수 있는 워크플로로 구현해놨다. /eg-fix-bug, /eg-plan 같은 실행 가능한 커맨드 세트가 핵심이다. 아이디어를 읽고 끝내는 게 아니라, 부트스트랩 명령어 하나로 바로 현재 프로젝트에 설치된다.


설치하는 방법

Claude Code 기준이다. 대상 저장소에서 세션을 열고 아래 메시지를 그대로 붙여넣는다.

Fetch the elephant-goldfish bootstrap procedure with
gh api repos/vshvedov/elephant-goldfish/contents/claude/BOOTSTRAP.md -H 'Accept: application/vnd.github.raw',
then follow the procedure to set up the elephant/goldfish workflow here,
preserving any existing setups for other AIs.

Claude가 GitHub에서 절차를 가져와 프로젝트에 맞게 설정을 완료한다. 세션을 재시작하면 /eg-로 시작하는 커맨드 목록이 자동 완성된다.

여기서 핵심은 Adaptive Injection이다. 설치 과정에서 Claude가 현재 저장소의 언어, 프레임워크, 테스트 러너를 분석해 템플릿을 직접 커스터마이징한다. Rails 앱이면 /eg-fix-bugbundle exec rails test를 실행하도록, Flutter 앱이면 flutter test를 쓰도록 설정이 바뀐다. 범용 템플릿이 아닌 이 프로젝트에 맞는 버전이 생성된다.

Codex와 Gemini CLI도 같은 방식으로 설치할 수 있고, 세 개를 함께 쓰는 경우 설치들이 서로 덮어쓰지 않고 공존한다. 각각의 저장소 경로가 다르게 설계돼 있다.


왜 이 방법이 효과적인가

컨텍스트 관리의 책임을 사람이 아닌 워크플로 자체에 위임하기 때문이다.

Elephant 역할은 CLAUDE.md 파일이 담당한다. 프로젝트 레벨의 결정 사항, 제약 조건, 이전 작업 결과가 여기에 누적된다. 매 세션마다 이 파일이 자동으로 로드되므로 수동 주입이 필요 없다. Goldfish 역할은 /eg-* 커맨드가 맡는다. 한 번에 하나의 작업에만 집중하고, 완료 후 결과를 Elephant 파일에 자동으로 기록한다.

결국 AI가 자신의 작업 결과를 스스로 문서화하는 피드백 루프가 생긴다. 개발자가 별도로 문서를 관리하지 않아도 프로젝트 맥락이 점진적으로 쌓이는 구조다.


함정과 한계

부트스트랩이 만들어주는 커맨드 파일들은 프로젝트별로 커스터마이징된 버전이기 때문에 원본 저장소가 업데이트돼도 자동으로 반영되지 않는다. 업스트림 변경을 직접 추적하고 적용해야 한다는 관리 부담이 생긴다.

CLAUDE.md에 컨텍스트가 쌓일수록 매 세션마다 토큰 소비가 늘어난다. 내용이 방만하게 커지면 비용 문제와 함께 정작 중요한 정보가 묻히는 역효과도 생긴다. 한 달에 한 번쯤 파일을 열어 오래된 내용을 정리하는 습관이 필요하다.

이 패턴은 반복적이고 구조화된 작업에 강하다. 목표 자체가 불명확한 탐색 단계, 실험적인 프로토타이핑에서는 Elephant 파일에 무엇을 기록해야 할지 판단하기 어렵고, 오히려 형식이 작업 흐름을 방해할 수 있다.


오늘 바로 해볼 것

현재 진행 중인 프로젝트 저장소에서 Claude Code를 열고, 위의 설치 메시지를 붙여넣어라. 설치가 끝나면 세션을 재시작하고 /eg-를 입력해 커맨드 목록을 확인한다.

그 중 하나만 실행해보고, 완료 후 생성된 CLAUDE.md를 열어봐라. 무엇이 어떻게 기록됐는지 직접 확인하면 이 워크플로가 맥락을 어떤 방식으로 유지하는지 즉시 이해된다. 설명을 읽는 것보다 파일 하나를 열어보는 게 훨씬 빠르다.

※ 본 글은 정보 제공 목적이며 특정 제품·서비스의 추천이 아닙니다.

반응형