Mac 설정을 자동화하는 모든 방법, 작성할 YAML 양에 따라 순위 매김

발행: (2026년 2월 15일 오후 03:55 GMT+9)
10 분 소요
원문: Dev.to

Source: Dev.to

문제

나는 개인용 컴퓨터, 업무용 노트북, 대여용 기기, 그리고 파이썬 환경이 완전히 엉망이 돼서 새벽 2시에 드라이브를 완전 삭제했던 그때까지도, 인정하기 싫을 정도로 많은 맥을 설정해 왔습니다.

매번 같은 이야기가 반복됩니다:

  • 터미널을 열면 사막이 됩니다. git도 없고, node도 없고, docker도 없습니다.
  • Finder가 파일 확장자를 숨깁니다.
  • Dock이 자동 숨김이 되는데 시간이 너무 오래 걸립니다.
  • 모든 별칭(alias)이 사라집니다.

brew install을 두 시간 정도 하면 겨우 절반 정도의 도구만 복구됩니다. 일주일 뒤에 jq를 깜빡했다는 걸 깨닫고, 두 주 뒤에는 새 직장에서 모든 커밋이 “unknown”라고 표시됩니다. 왜냐하면 Git 이메일을 설정하지 않았기 때문이죠.

나는 이 문제를 해결하기 위해 모든 수준의 자동화를 시도해 보았습니다. 여기서 내가 발견한 것을 공유합니다.

당신의 설정은 생각보다 큽니다

한 번 세어보니 8개 카테고리83가지가 있었습니다:

카테고리예시
Package managerHomebrew (항상 첫 번째 단계)
CLI tools (30+)ripgrep, fd, fzf, bat, eza, lazygit, gh, jq, delta, zoxide
GUI apps (15+)VS Code, Warp, Raycast, Rectangle, OrbStack, Chrome, Arc…
Languages & runtimesNode, Go, Python, Rust, plus pnpm/uv/cargo
ShellOh‑My‑Zsh, Starship, plugins, your .zshrc
Dotfiles.gitconfig, .vimrc, .ssh/config
Git identityThe two lines everyone forgets every time
macOS preferencesdefaults write commands for Dock speed, Finder, key repeat

설정이 “그냥 Homebrew와 VS Code뿐”이라고 생각한다면, 약 70 % 정도 과소평가하고 있는 것입니다.

Source:

자동화 옵션

1. Brewfile

가장 간단한 옵션. Homebrew에 기본으로 포함되어 있습니다.

# Export
brew bundle dump --file=~/Brewfile

# Restore
brew bundle --file=~/Brewfile

저는 약 1년 동안 Brewfile을 사용했습니다—의존성이 없고 읽기 쉬우며, 레포에 넣어두기만 하면 끝납니다.

제한점: Homebrew 패키지만 처리합니다. 셸 설정, macOS 환경설정, Git 아이덴티티는 포함되지 않으며, 전체 작업 중 30 % 정도만 자동화됩니다.

2. Shell script

다음 단계. 모든 작업을 수행하는 Bash 스크립트를 작성합니다.

#!/usr/bin/env bash
set -euo pipefail

# Packages
brew install ripgrep fd bat fzf node go lazygit gh
brew install --cask visual-studio-code warp raycast

# macOS preferences
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
defaults write com.apple.dock autohide-delay -float 0

# Git identity
git config --global user.name  "Your Name"
git config --global user.email "you@example.com"

장점: 더 많은 영역을 커버합니다.
단점: 더 자주 깨집니다. 네트워크가 끊기면 스크립트가 중간에 멈출 수 있고, 다시 실행하면 “already installed” 경고가 뜹니다; Oh‑My‑Zsh가 불평할 수도 있으며, Git 설정이 기존 값을 덮어씁니다.

Reddit 사용자 중 한 명이 200줄짜리 버전을 올렸는데, 이는 다음을 증명합니다: 노트북을 설정하는 데 Bash 코드가 그렇게 많이 필요하다면 Bash가 적합한 도구가 아닐 수도 있습니다.

3. chezmoi

템플릿을 이용해 여러 머신에서 동일한 레포가 동작하도록 하는 dotfile 관리 도구이며, 비밀 정보를 암호화할 수도 있습니다.

chezmoi init --apply your-github-username

