볼트에 AI를 붙이기 전에 — gitignore는 git만 막는다

한 줄 요약

이 사이트의 보호 장치 다섯 겹은 전부 git과 발행 폴더를 막는다. AI의 읽기는 하나도 막지 않는다.

본문

왜 이 생각을 하게 됐나

이 사이트를 Obsidian 안에서 AI와 같이 만들었다. 볼트를 분리하고, 발행 게이트를 짜고, 정적 사이트를 붙이는 작업을 전부 노트 안에서 했다.

그러다 “Obsidian에 Claude Code 붙이는 워크플로” 류의 영상을 찾게 됐는데, 아직 보지 않았다. 대신 재생 버튼을 누르기 전에 질문 목록을 먼저 만들었다. 만들다가 하나가 걸렸고, 그게 이 글이다.

걸린 것

이 볼트의 구조는 이렇다.

personal-site/
├── content/    발행 대상 — 공개된다
└── drafts/     초안 — .gitignore 로 제외. 절대 커밋되지 않는다

drafts/ 를 gitignore 한 이유는 분명했다. 초안에는 아직 판단이 안 끝난 내용, 쓰다 만 문장, 공개하면 안 되는 메모가 들어간다. 구조적으로 git에 못 들어가게 막았다.

그런데 AI를 볼트에 붙이면 이렇게 된다.

AI는 drafts/ 와 content/ 를 같은 폴더 안의 파일로 본다.

.gitignore 는 git에게 하는 말이다. AI에게 하는 말이 아니다. drafts/ 의 초안을 읽고 그 내용을 content/ 의 글에 반영해달라고 하면, AI는 그게 문제라고 생각할 이유가 없다. 초안을 보호하려고 만든 장치가 AI 경로에서는 작동하지 않는다.

같은 구조가 커밋 전 검사에도 있다. 그 검사는 content/ 안의 글을 본다. AI가 초안의 민감한 문장을 발행 글에 녹여 쓰면, 그건 더 이상 초안이 아니라 발행 글이다. 검사는 통과한다. 키워드가 안 걸리면.

그래서 질문이 바뀌었다

“AI를 노트에 붙이면 좋은가”는 이미 답이 났다. 좋다. 이 사이트가 그 결과다.

바뀐 질문은 “AI가 내 볼트의 어디까지 읽는가” 다. 워크플로 영상을 볼 때 기능 소개보다 이걸 먼저 볼 생각이다. 범위 제한이 없는 구성이라면, 좋은 워크플로라도 이 볼트에는 그대로 못 쓴다.

독자가 가져갈 것

  • 초안과 발행 글을 같은 볼트에 두고 AI를 붙일 거면, .gitignore 가 AI에게는 아무 의미도 없다는 것부터 확인하라
  • 보호 장치를 만들 때 “무엇을 막는가”가 아니라 **“누구에게 하는 말인가”**를 적어두라. .gitignore 는 git에게, 커밋 훅은 커밋에게 하는 말이다. 둘 다 AI는 안 듣는다
  • 볼트를 아예 둘로 쪼개는 것도 방법이다. 판단할 일을 없애는 쪽이 매번 조심하는 쪽보다 세다

안 맞다고 본 지점

  • 아직 영상을 안 봤고, 이 글은 영상 리뷰가 아니다. 내 구성에서 나온 질문 목록이다. 영상이 이 문제를 이미 다루고 있을 수도 있다.
  • 실제로 사고가 난 적은 없다. 구조상 가능하다는 것까지만 확인했고, 어떤 AI 구성이 실제로 볼트 전체를 읽는지는 아직 확인하지 않았다. 그 점에서 이 글은 경고가 아니라 확인해야 할 목록이다.
  • 범위를 좁히면 AI가 맥락을 덜 보게 되니 유용성도 같이 떨어진다. 그 균형점이 어디인지는 모르겠다.

참고