CLAUDE.md를 모든 학습 내용을 담는 잡동사니 서랍으로 쓰는 걸 그만뒀습니다
I stopped turning CLAUDE.md into a junk drawer for every lesson learned
핵심 요약
CLAUDE.md의 비대화를 막기 위해 프로젝트 규칙, 프로젝트별 메모, 개인 지식으로 정보를 분리하는 워크플로우를 제안합니다.
- CLAUDE.md 최적화 — 프로젝트 규칙과 범용 지식을 분리하여 관리함
- 메모 시스템 구축 — 프로젝트별 메모와 개인 지식(memU)을 별도로 관리함
- 컨텍스트 관리 — 에이전트가 항상 참조할 정보와 필요할 때만 불러올 정보를 구분함
- 오픈소스 도구 — 개인 지식 관리를 위한 memU 프로젝트를 Apache 2.0으로 공개함
저는 memU를 만들고 있는데, 이것이 그 이유 중 일부입니다. 중립적인 비교를 제시하려는 게 아니라, 제 워크플로우를 공유하려는 것뿐입니다.
cc를 몇 달 사용해보니, 제 CLAUDE.md는 잡동사니 서랍이 되어버렸습니다. 문제는 이 메모들이 서로 다른 범위를 가지고 있다는 점입니다. 이 저장소에 대한 규칙은 매번 로드되어야 합니다. 이상한 사건 하나에서 얻은 교훈은 아마 그러면 안 될 겁니다. 여러 프로젝트에서 사용하는 워크플로우는 특정 프로젝트의 지침 안에 갇혀 있어서는 절대 안 됩니다.
제가 지금 시도하고 있는 구분 방식은 다음과 같습니다:
CLAUDE.md
- 이 저장소에서 작업하는 방법
- 명령어, 컨벤션, 제약 사항, 아키텍처 규칙
- 팀이 공유해야 할 사항
Claude Code 프로젝트 메모
- 짧고 프로젝트에 특화된 교훈
- "백필(backfill) 전에 이 마이그레이션을 실행할 것"
- "X가 발생하면 이 통합 테스트가 불안정해짐"
개인 메모 (memU)
- 내 선호 사항, 결정 사항, 반복되는 워크플로우 및 교훈
- 새로운 프로젝트, 기기, 에이전트에서도 유지되어야 할 사항
예를 들어, 프로덕션에서 문제를 디버깅하는 대략적인 프로세스가 있는데, 보통 시간을 좁히고, 로그를 확인하고, 롤백 방법을 알아낸 다음, 실제로 변경하는 식이죠. 하지만 이건 특정 저장소에 묶여 있는 게 아닙니다. Claude Code에서 Codex로 넘어가거나 다른 기기에서 작업하더라도 계속 사용하고 싶거든요.
하지만 모든 오래된 메모를 모든 프롬프트에 밀어 넣고 싶지는 않습니다.
그래서 아이디어는 에이전트가 모든 것을 기억하게 만드는 게 아닙니다. 항상 로드되는 컨텍스트를 작게 유지하고, 실제로 도움이 될 때만 이전 정보를 불러오는 것이죠.
저는 이게 다음과 같이 나뉜다고 생각합니다:
- 코드베이스에 관한 내용은 코드베이스와 함께 유지된다.
- 제 개인적인 지식은 저를 따라다녀야 한다.
memU는 그 두 번째 부분을 위해 시도하고 있는 것입니다. 제가 실제로 볼 수 있고, 다른 에이전트와 기기에서 유용한 컨텍스트를 가져올 수 있는 개인 위키 같은 거죠. 전부 오픈소스이고, Apache 2.0 라이선스입니다.

