← 글

Mac 디스크가 꽉 차기 직전, 아예 AI에게 용량 지도를 만들게 했습니다

· 8 분 읽기
macOS 디스크 공간 AI Agent 오픈소스
Hoard 아이콘: 다람쥐
개발 후기

Mac 디스크가 꽉 차기 직전,

아예 AI에게 용량 지도를 만들게 했습니다

Hoard는 제가 쓰려고 만든 디스크 용량 도구입니다. 아이디어에서 오픈소스 공개까지의 이틀, 그리고 예전에 도구를 만들던 방식과 무엇이 달랐는지를 적었습니다.

발상

디스크는 꽉 차 가는데, 기존 도구는 기다려야 했습니다

2026년 10월, 제 Mac mini 디스크가 꽉 차기 직전이었습니다. 시스템 설정의 ‘저장 공간’은 색깔 막대 하나만 보여 주고, 가장 큰 부분은 ‘시스템 데이터’입니다. 눌러 봐도 그게 무엇인지 알 수 없습니다.

시스템 설정의 저장 공간: 409.67GB 사용 중, 가장 큰 회색 구간이 시스템 데이터
시스템 설정의 ‘저장 공간’: 가운데의 큰 회색 구간이 ‘시스템 데이터’

처음에는 Mole이라는 무료 Mac 정리 도구를 썼습니다. 쓸 만하지만 스캔할 때마다 한참 기다려야 했습니다. Hoard를 만든 뒤 같은 컴퓨터에서 둘을 측정했습니다. 아래 버튼을 누르면 실제 초 단위 그대로 다시 볼 수 있습니다.

~/Library 첫 스캔 (파일 약 48만 개)
Hoard
3.2초
Mole
9.3초
첫 스캔 시간(초, 짧을수록 빠름)
둘 다 처음부터 끝까지 훑습니다. 같은 Mac mini, 2026년 10월 23일, 5회 중앙값
Hoard Mole
~/Library · 파일 약 48만 개
Hoard
3.2
Mole
9.3
제 프로젝트 폴더 · 파일 약 83만 개
Hoard
3.6
Mole
7.1
0510초
폴더HoardMole
~/Library3.17 (2.39–7.51)9.31 (8.05–12.10)
제 프로젝트 폴더3.63 (3.57–6.67)7.10 (6.07–8.64)

2026년 10월 23일, 같은 Mac mini에서 Hoard 0.6.3과 Mole의 오픈소스 명령줄 버전 V1.62.0을 비교했습니다. 두 도구를 번갈아 5회씩 돌린 중앙값이고, 괄호 안은 가장 빠른 값부터 가장 느린 값, 단위는 초입니다. 측정하는 동안 컴퓨터에서 다른 작업도 돌고 있어서 전체적으로 초가 느리게 나왔으니, 상대적인 차이를 봐 주세요. 제가 평소 쓰는 Mole.app GUI 버전은 별개의 프로그램이라 측정하지 않았습니다.

첫 스캔에서는 둘 다 처음부터 끝까지 훑는데, Mole은 Hoard보다 두세 배 오래 걸립니다. 둘 다 캐시가 있어서, 방금 스캔한 폴더를 다시 열 때는 1~2초면 됩니다. 차이는 캐시가 정확한가에 있습니다. Mole의 캐시는 폴더의 수정 시간을 보기 때문에, 파일이 커져도 폴더가 바뀌지 않으면 예전 숫자를 보여 줍니다. 파일 하나에 50MB를 덧붙였는데도, Mole이 캐시로 보여 준 값은 원래의 150B 그대로였습니다. Hoard는 캐시를 읽은 뒤 macOS가 기록해 둔 파일 변경 기록으로 그 뒤의 변화를 채웁니다. 또 Mole은 node_modules 같은 폴더를 통째로 추정해서, ~/Library에서는 실제로 파일을 절반 정도만 셌습니다.

제가 원한 건 한 번 스캔하면 정확하고, 그다음에는 누르는 곳마다 바로 보이는 것이었습니다. 그래서 직접 만들기로 했습니다.

생각

이번 첫걸음은 코드 작성이 아니라 측정이었습니다

예전에는 도구가 맞지 않으면 다른 걸로 바꾸거나 참고 썼습니다. 이번에는 순서를 바꿔서, 전 과정에서 저는 주로 결정을 내리고 코드는 AI에게 맡겼습니다.

먼저 측정하고, 만들 수 있다고 확인한 뒤에 손을 댄다

AI에게 먼저 작은 실험을 짜게 해서 ‘폴더를 끝까지 훑는 데 얼마나 걸리는가’ 하나만 측정했습니다. 10월 20일 당시 파일이 약 88만 개였던 프로젝트 폴더를 한 번 훑는 데 약 4초였습니다. Mole이 파일의 30%만 훑으면서 8초 걸린 것보다 빨라서, 만들기로 결정했습니다.