장점: 여러 머신/OS에서 사용하기 좋으며, dotfile을 깔끔하게 관리합니다.
단점: 소프트웨어 설치는 하지 않으므로 여전히 Brewfile이 필요합니다. 간단한 스크립트보다 학습 곡선이 높으며, 실제 dotfile을 설정하기보다 디렉터리 규칙을 배우는 데 더 많은 시간을 썼습니다.

4. nix-darwin

핵심 옵션. 전체 Mac을 선언형으로 구성합니다.

{ pkgs, ... }:

{
  environment.systemPackages = with pkgs; [
    ripgrep fd bat fzf nodejs go
  ];

  homebrew.casks = [
    "visual-studio-code"
    "warp"
  ];

  system.defaults.dock.autohide = true;
}

장점: 우아하고 단일 진실 원천이며, 롤백이 내장되어 있습니다.
단점: 학습 곡선이 가파릅니다; Nix 언어, 패키지 매니저, 철학을 이해해야 합니다. 저는 셸 로딩을 맞추기 위해 Nix 포럼에서 주말 내내 시간을 보냈습니다.

추천 대상: 이미 Nix 생태계에 있는 사람.
신규 사용자: 효과가 나타나기까지 1–2 주 정도 투자해야 합니다.

5. Ansible

Jeff Geerling의 mac‑dev‑playbook은 널리 쓰이는 Ansible 옵션입니다.

  • 장점: 멱등성(idempotent) 보장, 대규모 환경에 적합.
  • 단점: 개인 노트북에 VS Code를 설치하기 위해 기업 수준의 YAML을 작성하는 것이 어색합니다. 플레이북이 실패하면 오류 메시지가 서버 로그처럼 길고 복잡합니다.

추천 대상: 500대 이상의 기업용 노트북.
과잉 사용 대상: 한 명의 개발자.

Comparison Table

Feature / ToolBrewfileShell scriptchezmoinix-darwinAnsible
Packages
GUI apps
Shell configDIYDIY
macOS prefsDIY
DotfilesDIYDIY
Rollback
Idempotent
Learning curve5 min10 min1 hour1–2 weeks2–3 hours
Coverage~30 %~70 %~20 %~90 %~70 %

단일 도구로 모든 것을 커버할 수 없습니다. 대부분의 사람들은 두세 개를 조합해서 사용합니다.

나의 솔루션: OpenBoot

도구들을 뒤섞어 쓰는 것이 지겨워서 OpenBoot 를 만들었습니다 – 다음을 처리하는 TUI입니다:

  • 패키지 (Homebrew)
  • GUI 앱
  • 셸 설정
  • macOS 환경설정
  • Git 아이덴티티

물론 편향된 의견이지만, 위의 비교를 보면 어디에 들어가는지 알 수 있습니다.

2026 CLI 툴킷

이 도구들은 내가 보는 모든 설정에 계속 등장합니다:

CategoryTools
Search / Navigationripgrep, fd, fzf, zoxide
File viewingbat, eza
JSONjq
Gitdelta, lazygit
Othersgh (GitHub CLI), lazygit (interactive rebasing)

새로운 Mac을 처음부터 구축한다면, 이 도구들을 Brewfile(또는 동등한 파일)에 포함시키세요—수많은 시간을 절약할 수 있습니다.

2026 GUI 선택

VS Code는 여전히 확장성에서 최고입니다. Cursor는 실제로 나를 떠나게 만든 첫 번째 편집기입니다.

  • Warp – 터미널
  • Raycast – Alfred보다 우수 (클립보드 기록만으로도)
  • Rectangle – 창 관리, 무료

OrbStack이 Docker Desktop을 대체했고 내 팬들은 조용해졌습니다. 아직 Docker Desktop을 사용하고 있다면, 한번 시도해 보세요.

눈에 띈 최신 도구들

  • Ghostty – 엄청나게 빠른 네이티브 터미널
  • Zed – 대용량 파일에 최적
  • Ollama – 비행 중에도 사용할 수 있는 로컬 LLM
  • uv – 파이썬에 드디어 합리적인 패키지 매니저 등장
  • Bun – 일회성 스크립트에 Node를 대체

당신의 설정은 어떻게 되나요? nix-darwin을 일상적으로 사용하는 사람과 Brewfile만 사용하는 사람 비율이 궁금합니다. 그리고 아직도 mackup을 쓰는 사람이 있나요, 아니면 모두 다른 방법으로 옮겼나요?

코드 예시와 자세한 단계별 가이드가 포함된 전체 버전:
blog.fullstackjam.com/2026/mac-setup-automation-guide-2026

0 조회
Back to Blog

관련 글

더 보기 »