# Homebrew 안전하게 정리하기

> Homebrew의 동적 경로를 측정하고, cleanup과 autoremove를 미리 본 뒤, 자동 정리가 이미 하는 일을 이해한다.

Published: 2026-06-25 | Updated: 2026-08-08

Homebrew는 예전보다 이전 버전과 캐시된 다운로드를 더 적극적으로 관리합니다.
자동 정리가 꺼져 있지 않다면, 설치와 업그레이드가 해당 formula를 정리하고,
Homebrew는 주기적으로 모든 formula를 정리합니다. 오래 사용한 설치 환경에도
다운로드, 고정(pinned) 버전, 빌드 산출물, 의존성이 쌓일 수 있습니다.
prefix 아래를 삭제하기 전에 Homebrew 자체의 메타데이터를 먼저 확인하세요.

## Homebrew가 남겨 두는 것

세 종류의 잔여물이 쌓입니다.

- **이전 버전.** 정리는 보통 대체된 버전을 제거하지만, 유지된 버전이나
  최근에 업그레이드한 버전은 한동안 Cellar에 남을 수 있습니다.
- **다운로드된 아카이브.** bottle과 cask 다운로드는 모두 Homebrew 캐시에
  저장되며, 다시 받지 않도록 보관됩니다.
- **사용하지 않는 의존성.** 현재 Homebrew의 정리와 제거 작업은 보통
  더 이상 필요 없는 formula를 제거합니다. 다만 자동 제거가 꺼져 있으면
  그렇지 않습니다. 오래된 설치나 중단된 작업 때문에 일부가 남을 수 있습니다.

다운로드 캐시 크기는 다음과 같이 바로 확인할 수 있습니다.

```
brew --cache
du -sh "$(brew --cache)" 2>/dev/null
```

## 정리하는 방법

다음 메인 명령 한 번으로 이전 버전을 제거하고 다운로드 캐시를 정리합니다.

```
brew cleanup
```

[현재 Homebrew 매뉴얼](https://docs.brew.sh/Manpage#cleanup-options-formulacask-)에
따르면, 일반 cleanup은 기본적으로 이전에 설치된 버전과 120일이 지난 다운로드를
제거합니다. `HOMEBREW_CLEANUP_MAX_AGE_DAYS`로 그 기간을 바꿀 수 있습니다. 미리
보려면 `-n`을 사용하세요. 더 깊은 `-s` 모드는 현재 설치된 formula와 cask용
다운로드는 남기면서 캐시된 다운로드를 더 많이 정리합니다.

```
brew cleanup -n
brew cleanup -s
```

Homebrew cleanup과 uninstall은 이제 기본적으로 사용하지 않는 formula 의존성을
제거합니다. 그 의존성 판단을 직접 확인하고 싶을 때 `brew autoremove`가 여전히
유용합니다.

```
brew autoremove --dry-run
brew autoremove
```

`brew list`는 설치된 패키지를, `brew outdated`는 대기 중인 업데이트를 보여 줍니다.
경로를 `/opt/homebrew`처럼 고정하지 말고 `brew --cellar`, `brew --caskroom`,
`brew --cache`로 확인하세요. Intel과 Apple silicon 설치 경로는 다릅니다.

## 설계상 안전한 이유

Homebrew cleanup은 Cellar 디렉터리를 손으로 지우는 것보다 위험이 낮습니다.
버전과 의존성 메타데이터를 사용하기 때문입니다. 그래도 롤백용 버전이나
오프라인에서 쓰려던 캐시 bottle을 제거할 수 있습니다. cleanup과 autoremove를
모두 미리 보고, 고정했거나 운영상 중요한 버전은 의도적으로 유지하세요.

## 내부 구조: Cellar, Caskroom, cleanup 판단 방식

Homebrew는 각 formula를 `brew --cellar`가 보고하는 Cellar의 버전별 디렉터리에
설치한 뒤, 활성 버전을 prefix에 링크합니다. 업그레이드는 심볼릭 링크를 다시
가리키기 전에 새 버전을 이전 버전 옆에 둡니다. Cask는 Caskroom 아래에 버전별
메타데이터를 두고, 앱 번들은 보통 `/Applications`에 둡니다. 다운로드는
`brew --cache`가 보고하는 경로를 쓰며 Homebrew 정책에 따라 보관됩니다.
`brew cleanup`은 현재가 아닌 디렉터리를 전부 지우지 않고, 설치된 버전·보관
기간·의존성 메타데이터를 사용합니다. `brew autoremove`는 의존성만 다루는
부분을 별도 명령으로 노출합니다. 둘 다 추측이 아니라 Homebrew 자체 기록을
기준으로 동작하므로, 폴더를 수동으로 지우는 것보다 안전하고 설명하기 쉽습니다.
구형 툴체인이나 오프라인 bottle에 의존하는 기기에서는 미리 보기가 여전히
유용합니다.

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/homebrew-cellar.webp" width="1360" height="454" loading="lazy" alt="Homebrew Cellar이 formula의 이전 버전과 현재 버전을 담고 bin 심볼릭 링크는 현재 버전에 있으며, 정리는 대체된 버전과 오래된 캐시 다운로드를 제거합니다">
  <figcaption>Homebrew는 버전별 Cellar 항목, 활성 링크, 캐시된 다운로드를 추적합니다. Cleanup은 이 메타데이터로 대체된 산출물을 골라 제거합니다.</figcaption>
</figure>

## 다른 도구가 멈춰야 하는 지점

디스크 맵이나 cleaner는 Homebrew 캐시를 드러내고 크기를 보여 줄 수 있습니다.
[Mole](https://mole.fit/)도 그 범주를 표시할 수 있지만, Cellar 버전과 의존성 관계에서는
Homebrew 자체 명령이 권위 있는 기준입니다. 발견과 소유를 혼동하지 마세요.

## 안전한 작업 순서

Homebrew 경로 명령으로 저장소를 측정하고, `brew cleanup -n`으로 미리 본 뒤,
`-s`를 고려하기 전에 일반 cleanup을 실행하세요. `brew autoremove`는 캐시가
아니라 의존성 질문에 답하므로 따로 미리 보세요. 자동 정리가 동작 중이고
디스크 압박이 크지 않다면 고정된 정리 일정은 필요 없습니다.

---

Canonical HTML page: https://mole.fit/ko/blog/how-to-clean-up-homebrew-mac
Blog index for agents: https://mole.fit/ko/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
