소개
Claude Code를 Obsidian 볼트에 연결했더니 노트가 아닌 시스템파일이 늘어나기 시작했습니다. 파일을 지우는 데서 끝내지 않고, 볼트·실행환경·임시 작업공간을 분리하고 Windows와 Mac에서 같은 원칙으로 운영하는 구조를 만들고 싶었습니다.
하드드라이브 D에서 주요 프로젝트들을 workspace폴더로 만들고 그 안에, 코칭, 강의, 연구, 개인정보 등등 md파일 뿐 아니라, 워드파일, 엑셀파일, PPT파일 등등을 모두 프로젝트 폴더에 넣고, Visual Code를 연결해서 함께 대화하며 작업하는 일이 많았거든요.
그러다보니 파이썬 호출할때나 스킬이나 프로젝트에 해당하는 지침을 줄 때 각각 시스템파일, 환경파일들이 늘어나면서 용량도 커지고 그래프뷰 시 지저분해지고.. 부작용이 많아짐을 느꼈습니다. 옵시디언 전문가분들은 대부분 하드드라이브와 md파일만 저장하는 저장소를 분리하더라구요.
저는 구분하는게 더 혼란이와서 우선 폴더 하나로 구동시키고 싶었고, 이를 어찌하면 컴팩하게 관리할까 고민해보았습니다.
볼트 안에 제가 직접 만들지 않은 Python 라이브러리, 가상환경, 캐시, 임시 이미지, 실행 스크립트가 생겼습니다. 개발자에게는 익숙한 파일일 수 있지만, 제게는 노트 사이에 갑자기 수천 개의 시스템파일이 나타난 것처럼 보였습니다.
이 파일들은 다음과 같은 부담이 될 수 있었습니다.
Obsidian이 노트가 아닌 파일까지 탐색하고 인덱싱함
동기화할 파일 수와 용량이 불필요하게 늘어남
그래프 뷰와 파일 탐색기가 복잡해짐
Windows에서 생성된 실행환경이 Mac에는 맞지 않음
어떤 파일이 지식 자산이고 어떤 파일이 임시파일인지 구분하기 어려움
마침 Windows에서 사용하던 볼트를 Mac에서도 이어서 사용하려던 시점이었습니다. 단순히 폴더 몇 개를 삭제하는 것으로는 같은 문제가 반복될 것 같았습니다.
그래서 이번 작업의 목표를 세 가지로 정했습니다.
Claude Code를 사용해도 볼트 안에 시스템파일이 쌓이지 않게 하기
실제 폴더 구조를 먼저 파악한 뒤 MOC와 type을 최대한 단순하게 정리하 기
Windows와 Mac에서 공통 규칙과 장치별 설정을 구분해 적용하기
진행 방법
삭제하지 않고 현재 상태부터 조사했습니다
삭제하거나 이동하지 말고,
볼트 전체 구조와 실행환경·캐시 흔적을 먼저 조사해줘.
실제 폴더인지 링크인지 구분하고 정리 후보만 알려줘.이 과정에서 확인한 것은 다음과 같습니다.
Python 가상환경과 패키지 폴더가 있었는가?
캐시와 컴파일 파일이 어디에 있었는가?
대량의 미리보기 이미지와 검사 파일이 남아 있었는가?
실제 폴더가 아니라 정션 또는 심볼릭 링크인 항목이 있었는가?
같은 이름과 크기를 가진 중복 후보가 얼마나 있었는가?
이 과정을 거친 뒤 볼트에서 주요 가상환경, 패키지, 캐시 흔적이 발견되지 않는 상태를 확인했습니다.
볼트와 작업공간을 물리적으로 분리했습니다
문제를 다시 만들지 않으려면 Claude에게 주의를 주는 것만으로는 부족했습니다. 파일이 저장될 장소 자체를 분리했습니다.
[Obsidian 볼트]
노트 · 원본 자료 · 실제 첨부파일 · 최종 결과물
[외부 임시 작업공간]
압축 해제 · 변환 파일 · 미리보기 · 검사 데이터 · 임시 코드
[외부 실행환경]
Python 가상환경 · 설치 패키지 · Node 패키지Windows와 Mac에는 각각 별도의 임시 작업공간과 실행환경을 만들었습니다. 두 장치는 같은 노트를 동기화하지만 실행환경은 공유하지 않습니다.
이 구성이 중요한 이유는 운영체제마다 실행 파일과 패키지 구조가 다르기 때문입니다. Windows에서 만든 가상환경을 Mac으로 동기화해도 그대로 사용할 수 없고, 오히려 파일 수만 크게 늘어납니다.
패키지가 필요할 때는 현재 폴더에서 단순히 pip install을 실행하지 않고, 볼트 밖에 있는 Python 실행 파일의 전체 경로를 사용하도록 정했습니다.
생성 결과와 중간산출물을 구분했습니다
AI 문서 작업은 최종 Markdown 한 개를 만들기 위해 여러 임시파일을 생성할 수 있습니다.
예를 들면 다음과 같습니다.
PDF 페이지 렌더링 이미지
Excel 셀 검사 데이터
미리보기 PNG
압축을 푼 원본 복사본
변환용 스크립트
처음에는 이런 파일이 최종 결과물과 같은 폴더에 남아 있었습니다. 이후에는 작업 중 생성되는 파일은 외부 임시 작업공간에 두고, 사용자가 보존하기로 결정한 최종 결과물만 볼트로 옮기도록 했습니다.
이때도 바로 삭제하지 않고 다음 방식으로 정리했습니다.
최종 결과물과 재사용할 소스 구분
중간산출물을 볼트 밖으로 이동
며칠 동안 문제가 없는지 확인
더 이상 필요하지 않을 때 삭제폴더 구조를 먼저 읽고 MOC와 type을 제안받았습니다
볼트의 기술적 문제를 정리한 뒤에는 PKM 구조도 점검했습니다. 처음에는 폴더명, 주제, 출처, 도구, 결과물이 MOC와 type에 섞여 있었습니다. 분류값이 많으면 정교해 보이지만, 새 노트를 만들 때마다 어느 값을 넣어야 할지 고민하게 됐습니다. 그래서 AI에게 바로 분류체계를 만들게 하지 않고, 먼저 현재 폴더 구조와 기존 frontmatter 사용 현황을 읽게 했습니다.
요소
역할
폴더
파일의 실제 보관 위치
type
문서가 수행하는 역할
MOC
주제별 탐색 입구
topics
MOC보다 세부적인 검색어
tags
Obsidian 태그 필터가 필요한 값
이렇게 했더니 옵시디언 프론트메터는 심플해지고, 이를 토대로 비주얼코드에서 어떤 프로젝트를 열어도 불필요한 파일이 제 눈에 안보이니 훨씬 심적 부담이 줄었습니다.
결과와 배운 점
옵시디언 중복파일 삭제는 아직이지만, 이제 노트의 연결을 위한 밑작업을 했다는 생각이 듭니다. 이를 바탕으로 열심히 클로드와 대화나누며 노트를 만들어 나가면 좋겠습니다.
도움 받은 글 (옵션)
지피터스 스터디의 많은 사례글과 스터디에서 나누는 인사이트들을 토대로 개선 중입니다.