나는 하나의 CLI 명령으로 10초 만에 12GB의 디스크 공간을 확보했다
Source: Dev.to
(위에 제공된 소스 링크 외에 번역할 텍스트를 알려주시면 한국어로 번역해 드리겠습니다.)
디스크 거의 가득 찼나요? 당신의 개발 도구가 원인일 가능성이 높습니다
You know that “disk almost full” notification that pops up right when you’re in the middle of something important? Yeah, that one.
I used to spend 20 minutes hunting down what was eating my disk. Turns out the answer was almost always the same: my own dev tools.
Your dev machine is silently hoarding gigabytes of junk
스탠드‑업에서 아무도 이야기하지 않는 더러운 비밀: 지금까지 복제하고, 빌드하고, 잊어버린 모든 프로젝트가 아직도 디스크에 남아 조용히 공간을 차지하고 있습니다.
- 1월에 했던 사이드 프로젝트?
node_modules가 아직도 남아 있습니다. - 주말에 시도한 Rust 실험?
target/폴더가 800 MB에 달합니다. - 그 세 개의 Docker 튜토리얼? 남아 있는 이미지가 여기저기 흩어져 있습니다.
그리고 가장 안 좋은 점은 모든 도구마다 자체 정리 명령이 있다는 것입니다:
rm -rf node_modules # per project, manually
docker system prune # Docker
brew cleanup --prune=all # Homebrew
pip cache purge # Python
cargo clean # Rust, per project
rm -rf ~/Library/Developer/Xcode/DerivedData # Xcode
npm cache clean --force # npm
일곱 개의 서로 다른 명령. 일부는 프로젝트별로 실행해야 하고, 일부는 존재 자체를 잊어버리기도 합니다. 어느 것도 실제로 얼마나 많은 공간을 낭비하고 있는지 명확히 보여주지 않습니다.
저는 이 상황에 지쳐서 무언가를 만들었습니다.
Meet devclean – one CLI that scans and cleans everything
devclean is a single command that finds all the reclaimable space across your entire dev environment and lets you clean it in one shot.
Install
npm install -g devclean-cli
Scan
devclean scan
No config, no setup, no flags required. It walks your home directory and finds everything.
실제 스캔은 이렇게 보인다
$ devclean scan
devclean — scanning /Users/you
Scanning node_modules... found 23 (4.7 GB)
1.2 GB 142d ago ~/old-client-project/node_modules
891.0 MB 98d ago ~/freelance-2024/node_modules
620.3 MB 67d ago ~/hackathon-app/node_modules
... 20 more
Scanning Cargo targets... found 2 (1.2 GB)
803.4 MB ~/rust-playground/target
421.1 MB ~/cli-tool-experiment/target
Scanning package manager caches... found 2 (890.0 MB)
540.2 MB npm cache — ~/.npm
349.8 MB yarn cache — ~/Library/Caches/Yarn
Scanning Docker... found 3 item(s)
5 dangling image(s)
2 stopped container(s)
Docker system (use docker system prune)
Scanning Homebrew cache... 2.1 GB
2.1 GB ~/Library/Caches/Homebrew
Scanning Xcode DerivedData... 3.4 GB
3.4 GB ~/Library/Developer/Xcode/DerivedData
Total reclaimable: 12.3 GB
Run devclean clean to free this space
12.3 GB—그냥 가만히 놓여 아무 일도 하지 않는다. 몇 달째 손대지 않은 프로젝트의 node_modules 폴더 23개, “그냥 시험해 본” 언어의 Cargo 빌드 아티팩트, 6개월 전 설치한 패키지의 Homebrew 다운로드 등.
삭제하기 전에 미리 보기
트리거를 당길 준비가 안 되었나요? --dry-run을 사용하세요:
$ devclean clean --dry-run
devclean — dry run
[dry-run] Would delete 1.2 GB ~/old-client-project/node_modules
[dry-run] Would delete 891.0 MB ~/freelance-2024/node_modules
[dry-run] Would delete 620.3 MB ~/hackathon-app/node_modules
...
[dry-run] Would delete 803.4 MB ~/rust-playground/target
[dry-run] Would clean npm cache
[dry-run] Would run docker system prune
[dry-run] Would clean Homebrew cache
[dry-run] Would delete 3.4 GB ~/Library/Developer/Xcode/DerivedData
Dry run complete. No files were deleted.
아무것도 건드리지 않습니다. 실제로 어떤 일이 일어날지 정확히 확인할 수 있습니다.
원하는 것만 정리하기
아마 지금은 node_modules만 신경 쓰실 수도 있겠죠. 문제 없습니다:
devclean clean --node-modules
또는 Docker만:
devclean clean --docker
특정 디렉터리만:
devclean clean -p ~/projects/2024
각 대상마다 고유한 플래그가 있으니, 언제든지 직접 제어할 수 있습니다.
--older-than 로 활성 프로젝트 보호
이 플래그는 제가 가장 좋아하는 플래그입니다. 현재 작업 중인 프로젝트의 node_modules를 정리하는 것이 걱정된다면, 연령 필터를 추가하세요:
devclean clean --older-than 30
30일 이상 수정되지 않은 항목만 삭제됩니다. 현재 진행 중인 프로젝트는 건드리지 않습니다. ‘반드시 다시 할 거야’라고 생각했던 3개월 전 프로젝트? 사라집니다. 언제든지 15초 안에 npm install을 다시 실행할 수 있습니다.
저는 이를 매주 크론 작업으로 실행합니다:
devclean clean --older-than 60
설정하고 잊어버리세요. 이제 디스크가 가득 차는 일은 없습니다.
What it cleans
| 대상 | 찾는 항목 | 정리 방법 |
|---|---|---|
node_modules | 프로젝트 전반에 걸친 모든 node_modules/ 폴더 | rm -rf |
| Docker | 사용되지 않는 이미지, 중지된 컨테이너, 빌드 캐시 | docker system prune |
| Homebrew | 다운로드된 패키지 캐시 | brew cleanup --prune=all |
| pip | 파이썬 패키지 다운로드 캐시 | pip cache purge |
| Cargo | Rust target/ 빌드 디렉터리 | rm -rf |
| Xcode | DerivedData 빌드 캐시 | rm -rf |
| npm / Yarn | 패키지 매니저 다운로드 캐시 | npm cache clean / yarn cache clean |
중요:
devclean scan은 항상 읽기 전용입니다. 절대 파일을 삭제하지 않습니다. 파일을 제거하려면 명시적으로devclean clean을 실행해야 하며, 알려진 캐시 및 빌드 디렉터리만을 대상으로 합니다—소스 코드는 절대 건드리지 않습니다.
Installation & usage recap
npm install -g devclean-cli
devclean scan # 디스크를 차지하고 있는 항목 확인
devclean clean --dry-run # 정리 미리 보기
devclean clean # 공간 확보
macOS와 Linux에서 동작합니다. Node.js 16 이상이 필요합니다.
왜 이걸 만들었는가
수년간 개발자로 일해오면서도 몇 달에 한 번씩 디스크 공간이 부족해지는 상황을 겪곤 합니다. 해결 방법은 언제나 똑같습니다: node_modules를 대량 삭제하고, Docker를 정리하고, 캐시를 비우는 것이죠. 매번 찾아봐야 하는 명령어를 입력하는 데 10‑20분이 걸립니다.
devclean은 이를 단 10초 만에 실행할 수 있는 하나의 명령어로 바꿔줍니다.
이 기능이 도움이 될 것 같다면 한 번 사용해 보세요. 마음에 든다면 GitHub에서 별표를 눌러 주시면 큰 힘이 됩니다.
Links
devclean scan이 여러분의 머신에서 찾은 공간은 얼마나 될까요? 댓글에 숫자를 남겨 주세요. 생각보다 더 많을 거라 확신합니다.