
Claude Code로 여러 리포지토리를 다루기 위해 시도해 본 것들
요약
Claude Code를 여러 리포지토리를 아우르는 상위 디렉토리에서 실행할 때 발생하는 메모리 관리 및 코드 정밀도 문제를 분석합니다. 프로젝트별 메모리 격리 특성을 이해하고, 효율적인 컨텍스트 관리를 위한 최적의 실행 방식과 규칙 관리 전략을 제안합니다.
핵심 포인트
- Claude Code의 프로젝트 메모리는 실행 디렉토리별로 독립적으로 관리됨
- 상위 디렉토리 실행 시 불필요한 컨텍스트 포함으로 정밀도가 저하될 수 있음
- 공통 규칙은 ~/.claude/CLAUDE.md에, 프로젝트 규칙은 개별 메모리에 저장 권장
- 타 리포지토리 참조 시 정보를 Markdown으로 정리하여 전달하는 것이 정밀도 향상에 유리함
서론
며칠 전, Claude Code의 메모리 기능에 대해 글을 썼습니다.
프로젝트의 전제 조건이나 판단 기준을 메모리에 저장해 두면, 매번 설명하지 않아도 컨텍스트 (Context)를 이어받아 주기 때문에 편리하게 활용하고 있습니다.
그 후로도 Claude Code의 사용법을 다양하게 시도하고 있는데, 여러 리포지토리 (Repository)를 넘나드는 개발에서는 "어디에서 Claude Code를 실행할 것인가"도 의외로 중요할 수도 있겠다는 생각이 들었습니다.
계기
어떤 리포지토리의 변경에 맞춰, 다른 리포지토리도 수정이 필요할 때가 있습니다.
그럴 때는 관련 코드를 한꺼번에 확인하고 싶어지므로,
"상위 디렉토리에서 Claude Code를 실행하여, 관련 리포지토리 전체를 보게 하는 것이 더 편리하지 않을까?"
라고 생각했습니다.
예를 들어, 다음과 같은 구성입니다.
umbrella/
├── repo-a/
├── repo-b/
...
처음에는 이 상위 디렉토리에서 Claude Code를 실행했습니다.
여러 리포지토리를 횡단하며 검색할 수 있고, 걸쳐 있는 변경 사항과도 궁합이 좋아 보였습니다.
하지만 사용하다 보니,
- 생성되는 코드의 정밀도가 떨어짐
- 이전에 기억시킨 내용이 활용되지 않음
이라고 느껴지는 장면이 있었습니다.
조사 결과
조사해 보니, Claude Code의 프로젝트 메모리는 실행한 디렉토리마다 관리되는 것 같았습니다.
따라서,
umbrella에서 실행한 경우는umbrella용 메모리repo-a에서 실행한 경우는repo-a용 메모리
가 이용됩니다.
이전 글에서 소개했던 것과 같은 프로젝트 고유의 전제 조건이나 판단 기준을 repo-a 측에 저장해 두었을 경우, 그것들은 umbrella에서 실행한 세션에서는 이용되지 않습니다.
"이전에 기억시킨 내용이 활용되지 않는다"라고 느꼈던 것은, 이 부분이 이유였을지도 모릅니다.
가설
여기서부터는 추측입니다만, 메모리 이외에도 영향을 미치는 요소가 있을 것 같습니다.
상위 디렉토리에서 실행하면, 탐색 대상은 하위의 모든 리포지토리가 됩니다.
그 결과,
- 작업 대상과는 관계없는 코드도 컨텍스트 (Context)에 포함됨
- Git 정보도 실제 작업 리포지토리와 어긋날 가능성이 있음
과 같은 상황이 발생합니다.
실제 내부 구현을 확인한 것은 아니지만, Claude Code는 이용 가능한 컨텍스트를 바탕으로 판단하기 때문에, 대상을 너무 넓게 잡는 것이 정밀도에 영향을 줄 수도 있겠다는 생각이 들었습니다.
현재까지의 결론
현재는 기본적으로 작업 대상인 리포지토리에서 Claude Code를 실행하고 있습니다.
다른 리포지토리를 참조하고 싶을 때는 필요에 따라 경로를 지정하여 읽게 합니다. (리포지토리 외부를 볼 수 있다는 뜻이므로 제한이 필요할 것 같지만... 아직 거기까지는 이르지 못했습니다)
또한, 메모리는 다음과 같이 구분해서 사용하고 있습니다.
- 공통 규칙은
~/.claude/CLAUDE.md - 리포지토리 고유의 규칙은 프로젝트 메모리
각 리포지토리에서 작업하면서 프로젝트 메모리를 키워나가고, 여러 리포지토리에서 유효할 것 같거나 반복해서 사용하는 규칙은 모든 프로젝트 공통 개인 설정인 ~/.claude/CLAUDE.md로 옮기고 있습니다.
프로젝트 메모리를 실험장으로 사용하고, 범용화할 수 있는 것을 공통 규칙으로 승격시키는 이미지입니다.
또한, 다른 리포지토리에도 수정이 필요한 경우에는 먼저 대상 리포지토리에서 변경 내용을 정리하여 Markdown 형식으로 출력하게 하기도 합니다.
관련된 리포지토리를 처음부터 전부 보여주는 것이 아니라, 일단 정보를 정리한 뒤에 다음 작업으로 넘기는 편이 정밀도가 올라간다고 느끼고 있습니다.
참고로 조사하는 과정에서 autoMemoryDirectory라는 설정이 있다는 것도 알게 되었습니다.
settings.json에서 메모리 저장 위치를 변경할 수 있는 것 같으므로, 설정에 따라 이번 이야기가 달라질 수도 있을 것 같습니다. 이 부분은 아직 시도해 보지 못했습니다.
요약
상위 디렉토리에서 실행하는 것이 전체를 조망할 수 있어 편리해 보였지만, 메모리의 스코프 (Scope)나 컨텍스트의 범위가 관계되어 있는지 체감적인 정밀도가 떨어지는 경우가 있었습니다.
아직 가설 단계입니다만, 작업 대상 리포지토리로 한정하여 실행하는 편이 현재로서는 제가 원하는 것을 작성해 주는 느낌이 듭니다.
최근에는 "컨텍스트 엔지니어링 (Context Engineering)"이라는 말도 자주 들리게 되었습니다.
이번 이야기 또한, 단순히 많은 정보를 보여주는 것이 아니라 어떤 정보를 어떤 단위로 전달할지를 고민한다는 의미에서는 그와 유사할지도 모르겠습니다.
계속해서 시행착오를 겪으며, 성공했던 것들은 메모리나 CLAUDE.md에 쌓아 나가려고 합니다.
참고
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기