맥을 새로 사도 30분이면 원래대로 — Homebrew로 앱과 개발환경 관리하기
새 맥을 켠 첫날은 늘 비슷하다. 브라우저를 열고 앱 이름을 하나씩 검색해 내려받고, 개발 도구를 절반쯤 깔다가 지친다. 정작 예전 맥에 무엇이 들어 있었는지는 기억나지 않는다. Homebrew를 쓰면 이 과정이 명령 몇 줄로 줄어든다. 설치한 것들의 목록 자체를 파일로 남길 수 있기 때문이다.
핵심 요약
- Homebrew는 맥용 패키지 관리자다.
brew install로 명령줄 도구를,brew install --cask로 GUI 앱을 설치한다. - 설치·업데이트·삭제가 한 줄로 끝나고, 무엇을 깔았는지가 목록으로 남는다.
- Brewfile에 설치 상태를 저장해 두면 새 맥에서
brew bundle한 번으로 같은 환경을 되돌릴 수 있다. - 애플 실리콘과 인텔 맥은 설치 경로가 다르다. “명령을 찾을 수 없다”는 문제 대부분은 PATH 설정 때문이다.
- brew는 sudo로 실행하지 않는다. 모르는 저장소를 함부로 tap하지 않고, 중요한 작업 직전에는 업그레이드를 미룬다.
Homebrew는 무엇이고, 왜 손으로 깔지 않는가
Homebrew는 맥에서 소프트웨어를 설치하고 관리해 주는 패키지 관리자다. 리눅스의 apt가 하는 일을 맥에서 한다고 보면 된다. 다루는 대상은 크게 둘이다. 포뮬러(formula)는 명령줄 도구로, brew install wget처럼 쓰면 터미널에서 바로 쓸 수 있는 도구가 깔린다. 캐스크(cask)는 GUI 앱으로, brew install --cask 뒤에 앱 이름을 붙이면 dmg를 내려받아 열고 응용 프로그램 폴더로 옮기는 과정을 대신 해 준다.
손으로 깔아도 되는 일을 왜 명령으로 바꾸는가. 업데이트가 앱마다 흩어지지 않고, 삭제가 아이콘만 지우는 것보다 깔끔하다는 이유도 있지만 핵심은 따로 있다. 내가 무엇을 깔았는지가 기록으로 남는다는 점이다. 사람의 기억은 2년 뒤 새 맥을 살 때 도움이 되지 않지만, 목록 파일은 그때 그대로 남아 있다.
실제로 쓰는 명령은 여섯 개면 충분하다
문서에는 명령이 많지만 평소 쓰는 것은 몇 개로 정해진다. 역할별로 묶어 두면 헷갈리지 않는다.
brew install [이름]— 설치한다. GUI 앱이면--cask를 붙인다.brew list— 지금 깔린 것들을 보여준다.brew list --cask로 앱만 따로 볼 수 있다.brew info [이름]— 그게 무엇인지, 어떤 의존성이 딸려 오는지 알려준다. 처음 보는 이름은 설치 전에 이걸 먼저 본다.brew update— 패키지 목록을 갱신한다. 설치된 소프트웨어를 바꾸지는 않는다.brew upgrade— 설치된 것들을 최신 버전으로 올린다. 이름을 뒤에 붙이면 그것만 올린다.brew uninstall [이름]— 지운다.
update와 upgrade가 헷갈리기 쉬운데, 앞은 카탈로그를 새로 받아오는 일이고 뒤는 내 컴퓨터의 실물을 바꾸는 일이다. 무엇이 올라갈지 미리 보려면 brew outdated로 대상만 확인하면 된다.

Brewfile — 내 맥 설정서를 파일 하나로
실제로 시간을 아껴 주는 것은 Brewfile이다. 지금 설치된 상태를 텍스트 파일로 뽑아내는 명령이 있다.
brew bundle dump --describe --file=~/Brewfile
실행하면 홈 폴더에 Brewfile이 생긴다. 열어 보면 tap 목록, brew로 깔린 도구, cask로 깔린 앱이 한 줄씩 적혀 있고, --describe 덕분에 각 항목의 설명이 주석으로 함께 들어간다. 이미 같은 이름의 파일이 있으면 덮어쓰기에 별도 옵션을 요구하는데, 기존 파일을 잃고 싶지 않다면 --file 뒤 경로를 바꿔 새 이름으로 뽑는 편이 안전하다.
새 맥에서는 Homebrew를 설치한 뒤 이 파일을 같은 위치에 놓고 다음을 실행한다.
brew bundle --file=~/Brewfile
목록에 적힌 것들을 차례로 내려받아 설치한다. 대상이 많으면 시간이 걸리지만 사람이 붙어 있을 필요는 없고, 빠진 게 없는지는 brew bundle check --file=~/Brewfile으로 확인한다.
이 파일을 클라우드 폴더나 개인 저장소에 두면 사실상 내 맥 설정서가 된다. 다만 Brewfile은 앱 목록일 뿐 문서와 설정 파일까지 복원해 주지는 않는다. 개인 데이터는 타임머신이나 별도 백업으로 따로 챙겨야 한다.

