Alert

์ด ๊ธ€์€ Claude Code์˜ ๋„์›€์„ ๋ฐ›์•„ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

TL;DR

zerobrew๋Š” Homebrew์˜ Rust ๊ธฐ๋ฐ˜ ๋Œ€์•ˆ์œผ๋กœ, ๋™์ผํ•œ ํŒจํ‚ค์ง€๋ฅผ 5~20๋ฐฐ ๋น ๋ฅด๊ฒŒ ์„ค์น˜ํ•œ๋‹ค. ๊ธฐ์กด brew ๋ช…๋ น์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š” drop-in ๊ตฌ์กฐ์ด๋ฉฐ, Homebrew์™€ ๋ณ„๋„ ๊ฒฝ๋กœ(/opt/zerobrew)์—์„œ ๋™์ž‘ํ•˜๋ฏ€๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณ‘ํ–‰ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

1. ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๊ฐ€ ๋А๋ฆฐ ์ด์œ 

macOS์—์„œ ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๋Œ€๋ถ€๋ถ„ Homebrew(brew)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ Homebrew๋Š” Ruby๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ณ , ํŒจํ‚ค์ง€ ์„ค์น˜ ์‹œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ถ”์ถœํ•˜๋Š” ๊ตฌ์กฐ๋ผ ์ฒด๊ฐ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.

ํŠนํžˆ ์•„๋ž˜ ์ƒํ™ฉ์—์„œ ๋‹ต๋‹ตํ•จ์„ ๋А๋ผ๊ฒŒ ๋œ๋‹ค.

  • brew install์ด ์ˆ˜์‹ญ ์ดˆ~์ˆ˜ ๋ถ„ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ
  • brew update ์ž์ฒด๊ฐ€ ๋А๋ฆฐ ๊ฒฝ์šฐ
  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํŒจํ‚ค์ง€ ์„ค์น˜๊ฐ€ ๋ณ‘๋ชฉ์ด ๋˜๋Š” ๊ฒฝ์šฐ

์ด๋Ÿฐ ๋ฌธ์ œ์˜ ๊ทผ๋ณธ ์›์ธ์€ Homebrew์˜ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋‚˜ ์บ์‹ฑ ์ตœ์ ํ™”์— ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


2. zerobrew๋ž€

zerobrew๋Š” Homebrew์˜ drop-in ๋Œ€์ฒด CLI ๋„๊ตฌ๋‹ค. Rust๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, Homebrew์˜ ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(CDN)๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์„ค์น˜ ๊ณผ์ •๋งŒ ์ตœ์ ํ™”ํ•œ๋‹ค.

ํ•ต์‹ฌ ํŠน์ง•

  • Homebrew formulae๋ฅผ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉ (Homebrew ๋””๋ ‰ํ† ๋ฆฌ์— ์“ฐ์ง€ ์•Š์Œ)
  • ๋ณ„๋„ ๊ฒฝ๋กœ(/opt/zerobrew)์— ์„ค์น˜๋˜์–ด Homebrew์™€ ์ถฉ๋Œ ์—†์ด ๋ณ‘ํ–‰ ๊ฐ€๋Šฅ
  • ๊ธฐ์กด brew ๋ช…๋ น์–ด๋ฅผ zb๋กœ ๋Œ€์ฒดํ•ด์„œ ์‚ฌ์šฉ

Python ์ƒํƒœ๊ณ„์—์„œ uv๊ฐ€ pip/poetry๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํฌ์ง€์…”๋‹์ด๋‹ค. ๋‘˜ ๋‹ค Rust ๊ธฐ๋ฐ˜์ด๊ณ , ๊ธฐ์กด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด์„œ ์„ค์น˜ ์†๋„๋งŒ ๊ทน์ ์œผ๋กœ ๊ฐœ์„ ํ•œ๋‹ค.


3. ์™œ ๋น ๋ฅธ๊ฐ€