남의 코드를 읽고 아이디어를 배운다

Mole의 명령줄 버전은 오픈소스입니다. APFS 복제 파일을 어떻게 처리하는지, 읽을 수 없는 폴더를 어떻게 표시하는지 AI에게 읽게 하고 그 아이디어를 빌렸습니다. 코드는 한 줄도 베끼지 않았습니다.

저는 요구 사항을 쓰고, 결과를 보고, 반려합니다

작업 카드, 구현, 리뷰를 서로 다른 에이전트에게 나눠 맡기고, 예전에 정리한 〈멀티 에이전트 분업〉 방식대로 돌리고 있습니다. 이름도 이렇게 정했습니다. AI가 첫 번째로 낸 Meerkat(미어캣)과 손그림 아이콘은 둘 다 반려했고, 마지막에 다람쥐를 골랐습니다. 다람쥐는 도토리를 여기저기 숨기고, 숨긴 곳도 기억합니다. 영어 이름 Hoard는 ‘모아 두다’라는 뜻입니다.

Hoard 아이콘, 라이트 버전과 다크 버전
다람쥐 아이콘, 라이트와 다크 두 가지

10월 20일에 설계 문서를 쓰고, 22일에 Hoard 0.6.0을 GitHub에 오픈소스로 공개했습니다.

설계

사람은 지도를 보고, AI는 목록을 묻습니다

Hoard의 사용자는 두 종류입니다. 저 자신, 그리고 도움을 받으려고 부르는 AI 에이전트입니다. 같은 한 번의 스캔을 두 가지 방식으로 읽게 합니다.

사람에게는 용량 지도를 줍니다. 폴더 하나를 블록 하나로 그리고, 면적이 곧 크기입니다. 가장 큰 블록이 한눈에 보이고, 더블클릭하면 안으로 들어갑니다.

Hoard의 용량 지도: 폴더마다 블록 하나, 면적이 크기를 나타냄
용량 지도: 면적이 클수록 차지하는 공간이 많습니다(데모 폴더)

지도 말고도 목록이 세 가지 있습니다. 가장 큰 파일, 파일 유형, 오랫동안 열지 않은 파일입니다.

가장 큰 파일 목록
가장 큰 파일
파일 유형 분포
파일 유형
오랫동안 열지 않은 파일 목록
오랫동안 열지 않은 파일

AI에게는 명령줄과 MCP를 줍니다. 모든 명령에 --json을 붙이면 프로그램이 읽을 수 있는 형식으로 출력합니다. Claude Code에서 ‘뭘 지울 수 있어?’라고 물으면, Claude Code가 Hoard에 물어보고 이유가 붙은 목록을 받아 옵니다. 예를 들면 어떤 것이 다시 내려받을 수 있는 캐시인지 같은 것입니다.

Claude Code에서 무엇을 지울 수 있는지 묻기: AI가 Hoard로 스캔을 돌린 뒤, Hoard가 안전하게 지울 수 있다고 표시한 것, AI가 사람의 확인이 필요하다고 판단한 것, 남겨 두기를 권하는 것의 세 그룹으로 나눔
Claude Code에서 ‘뭘 지울 수 있어?’라고 묻기: Hoard가 이유가 붙은 목록을 내고, AI가 자기 판단을 덧붙입니다(데모 폴더)

사람은 눈으로 큰 것을 찾고, AI는 물어서 목록을 받습니다. 뒤에 있는 건 같은 한 번의 스캔입니다.

과정

첫 버전 이후의 기능은 AI가 댓글을 읽고 골랐습니다

첫 버전이 쓸 만해진 뒤, AI에게 Hacker News와 Reddit에서 Mac 디스크 도구를 이야기한 댓글 약 1,600개(2026년 10월)를 읽게 했습니다. 칭찬받는 점은 따라 하고, 불만이 나오는 점은 피했습니다.

가장 많이 나온 바람은 ‘지난번 스캔 이후로 무엇이 커졌나’였습니다. Hoard에는 마침 ‘최근 변화’라는 기능이 이미 있어서, 설명의 첫 번째 항목으로 옮겼습니다.

최근 변화: 지난번 스캔과 비교해 커진 것, 작아진 것, 새로 생긴 것, 없어진 것
최근 변화: 지난번 스캔과 비교해 무엇이 커지고, 작아지고, 새로 생기고, 사라졌는지

아직 못 한 몇 가지는 이후 버전에서 채웠습니다. ‘시스템 데이터’에서 측정할 수 있는 부분, 예를 들어 스왑 파일, 스냅샷, 읽을 수 없는 폴더를 따로 떼어 냈습니다. Finder에서 오른쪽 클릭으로 Hoard에서 열 수 있고, 목록은 CSV로 내보낼 수 있습니다. 알 수 없는 크기는 모두 ‘알 수 없음’으로 표시하고 0으로 쓰지 않습니다.