애플 실리콘과 인텔, 설치 경로가 다르다
Homebrew는 맥의 칩 종류에 따라 다른 위치에 자리를 잡는다. 애플 실리콘 맥에서는 /opt/homebrew, 인텔 맥에서는 /usr/local이 기본이고, 실행 파일이 놓이는 폴더도 각각 /opt/homebrew/bin과 /usr/local/bin으로 갈린다.
이 차이 때문에 흔히 겪는 일이 “분명히 설치했는데 명령을 찾을 수 없다”는 상황이다. 셸이 해당 경로를 PATH에 갖고 있지 않으면 벌어진다. 설치가 끝날 때 이어서 실행하라고 안내하는 줄이 나오는데, 그 줄을 셸 설정 파일에 넣는 절차를 건너뛰면 이렇게 된다.
brew --prefix
echo $PATH
첫 줄은 Homebrew가 설치된 위치를, 둘째 줄은 셸이 실제로 뒤지는 경로 목록을 보여준다. 앞의 경로가 뒤의 목록에 없다면 PATH 설정이 빠진 것이다. 설정 파일 이름은 쓰는 셸에 따라 다르므로 설치 직후 출력된 안내 문구를 그대로 따르는 편이 가장 정확하다. 전반적인 점검은 brew doctor가 대체로 원인을 짚어 준다.
조심해야 할 것 — sudo, 업그레이드, cleanup
첫째, brew 명령을 sudo로 실행하지 않는다. Homebrew는 관리자 권한 없이 다룰 수 있는 위치에서 동작하도록 설계돼 있고, sudo로 실행하면 파일 소유권이 어긋나 이후 일반 명령이 권한 오류를 내기 시작한다. 한번 꼬이면 되돌리는 쪽이 더 번거롭다.
둘째, 업그레이드는 타이밍을 고른다. 언어 런타임이나 데이터베이스처럼 프로젝트가 특정 버전에 묶여 있으면 brew upgrade 한 번에 멀쩡하던 작업 환경이 깨질 수 있다. 마감이나 중요한 빌드 직전에는 미루고, 여유 있을 때 brew outdated로 대상을 확인한 뒤 필요한 것만 지정해 올리는 편이 안전하다. 버전을 고정하고 싶은 도구는 brew pin으로 대상에서 빼 둘 수 있다.
셋째, cleanup이 무엇을 지우는지 알고 쓴다. brew cleanup은 이전 버전의 잔여 파일과 내려받아 둔 설치 캐시를 정리해 공간을 돌려준다. 개인 문서를 건드리지는 않지만 예전 버전으로 되돌아갈 여지도 함께 사라지므로, brew cleanup --dry-run으로 지워질 목록을 먼저 확인한 뒤 실행하는 게 좋다.
넷째, 모르는 저장소를 tap하지 않는다. tap은 공식 목록 밖의 외부 저장소를 추가하는 기능이다. 저장소에 담긴 설치 스크립트는 결국 내 계정 권한으로 실행되는 코드이므로, 출처가 분명하지 않으면 추가하지 않는 것이 기본이다. 이런 작업 전에 타임머신 백업이 최근 것으로 남아 있는지 확인해 두면 마음이 편하다.
앱스토어 앱과 섞어 쓸 때의 정리 기준
맥에서 앱을 얻는 경로는 앱스토어, 개발사 사이트 직접 내려받기, Homebrew 세 갈래다. 문제가 생기는 지점은 같은 앱을 두 경로로 깔았을 때다. 업데이트가 따로 굴러가고 어느 쪽이 실행되는지도 헷갈리기 시작한다.
기준은 단순하다. 앱스토어 전용으로만 배포되는 앱은 앱스토어에, 그 외에는 가능하면 Homebrew에 몰아 두는 것이다. 앱스토어 앱은 계정에 구매 기록이 남으니 새 기기에서 다시 받기 어렵지 않고, 나머지는 Brewfile이 목록을 대신 기억해 준다. 이미 겹쳐 깔린 앱이 있다면 하나를 정리하되, 그 앱의 데이터가 어디에 저장되는지 먼저 확인하고 백업을 남긴 뒤 진행하는 게 좋다. 앱스토어 앱까지 목록에 담아 주는 별도 도구도 있지만 macOS 버전과 정책에 따라 동작이 제한될 수 있으니, 자동 복원이 안 될 수도 있다는 전제로 쓰는 편이 낫다.
참고: 설치 방법과 명령 옵션은 Homebrew 공식 문서(brew.sh)의 Documentation, 그중 Homebrew Bundle 및 FAQ 항목에서 확인할 수 있다. 옵션은 버전에 따라 달라질 수 있으므로 brew help와 man brew로 현재 설치된 버전의 설명을 함께 확인하기를 권한다.
썸네일 사진: Unsplash (CC0) / Wikimedia Commons.
작성 · Inkpipes 편집팀 — 맥·아이폰·자동화 도구를 실제로 써 보고 단계별로 정리합니다. 설정 화면·명칭은 OS 버전에 따라 다를 수 있습니다.