Repo Snapshot — AI에게 프로젝트 구조 전달
tree / find / fd의 출력을 붙여넣으면 AI 코딩 어시스턴트(Claude Code / Cursor / GPT 등)에 전달하기 쉬운 포맷된 Markdown으로 변환합니다. 제외 패턴, 파일 크기·라인 수 표시, 확장자별 그룹화, 깊이 제한, 토큰 수 추정 기능을 지원합니다.
📋 입력 캡처 방법
# 정석: tree (권장, 보기 쉬움) tree -L 3 -I 'node_modules|.git|dist' # tree 가 없을 때: find find . -type f -not -path '*/node_modules/*' -not -path '*/.git/*' | sort # 러스트로 만든 고속판: fd fd --type f --hidden --exclude node_modules --exclude .git # Mac/Linux 標準: ls -R ls -R # Windows PowerShell Get-ChildItem -Recurse -File | Select-Object FullName
📖 자주 걸리는 지점
tree 나 find 의 출력을 붙여 넣으면 제외 패턴 · 최대 깊이 · 최대 파일 수를 적용해 AI 에 건네기 쉬운 Markdown 으로 정형합니다. 개산 토큰 수도 표시되고 처리는 브라우저 안에서 끝납니다. 파일 목록은 어디를 보면 되는지를 묻기 위한 재료이지 그 자체가 답을 담고 있는 것은 아닙니다 — 파일 이름에서 내용은 알 수 없으므로 구조만 건네고 구체적인 구현의 질문을 해도 정밀도 높은 답은 돌아오지 않습니다.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| 목록만으로 토큰을 다 써 버린다 | 제외를 설정하지 않은 채 tree 를 뜨면 node_modules · .git · vendor · dist · .next 가 통째로 들어가 수십만 토큰이 됩니다 — 그것만으로 컨텍스트의 상한을 넘으므로 정작 중요한 질문과 관련 코드를 넣을 여지가 없어집니다. 설령 들어간다 해도 상황은 좋아지지 않습니다 — 관계없는 파일이 대량으로 섞이면 모델이 주목해야 할 곳이 옅어져 답변의 정밀도가 오히려 떨어집니다. 전부 건네면 전부 고려해 준다는 것은 성립하지 않고 정보를 늘릴수록 좋아지는 것은 아닙니다. |
제외 패턴을 맨 처음에 설정하세요 — node_modules · .git · dist · build · vendor · *.lock 은 거의 어느 프로젝트에서나 빼도 문제없습니다. 그 위에 더 잘 듣는 것은 애초에 전체를 건네지 않는 것입니다 — 질문이 인증 주변이라면 src/auth/ 와 src/middleware/ 의 목록만으로 충분하고 범위를 좁히는 편이 답변의 질도 오릅니다. 최대 깊이를 2~3 으로 설정하면 디렉터리의 역할 분담만 보이는 목록이 됩니다 — 전체상을 공유하고 싶을 때는 이것으로 족하고 깊은 계층의 파일 이름은 거기를 본다고 정해지고 나서 다시 건네면 충분합니다. 개산 토큰 수는 건네기 전에 이 판단을 하기 위해 표시하고 있습니다. |
| 구조만 건네고 구체적인 답을 기대한다 | 파일 이름은 그 파일이 무엇을 하고 있는지를 알려 주지 않습니다. utils.ts 의 내용은 알 수 없고 UserService.php 에 어떤 메서드가 있는지도 알 수 없습니다. 따라서 이 버그의 원인은 어디입니까 라는 질문에 구조만으로 답할 수는 없고 돌아오는 것은 아마 이 근처일 것입니다 라는 추측이 됩니다. 추측이 구체적인 단정의 형태로 돌아오면 그것을 검증하지 않고 믿어 버리기 쉬운 것이 이 사용법의 위태로움이며 존재하지 않는 함수 이름이나 실제와는 다른 책무의 설명이 섞이는 경우가 있습니다. |
구조는 어디를 봐야 하는지를 묻기 위해 쓰고 그 답을 받아 해당 파일의 내용을 건네세요 — 이 두 단계가 실제로 가장 정밀도가 나오는 사용법입니다. 첫 번째 질문은 인증의 흐름을 쫓으려면 어느 파일을 보면 됩니까 같은 형태로 하고 돌아온 후보 중 실재하는 것만 열어 내용을 건넵니다. 구조만으로 답할 수 있는 질문도 있습니다 — 이 디렉터리 구성은 어느 설계 패턴에 따르고 있습니까, 테스트가 놓여 있지 않은 디렉터리는 어느 것입니까, 명명 규칙이 흔들리고 있는 곳은 어디입니까 같은 파일 이름과 배치 그 자체가 답이 되는 물음입니다. 질문이 어느 종류인지를 의식하면 구조만 건네야 할지 내용도 필요한지가 자연히 정해집니다. |
| 파일 이름 자체가 기밀이 되어 있다 | 디렉터리 구성은 코드의 내용을 내지 않아도 많은 것을 말합니다. acme-corp-migration/, 2026-q3-layoff-tool/, client-nintendo/ 같은 이름은 그 자체가 공개되지 않은 사실을 담고 있습니다. 마찬가지로 .env.production · credentials.json · id_rsa 가 저장소에 존재한다는 정보는 그것만으로 공격자에게 유용합니다. 나아가 tree 의 출력에는 경로의 맨 앞에 사용자 이름이 포함되는 경우가 있습니다 — /home/tanaka/projects/... 나 C:\Users\yamada\... 라는 형태로 개인명이 섞입니다. |
붙여 넣기 전에 출력을 위에서 아래까지 한 번 읽으세요 — 제외 패턴은 알려진 이름밖에 지울 수 없으므로 안건명이나 클라이언트명은 스스로 찾아 치환하는 수밖에 없습니다. 실무적으로는 프로젝트의 루트에서 tree 를 뜨고 맨 앞의 경로를 깎고 나서 붙이는 것만으로 사용자 이름의 문제는 사라집니다. .env* · *.pem · *credential* 은 제외 패턴에 넣어 두세요 — 존재하는 것 자체를 전할 필요는 우선 없습니다. 그리고 가장 중요한 확인으로 — AI 에 건네기 전에 그 서비스의 학습 이용 정책과 자기 조직의 규정을 확인하세요. 유료 API 를 거치면 보통은 학습에 쓰이지 않지만 무료 소비자용 서비스는 설정에 따라 다르며 사내 코드의 외부 송신을 금지하고 있는 조직은 드물지 않습니다. |
입력을 뜨는 방식으로 결과가 달라집니다. tree 가 가장 읽기 쉽고 괘선으로 계층이 시각적으로 보이므로 AI 에게도 사람에게도 다루기 쉬운 형태입니다. tree 가 들어 있지 않은 환경에서는 find . -type f 로 대용할 수 있습니다만 이 형식은 한 줄이 완전한 경로가 되므로 계층이 깊을수록 같은 문자열이 반복되어 토큰을 여분으로 소비합니다 — 파일 수가 많은 경우에는 tree 를 도입하는 편이 결과적으로 저렴합니다. fd 를 쓰면 .gitignore 를 자동적으로 존중하므로 제외 패턴을 쓰지 않아도 node_modules 등이 처음부터 들어가지 않습니다 — 이것이 가장 손이 덜 가는 방법입니다. 마지막으로 운용의 조언을 하나 — 이 목록을 매번 다시 만드는 것보다 프로젝트의 루트에 구조의 설명을 쓴 파일(ARCHITECTURE.md 등)을 두는 편이 장기적으로는 잘 듣습니다. 디렉터리의 역할을 한 줄씩 쓴 문서는 AI 에 건넬 때도 새로 합류한 사람에게도 반년 뒤의 자신에게도 똑같이 도움이 됩니다 — 그리고 파일 목록과 달리 왜 그렇게 나뉘어 있는지를 적어 남길 수 있습니다.
📖 사용법
-
1
쉘에서 트리 캡처tree / find / fd / ls -R 출력 복사
-
2
붙여넣기 + 옵션제외 패턴, 깊이, 파일 수
-
3
AI에 붙여넣기Claude / Cursor / GPT에 붙여넣고 질문
❓ 자주 묻는 질문
tree 없으면?
파일이 너무 많음
개인정보?
토큰 추정 정확도?
🐛 이 도구에서 문제가 발생했나요?
무료 · 가입 불필요. 재현 절차만이라도 도움이 됩니다. 보고는 운영자에게 직접 전달되어 개선에 사용됩니다.
보고 감사합니다!
운영자에게 전달되었습니다. 개선에 사용됩니다.