일기 slecs

서버 봇 지침 관리 일관성 확보

목차

예전부터 여러 서버 인스턴스에 올려진 자동화 봇들이 각자 로컬 CLAUDE.md를 가지고 있었는데, 실제로는 전체 봇이 따라야 할 공통 규칙들이 있다. 이번에 그 공통 규칙을 ops 리포의 중앙화된 docs/server-global-CLAUDE.md에 한데 모으고, 각 서버의 /home/hedvion/.claude/CLAUDE.md를 symlink로 가리키도록 변경했다. "server-only 갭"이라고 한 것도 이런 상황인데—온보딩 문서, 지침, 권한 설정 같은 게 여러 곳에 흩어져 있고, 중앙에서 관리되지 않던 상태를 말한다.

단일진실, 왜 중요한가

팀 규모가 작을 땐 문서를 복사해 두는 게 큰 문제처럼 안 느껴진다. 서버가 하나, 봇 인스턴스가 몇 개 안 될 때는 수동으로 동기화하는 게 가능하다. 하지만 자동화 봇이 늘어나고, 서버 인프라가 확장되면서 상황이 달라진다. 어느 지침은 여기 적혀 있고, 어느 건 저기 적혀 있고, 누가 최신 버전인지 헷갈린다. 그러면 새로운 팀원이 온보딩될 때 "어느 문서를 봐야 하나요?" 하는 질문이 반복된다. 코드리뷰 때도 "이 규칙이 어디 정의되어 있더라?"라고 찾는 시간이 생긴다.

특히 자동화 에이전트가 매번 CLAUDE.md를 로드하는 시스템에서, 이 파일들이 여러 복사본으로 존재한다는 건 토큰 낭비일 뿐만 아니라 신뢰성도 떨어진다. 만약 어디선가 한 복사본만 업데이트되면, 다른 인스턴스에선 여전히 옛날 규칙을 따르게 된다.

이번 변경은 간단하지만 효과적이다.

항목 이전 이후
소유 각 서버 로컬 파일 ops 리포 central source
동기화 수동, 불완전 git pull로 자동
변경 흐름 서버에서 직접 편집 mac에서 ops 커밋 → 서버 pull
복사본 수 여러 개 1개 (원본만)
신뢰성 낮음 (버전 차이) 높음 (단일 진실)

심링크의 핵심은 파일을 복사하는 게 아니라 가리킨다는 것이다:

# 이전: /home/hedvion/.claude/CLAUDE.md 는 독립적인 파일
cat /home/hedvion/.claude/CLAUDE.md
# (로컬 사본, 언제 수정됐는지 불명확)

# 이후: /home/hedvion/.claude/CLAUDE.md → /opt/ops/docs/server-global-CLAUDE.md
ln -s /opt/ops/docs/server-global-CLAUDE.md /home/hedvion/.claude/CLAUDE.md

실제로 봇이 이 파일을 읽을 때는 symlink를 따라가서 ops 리포의 원본을 읽는다. 업데이트도 한 곳에서만 일어난다.

관리 프로세스의 명확화

변경 후 흐름이 명확해졌다:

  • 규칙 수정이 필요할 때: mac에서 ops 리포의 docs/server-global-CLAUDE.md를 편집 → 커밋 → push
  • 서버에 적용: cd /opt/ops && git pull
  • 금지 사항: 서버에서 직접 /home/hedvion/.claude/CLAUDE.md를 편집하는 것 (심링크이므로 실제로도 작동 안 함)

이렇게 하면 누가 뭘 바꿀 수 있는지, 언제 적용되는지 일관되게 추적할 수 있다. 또한 git 히스토리로 지침 변화의 배경도 남는다. "왜 이 규칙을 넣었는가"를 나중에 찾아볼 수 있다.

팀 온보딩과 신뢰도 개선

실제 효과를 생각해보면:

  1. 온보딩 명료화: 새로운 팀원에게 "봇이 따를 규칙은 여기 한 문서야"라고 딱 하나만 보여줄 수 있다
  2. 코드리뷰 일관성: 지침 위반 여부를 판단할 때 모두가 같은 문서를 기준으로 삼는다
  3. 토큰 비용 의식: 중앙 문서에 "전 봇 공통 룰만 두겠다"는 주석을 추가해서, 프로젝트별 세부 규칙은 각 리포의 CLAUDE.md에만 두도록 유도했다. 이렇게 하면 모든 봇 호출마다 로드되는 토큰 오버헤드를 줄일 수 있다
  4. 분산 관리 제거: 여러 문서를 꺼내 와서 비교하는 수고가 사라진다

회고: 작은 변경, 큰 임팩트

이건 코드 라인 수로 보면 정말 작은 변경이다. 파일 몇 개 추가하고, symlink만 만든 거다. 하지만 팀 규모가 커질수록 이런 "정보의 진실 포인트"를 어디에 둘 지 결정하는 게 점점 중요해진다.

특히 자동화, AI, 에이전트를 많이 쓰는 팀이라면 "이 규칙은 누가 언제 정의했고, 어디서 관리되고, 언제 바뀌는가"를 명확히 해야 한다. 그렇지 않으면 다음 분기 온보딩 때, 혹은 규칙 수정 후 한두 달 뒤에 "어? 지침이 이미 바뀌어 있네?" 같은 놀라움이 반복된다.

Symlink는 기술 자체로는 단순하지만, 그 뒤에 "한 번의 진실(single source of truth)" 원칙을 실행한다는 뜻이다. 팀 리딩 관점에서 보면, 이런 작은 결정들이 모여서 팀의 신뢰도와 생산성을 올린다.


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

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

댓글 0

첫 댓글 달아줘.