맥북 교체 시 Brewfile로 개발환경 한 번에 복원하는 방법

새 맥북을 샀거나 포맷했을 때 개발환경을 다시 세팅하는 일은 정말 귀찮은 작업이에요. 하나씩 프로그램을 다운받고, 설정하고, 버전 맞추고... 하루 종일 걸리던 이 작업을 단 한 줄의 명령어로 끝낼 수 있다면 어떨까요?




Homebrew Bundle이란 무엇인가요?


Homebrew Bundle은 맥에 설치된 모든 패키지와 앱을 하나의 파일로 관리하는 도구예요. 쉽게 말해 개발환경의 설계도를 만들어주는 기능이죠.

# 현재 설치된 모든 것을 Brewfile로 저장
brew bundle dump --file=~/Brewfile --force


이 명령어 하나로 VS Code, Docker, Node.js, Python 등 설치했던 모든 개발 도구가 텍스트 파일에 기록돼요. Brewfile은 이런 모습이에요:

# Brewfile 예시
tap "homebrew/bundle"
tap "homebrew/cask"

# 개발 도구들
brew "git"
brew "node"
brew "python@3.11"
brew "docker"

# GUI 앱들  
cask "visual-studio-code"
cask "iterm2"
cask "postman"
cask "slack"

# Mac App Store 앱
mas "Xcode", id: 497799835


새 맥북에서 복원하는 과정


새 맥북을 받았다면 이렇게 진행해요. 정말 간단해요.


1. Homebrew 설치하기

# Homebrew 설치 (Apple Silicon, Intel 모두 가능)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Apple Silicon Mac이라면 PATH 설정
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"


2. Brewfile로 모든 것 복원하기


기존 맥에서 만든 Brewfile을 새 맥으로 복사한 후:

# Brewfile에 있는 모든 것을 한 번에 설치
brew bundle --file=~/Brewfile


이게 전부예요. 커피 한 잔 마시고 오면 개발환경이 그대로 복원되어 있어요.


완전 자동화 쉘 스크립트 만들기


더 나아가서 이 모든 과정을 자동화할 수도 있어요. setup.sh 파일을 만들어보죠:

#!/bin/bash
# setup.sh - 맥 개발환경 자동 설정 스크립트

echo "🚀 맥 개발환경 설정을 시작합니다..."

# 1. Homebrew 설치 확인 및 설치
if ! command -v brew &> /dev/null; then
    echo "📦 Homebrew를 설치합니다..."
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    # Apple Silicon Mac PATH 설정
    if [[ $(uname -m) == "arm64" ]]; then
        echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
        eval "$(/opt/homebrew/bin/brew shellenv)"
    fi
else
    echo "✅ Homebrew가 이미 설치되어 있습니다"
fi

# 2. Brewfile 다운로드 (GitHub에서)
echo "📥 Brewfile을 다운로드합니다..."
curl -o ~/Brewfile https://raw.githubusercontent.com/YOUR_USERNAME/dotfiles/main/Brewfile

# 3. Brewfile 기반 패키지 설치
echo "⚙️ 패키지들을 설치합니다..."
brew bundle --file=~/Brewfile

echo "✨ 개발환경 설정이 완료되었습니다!"


이제 새 맥에서 이 스크립트 하나만 실행하면 돼요:

bash setup.sh


버전 고정이 필요한가요?


Brewfile은 기본적으로 패키지 이름만 저장하고 버전은 저장하지 않아요. 복원할 때는 최신 버전이 설치되죠.


대부분의 경우 이렇게 해도 문제없어요. 하지만 특정 버전이 꼭 필요하다면 이렇게 명시할 수 있어요:

# Brewfile에서 버전 고정하기
brew "node@18"  # Node.js 18 버전
brew "python@3.9"  # Python 3.9 버전


일반적인 개발환경에서는 버전 고정 없이도 안정적으로 복원돼요. 운영 환경과 정확히 일치시켜야 한다면 Docker나 가상환경을 함께 사용하는 게 더 나은 방법이에요.


자주 놓치는 설정들 함께 백업하기


Brewfile만으로는 부족한 부분들이 있어요. 이런 것들도 함께 관리해야 해요:


dotfiles 관리하기

# dotfiles 저장소 만들기
mkdir ~/dotfiles
cd ~/dotfiles

# 중요한 설정 파일들 복사
cp ~/.zshrc ./
cp ~/.gitconfig ./
cp -r ~/.ssh ./ssh_backup  # SSH 키는 조심해서 백업

# GitHub에 푸시
git init
git add .
git commit -m "Initial dotfiles"
git remote add origin https://github.com/YOUR_USERNAME/dotfiles
git push -u origin main


mackup으로 앱 설정 동기화

# mackup 설치
brew install mackup

# 설정 백업
mackup backup  # iCloud나 Dropbox에 자동 백업

# 새 맥에서 복원
mackup restore


mackup은 VS Code 설정, iTerm2 프로파일, Git 설정 등을 자동으로 백업하고 복원해줘요.


팀 단위로 활용하기


팀 전체가 동일한 개발환경을 사용해야 한다면 공용 Brewfile을 만들어요:

# team-brewfile
# 팀 필수 도구들
brew "git"
brew "docker"
brew "kubectl"
brew "terraform"

# 팀 표준 에디터
cask "visual-studio-code"

# 커뮤니케이션 도구
cask "slack"
cask "zoom"


신규 팀원이 들어오면:

# 팀 저장소 클론
git clone https://github.com/team/dev-setup
cd dev-setup

# 팀 표준 환경 설치
brew bundle --file=./team-brewfile


온보딩 시간이 하루에서 30분으로 줄어들어요.


30분 안에 복원이 끝나는 이유


왜 이렇게 빠를까요? Homebrew의 효율적인 설계 덕분이에요.


병렬 처리로 여러 패키지를 동시에 다운로드하고, 의존성을 자동으로 계산해서 최적화된 순서로 설치해요. 게다가 macOS에 최적화되어 있어서 네이티브 환경에서 빠르게 작동하죠.


무엇보다 사람이 개입할 필요가 없어요. 클릭하고, 기다리고, 다시 클릭하는 과정이 없으니 시간 낭비가 없는 거예요.


실전 활용 팁


개발환경 이식을 더 완벽하게 하려면 이렇게 해보세요:

# 전체 백업 스크립트 만들기
#!/bin/bash

# 1. Brewfile 생성
brew bundle dump --file=~/backup/Brewfile --force

# 2. dotfiles 백업
cp ~/.zshrc ~/backup/
cp ~/.gitconfig ~/backup/

# 3. VS Code 익스텐션 목록 저장
code --list-extensions > ~/backup/vscode-extensions.txt

# 4. npm 전역 패키지 목록
npm list -g --depth=0 > ~/backup/npm-global.txt

echo "백업 완료! ~/backup 폴더를 확인하세요"


복원할 때는:

# VS Code 익스텐션 복원
cat ~/backup/vscode-extensions.txt | xargs -L 1 code --install-extension

# npm 전역 패키지 복원
npm install -g $(cat ~/backup/npm-global.txt | grep -v npm | awk '{print $2}' | tr '\n' ' ')


Brewfile과 쉘 스크립트를 활용하면 맥북 교체가 더 이상 스트레스가 아니에요. 개발환경을 코드처럼 관리하면, 언제든 동일한 환경을 재현할 수 있죠.


시간을 아끼고 실수를 줄이는 가장 확실한 방법이에요. 지금 바로 brew bundle dump 명령어로 여러분의 개발환경을 백업해보세요.


Node.js와 zx 라이브러리로 쉘 스크립트 쉽게 짜는 법