zerobrew๊ฐ€ ์†๋„๋ฅผ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฒ•๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Content-addressable store (SHA-256): ๊ฐ™์€ ๋‚ด์šฉ์˜ ํŒŒ์ผ์€ ํ•œ ๋ฒˆ๋งŒ ์ €์žฅํ•œ๋‹ค. ์ด๋ฏธ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์ฆ‰์‹œ ์žฌ์‚ฌ์šฉํ•œ๋‹ค.
  • APFS clonefile (Copy-on-Write): macOS์˜ APFS ํŒŒ์ผ์‹œ์Šคํ…œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด์„œ ํŒŒ์ผ ๋ณต์‚ฌ ์—†์ด ๋งํฌ๋งŒ ์ƒ์„ฑํ•œ๋‹ค. ๋””์Šคํฌ I/O๋ฅผ ์ตœ์†Œํ™”ํ•œ๋‹ค.
  • ๋ณ‘๋ ฌ ๋‹ค์šด๋กœ๋“œ: ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋ฅผ ๋™์‹œ์— ๋‚ด๋ ค๋ฐ›๋Š”๋‹ค.
  • ์ŠคํŠธ๋ฆฌ๋ฐ ์ถ”์ถœ/๋งํ‚น: ๋‹ค์šด๋กœ๋“œ์™€ ์ถ”์ถœ์„ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • HTTP ์บ์‹ฑ: ์ด๋ฏธ ๋ฐ›์€ ํŒจํ‚ค์ง€ ์ •๋ณด๋ฅผ ๊ณต๊ฒฉ์ ์œผ๋กœ ์บ์‹ฑํ•œ๋‹ค.

์„ฑ๋Šฅ ์ˆ˜์น˜

  • Cold install (์ฒ˜์Œ ์„ค์น˜): ์•ฝ 5๋ฐฐ ๋น ๋ฆ„
  • Warm install (์บ์‹œ ์žˆ์„ ๋•Œ): ์•ฝ 20๋ฐฐ ๋น ๋ฆ„
  • Re-install: ๊ฑฐ์˜ ์ฆ‰์‹œ ์™„๋ฃŒ

4. ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•

# ์„ค์น˜
curl -fsSL https://raw.githubusercontent.com/lucasgelfond/zerobrew/main/install.sh | bash
# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• (brew ๋Œ€์‹  zb)
zb install ripgrep
zb install bat
zb uninstall ripgrep

Homebrew์™€ ๋ณ‘ํ–‰ ์‚ฌ์šฉ ๊ถŒ์žฅ

zerobrew๋Š” ์•„์ง ์‹คํ—˜์ ์ธ ํ”„๋กœ์ ํŠธ๋‹ค. Homebrew๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๊ณ  ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋ณ‘ํ–‰ ์‚ฌ์šฉ์ด ์•ˆ์ „ํ•˜๋‹ค. zerobrew๋Š” /opt/zerobrew์— ๋…๋ฆฝ์ ์œผ๋กœ ์„ค์น˜๋˜๋ฏ€๋กœ ๊ธฐ์กด Homebrew ํ™˜๊ฒฝ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

TUI ์—†์Œ

zerobrew๋Š” ์ˆœ์ˆ˜ CLI๋งŒ ์ œ๊ณตํ•œ๋‹ค. taproom ๊ฐ™์€ TUI๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ brew ๋ช…๋ น์„ ํ˜ธ์ถœํ•˜๋Š” ๊ตฌ์กฐ์ด๋ฏ€๋กœ zerobrew์™€ ์ง์ ‘ ์—ฐ๋™๋˜์ง€ ์•Š๋Š”๋‹ค.


5. Linux์—์„œ์˜ ์ฐจ์ด์ 

Linux์—์„œ๋„ zerobrew๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ APFS clonefile์€ macOS ์ „์šฉ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ์ด ์ตœ์ ํ™”๋Š” ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋ณ‘๋ ฌ ๋‹ค์šด๋กœ๋“œ ๋“ฑ ๋‚˜๋จธ์ง€ ์ตœ์ ํ™”๋Š” ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.

  • ์„ค์น˜ ๊ฒฝ๋กœ: ~/.local/share/zerobrew

6. ์ฐธ๊ณ