Homebrew란?
Homebrew는 macOS(및 Linux)에서 가장 널리 사용되는 패키지 관리자입니다. 공식 저장소에 수천 개의 CLI 도구와 GUI 애플리케이션이 등록되어 있으며, 터미널 명령 한 줄로 설치/업데이트/삭제할 수 있습니다. CLI 도구는 Formula, GUI 앱은 Cask라는 이름으로 구분됩니다.
이 글에서는 Homebrew 설치, Formula/Cask 관리, tap, Brewfile을 이용한 환경 백업/복원을 정리합니다.
Homebrew 설치
Homebrew는 공식 설치 스크립트로 설치합니다. Xcode Command Line Tools가 자동으로 함께 설치됩니다.
# Homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Apple Silicon Mac (M1/M2/M3/M4)은 설치 후 PATH 설정 필요
# 설치 스크립트가 안내하는 명령어 실행:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
# 설치 확인
brew --version
# 출력 예시: Homebrew 4.4.10
# 시스템 상태 진단
brew doctor
# 출력: Your system is ready to brew.
Intel Mac은 /usr/local/, Apple Silicon Mac은 /opt/homebrew/에 설치됩니다.
Formula (CLI 도구) 관리
Formula는 소스에서 빌드되거나 미리 컴파일된 CLI 도구입니다.
# 패키지 검색
brew search node
# 출력 예시:
# ==> Formulae
# node node@20 node@22 nodenv
# ==> Casks
# nodebox
# 패키지 정보 확인
brew info node
# 출력: 버전, 의존성, 설치 경로, 옵션 등
# 패키지 설치
brew install git
brew install node
brew install python@3.12
brew install go
# 설치된 패키지 목록
brew list
# 출력: ca-certificates gettext git libuv node openssl ...
# 패키지 상세 목록 (버전 포함)
brew list --versions
# 출력:
# git 2.44.0
# node 22.12.0
# python@3.12 3.12.8
Cask (GUI 앱) 관리
Cask는 macOS 네이티브 앱(.app)을 관리합니다. App Store 대신 Homebrew로 앱을 설치하면 업데이트 관리가 편리합니다.
# GUI 앱 설치
brew install --cask visual-studio-code
brew install --cask iterm2
brew install --cask docker
brew install --cask firefox
brew install --cask rectangle # 창 관리 도구
brew install --cask raycast # Spotlight 대체
# Cask 목록 확인
brew list --cask
# 출력: docker firefox iterm2 visual-studio-code ...
# Cask 정보 확인
brew info --cask visual-studio-code
# 출력: 버전, 홈페이지, 설치 경로 등
# Cask 삭제 (앱 제거)
brew uninstall --cask firefox
패키지 업데이트와 정리
# Homebrew 자체 업데이트
brew update
# Formula/Cask 정의를 최신으로 갱신
# 업데이트 가능한 패키지 확인
brew outdated
# 출력 예시:
# git (2.43.0) < 2.44.0
# node (22.11.0) < 22.12.0
# 특정 패키지 업그레이드
brew upgrade git
# 모든 패키지 업그레이드
brew upgrade
# 이전 버전 정리 (디스크 공간 확보)
brew cleanup
# 30일 이상 된 이전 버전 삭제
# 정리될 용량 미리 확인
brew cleanup --dry-run
# 출력 예시: Would remove 1.2GB of old files
Tap (서드파티 저장소)
tap은 Homebrew 공식 저장소에 없는 패키지를 추가 저장소에서 설치하는 기능입니다.
# tap 추가
brew tap hashicorp/tap # HashiCorp 도구 (Terraform 등)
brew tap homebrew/cask-fonts # 개발용 폰트
# tap에서 패키지 설치
brew install hashicorp/tap/terraform
brew install --cask font-jetbrains-mono-nerd-font
# 등록된 tap 목록
brew tap
# 출력:
# hashicorp/tap
# homebrew/cask
# homebrew/cask-fonts
# homebrew/core
# tap 제거
brew untap hashicorp/tap
Brewfile로 환경 백업/복원
Brewfile은 설치된 패키지 목록을 파일로 관리하는 기능입니다. 새 Mac에서 동일한 개발 환경을 빠르게 복원할 수 있습니다.
# 현재 설치된 패키지를 Brewfile로 내보내기
brew bundle dump --file=~/Brewfile --force
# --force: 기존 파일 덮어쓰기
생성된 Brewfile의 내용은 다음과 같습니다.
# ~/Brewfile
# tap 저장소
tap "homebrew/cask-fonts"
tap "hashicorp/tap"
# CLI 도구 (Formula)
brew "git"
brew "node"
brew "python@3.12"
brew "go"
brew "jq"
brew "wget"
brew "ripgrep"
brew "fzf"
brew "bat" # cat 대체 (구문 강조)
brew "eza" # ls 대체 (아이콘/색상)
brew "zoxide" # cd 대체 (스마트 이동)
brew "lazygit" # Git TUI 클라이언트
# GUI 앱 (Cask)
cask "visual-studio-code"
cask "iterm2"
cask "docker"
cask "rectangle"
cask "raycast"
cask "arc"
cask "font-jetbrains-mono-nerd-font"
# Mac App Store 앱 (mas 필요)
# mas "Xcode", id: 497799835
# mas "Magnet", id: 441258766
# Brewfile로 일괄 설치 (새 Mac에서)
brew bundle --file=~/Brewfile
# 모든 tap, formula, cask가 순서대로 설치됨
# 설치 상태 확인
brew bundle check --file=~/Brewfile
# 출력: The Brewfile's dependencies are satisfied.
# Brewfile에 없는 패키지 확인 (정리 대상)
brew bundle cleanup --file=~/Brewfile
# Brewfile에 명시되지 않은 패키지 목록 표시
# Brewfile에 없는 패키지 삭제
brew bundle cleanup --file=~/Brewfile --force
서비스 관리
Homebrew로 설치한 백그라운드 서비스(DB, 캐시 등)를 관리할 수 있습니다.
# PostgreSQL 설치 및 서비스 시작
brew install postgresql@16
brew services start postgresql@16
# 서비스 목록 확인
brew services list
# 출력 예시:
# Name Status User File
# postgresql@16 started user ~/Library/LaunchAgents/...
# Redis 서비스 관리
brew install redis
brew services start redis # 시작 (로그인 시 자동 시작)
brew services stop redis # 중지
brew services restart redis # 재시작
# 일회성 실행 (자동 시작 없이)
brew services run redis
실전 팁
- Brewfile을 Git으로 관리: dotfiles 저장소에 Brewfile을 포함시키면 새 Mac 설정이
brew bundle한 줄로 끝남 - Cask 우선: App Store 대신 Cask로 앱을 설치하면
brew upgrade --cask로 일괄 업데이트 가능 - 주간 업데이트:
brew update && brew upgrade && brew cleanup을 주 1회 실행하여 보안 패치 적용 - brew doctor: 문제 발생 시
brew doctor로 시스템 상태를 진단하면 해결 방법을 안내해줌 - 버전 고정: 특정 버전이 필요하면
brew pin node로 업그레이드 방지 가능 - Apple Silicon 호환: 대부분의 Formula가 ARM 네이티브로 빌드됨. 간혹 Rosetta 2가 필요한 경우
arch -x86_64 brew install 패키지명으로 설치