‘지울 수 있는 것’ 페이지: 보이지 않는 공간 카드에 가상 메모리, 다른 볼륨, 스냅샷, 읽을 수 없는 폴더가 나열되고, 아래에 이유가 붙은 정리 제안이 있음
‘보이지 않는 공간’: 스왑 파일, 스냅샷, 다른 볼륨, 읽을 수 없는 폴더가 각각 얼마나 차지하는지. 아래는 이유가 붙은 정리 제안

첫 버전 이후에 보탠 세부 사항은 대부분 이 댓글들에서 나왔습니다.

오픈소스

이런 도구는 돈을 받기 어려워서, 오픈소스로 했습니다

유료로 할지도 생각해 봤지만, 생각할수록 어색했습니다. Hoard가 하는 일은 말로 설명할 수 있습니다. 스캔하고, 지도를 그리고, 목록을 보여 주는 것. 그 설명을 어떤 AI 에이전트에게 줘도 그대로 다시 만들 수 있고, 이 앱을 바로 리버스 엔지니어링할 수도 있습니다.

그래서 MIT 라이선스로 오픈소스로 공개했습니다. 대신 얻는 것은 다른 종류입니다. 누군가 가져다 쓰고, 문제를 알려 주고, 방법을 나눕니다. 제가 만든 것이 실제로 쓸 만한지도 다른 사람들이 볼 수 있습니다. 저에게는 그 신뢰가 라이선스 비용보다 쌓아 갈 가치가 있습니다.

오픈소스에도 대가가 있습니다. 유지 보수가 공개된다는 점입니다. README에는 ‘최선을 다해 유지 보수’라고 적었고, issue 답변 시간은 약속하지 않습니다.

돈을 받아도 다시 만드는 것은 막을 수 없지만, 오픈소스는 적어도 교류를 얻습니다.

사용해 보기

써 보기 전에 알아 두면 좋은 세 가지

  • Apple 공증을 받지 않아서(공증에는 유료 개발자 계정이 필요합니다) 처음 열 때 차단됩니다. ‘개인정보 보호 및 보안’에서 ‘확인 없이 열기’를 눌러야 합니다.
  • 디스크 전체를 스캔하려면 ‘전체 디스크 접근 권한’이 필요하고, 업데이트할 때마다 다시 허용해야 합니다.
  • Apple 실리콘용으로만 빌드했고, Intel Mac에서는 테스트하지 않았습니다.
brew install operonlab/tap/hoard

이 세 가지가 괜찮다면, 설치해서 자기 디스크를 한 번 스캔해 볼 수 있습니다.

이 부분을 가져가세요

AI 에이전트에게 복사하기

누가 공간을 차지하는지 먼저 보고, 지울지는 그다음에 정합니다.

Hoard가 내 Mac에 맞는지 알고 싶다면, 아래 내용을 AI에게 붙여 넣고 실제 환경에 맞춰 판단하게 해 보세요.

# AI 에이전트에게 복사하기 먼저 이 글을 읽어 주세요: https://blog.joneshong.com/ko/blog/hoard-disk-map 글에서는 macOS용 디스크 용량 도구 Hoard를 소개합니다. 명령줄에는 이런 명령이 있습니다: - hoard doctor: 의존하는 macOS 기능을 점검 - hoard scan ~ --top 10: 가장 큰 폴더 - hoard stale ~ --days 180 --min-size 50MB: 반년 동안 열지 않은 큰 파일 - hoard diff: 지난번 스캔과 비교해 늘어난 것 - hoard hidden: ‘시스템 데이터’ 중 측정할 수 있는 부분 모든 명령에 --json을 붙이면 JSON으로 출력합니다. 다음을 평가해 주세요: 1. 먼저 내 Mac이 macOS 14 이상, Apple 실리콘인지, Homebrew가 설치되어 있는지 확인합니다. 2. 조건에 맞으면 Homebrew로 설치하고 hoard doctor와 hoard scan ~ --top 10 --json을 실행합니다. 3. 가장 큰 폴더 세 개가 무엇인지, 그중 어떤 것이 다시 만들 수 있는 캐시로 보이는지 알려 줍니다. 내 컴퓨터가 조건에 맞지 않거나 디스크 공간이 애초에 부족하지 않다면, 필요 없다고 바로 말해 주세요. 억지로 설치하지 않아도 됩니다.

더 읽을거리

자료중요한 이유
operonlab/hoard소스 코드, 설치 방법, 4개 언어 README. 본문의 속도와 기능을 여기서 확인할 수 있습니다.
손에 있는 도구와 사용량 한도를 잘 활용하기: 여러 에이전트에 일을 나눠 맡겨 본 시도Hoard의 코드는 이 분업 방식으로 썼습니다. 누가 작업 카드를 쓰고, 누가 구현하고, 누가 리뷰하는지.
✦ 프롬프트 복사