일기 slecs

프로젝트 문서 캐스케이드로 싱크 비용 줄이기

목차

최근 job 사이트별로 흩어져 있던 CLAUDE.md 파일들이 상위 공통 설정 문서로부터 캐스케이드되도록 개선했다. 단순해 보이지만 꽤 실질적인 변경인데, 이 작업의 맥락과 배운 점을 정리해본다.

왜 이런 구조가 필요했는가

팀이 성장하면서 각 프로젝트, 각 서버, 각 job 스크립트마다 "로컬" 설정 문서가 생겨났다. 처음에는 각자 독립적으로 관리하는 게 맞았다. 하지만 시간이 지나면서 공통 규칙들이 생겼다:
- "출력은 요청 형식만 낸다"
- "날짜·연도 기준은 2026년"
- "메타 문구 금지"

이런 규칙들은 모든 봇에 적용되어야 하지만, 각 CLAUDE.md에 따로 따로 적혀 있으니 한곳을 수정할 때마다 다른 곳들도 다 찾아 손 봐야 했다. 특히 서버 환경에서는 symlink로 중앙 설정을 가리키고 있었는데, 로컬 프로젝트들은 여전히 복사본을 쓰고 있어서 싱크가 깨졌다.

캐스케이드 구조 도입

해결책은 간단했다: 각 프로젝트의 CLAUDE.md가 "상위 공통 설정"을 명시적으로 참조하고, 프로젝트별 세부사항만 추가하도록 구조화했다.

# 구조 개선 전
ops/CLAUDE.md (중앙 규칙)
job-a/CLAUDE.md (규칙 + 프로젝트 세부)  ← 복사본
job-b/CLAUDE.md (규칙 + 프로젝트 세부)  ← 복사본

# 개선 후
ops/CLAUDE.md (중앙 규칙)
job-a/CLAUDE.md (→ "ops의 설정을 상속받음" + 프로젝트 세부)
job-b/CLAUDE.md (→ "ops의 설정을 상속받음" + 프로젝트 세부)

실제 구현은 마크다운의 "include" 패턴이나 상세한 참조 주석으로, 각 프로젝트의 CLAUDE.md에 "이 파일은 상위 공통 규칙에 종속됨"이라는 명시를 추가했다. 로더(봇이 파일을 읽는 로직)는 이미 계층 구조를 이해하고 있었으므로, 문서 구조만 명확하게 하면 충분했다.

운영 관점의 효과

항목 이전 이후
중앙 규칙 변경 시 수정 대상 전체 프로젝트 손 + 서버 symlink 분리 관리 중앙만 수정, 로더가 캐스케이드 자동 반영
새 프로젝트 온보딩 공통 규칙 복사하는 과정 필요 "상위 설정 참조" 한 줄만 추가
규칙 충돌 감지 어려움 명시적 참조로 직관적

이게 중요한 이유는 "관리 비용"의 관점이다. 문서가 중복되어 있으면 한 곳 실수가 전체에 파급된다. 예를 들어 올해 연도를 2027년으로 바꿔야 한다면, 예전 방식대로라면 모든 CLAUDE.md를 순회해야 했다. 지금은 중앙 파일 한 곳만 고치면 다음 봇 호출부터 자동 반영된다.

배운 점: 언제 이런 구조가 필요한가

이 패턴은 문서뿐 아니라 설정 파일, 환경 변수, 테스트 fixture 같은 곳에서도 마주친다. 내 판단 기준은:

  • 변경 빈도: 공통 규칙이 자주 바뀐다면 캐스케이드는 투자 가치가 있다.
  • 프로젝트 수: 3개 이상 같은 규칙을 갖고 있다면 상속 구조 고려.
  • 온보딩 비용: 새 팀원이 "뭘 복사해야 하지?" 묻는 순간이 신호.

side 작업처럼 보이지만, 이런 개선이 쌓이면 팀의 "운영 마찰"이 확실히 줄어든다. 다음번엔 더 빨리 움직일 수 있다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.