Photo by Ales Nesetril on Unsplash

์ด ๊ธ€์€ Notion ์•ฑ ์œผ๋กœ ์ž‘์„ฑํ•œ ํŽ˜์ด์ง€์—์„œ๋„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๐Ÿ“š Contents


  1. ๐Ÿฆ€ Setting up Shell
    1. oh-my-zsh
    2. plugins
  2. ๐Ÿบ Homebrew
    1. ๐Ÿบ brew
    2. ๐Ÿป brew cask
      1. โœ with font
    3. ๐Ÿ“ฆ bundle
    4. โŒจ๏ธ Frequently used commands

๐Ÿ™ˆ TL;DR


โ—๏ธ์ด ๊ธ€์€ ๊ณผ๋„ํ•˜๊ฒŒ oh-my-zsh ๊ณผ homebrew ์„ ์˜์—…ํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค
์˜์—…ํ•ด์•ผ ํ•˜๋‹ˆ๊นŒ ๋‘ ๊ฐ€์ง€์˜ ์‚ฌ์šฉ๋ฒ•๋„ ์นœ์ ˆํ•˜๊ฒŒ ์ ์–ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿถ

๐Ÿฆ€ Setting up Shell


์…ธ(shell, ๋ฌธํ™”์–ด: ์‰˜, ์ž๋ นํ•ด์„ํ”„๋กœ๊ทธ๋žจ)์€ ์šด์˜ ์ฒด์ œ ์ƒ์—์„œ ๋‹ค์–‘ํ•œ ์šด์˜ ์ฒด์ œ ๊ธฐ๋Šฅ๊ณผ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

์…ธ(๊ป๋ฐ๊ธฐ์˜ ์˜์–ด ๋‹จ์–ด)์€ ์‚ฌ์šฉ์ž์™€ ์šด์˜ ์ฒด์ œ์˜ ๋‚ด๋ถ€(์ปค๋„) ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ์‹ธ๋Š” ์ธต์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿฌํ•œ ์ด๋ฆ„์ด ๋ถ™์—ˆ๋‹ค.

Shell ์€ ์šด์˜์ฒด์ œ ์ข…์†์ ์ธ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
๋ณดํŽธ์ ์œผ๋กœ๋Š” sh, bash, zsh, fish ๋“ฑ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
(๋ณดํ†ต์˜ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์—์„œ ๊ธฐ๋ณธ Shell ์€ bash ํ™˜๊ฒฝ ์ž…๋‹ˆ๋‹ค๋งŒ, docker ๋“ฑ์—์„œ ๊ฒฝ๋Ÿ‰ํ™”๋ฅผ ์œ„ํ•ด sh ๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค)

๐Ÿฆ oh-my-zsh

๐ŸŽฌ Installation Process (curl, git, zsh ์˜ ์„ค์น˜๊ฐ€ ์„ ํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค)
install-oh-my-zsh.gif
์„ค์น˜ ์žฌํ˜„์„ ์œ„ํ•ด docker ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค!

์„ค์น˜๋Š” Github์˜ curl ๋˜๋Š” wget ๋ช…๋ น์„ ๋ณต์‚ฌํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. (Mac OS ๋Š” ๊ธฐ๋ณธ์œผ๋กœ curl, git ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)

๋งŒ์•ฝ Zsh is not installed! Please install zsh first! ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด
homebrew ๋ฅผ ํ†ตํ•ด zsh ์„ ๋จผ์ € ์„ค์น˜ ํ•ด์ฃผ์„ธ์š”
(๋ณดํ†ต์€ oh-my-zsh ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ zsh ๋˜ํ•œ ๊ฐ™์ด ์„ค์น˜ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)

๐Ÿฆ oh-my-zsh plugins

oh-my-zsh ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒˆ๋“ค ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชฉ๋ก์€ ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
(๋˜๋Š” ~/.oh-my-zsh/plugins ๋””๋ ‰ํ† ๋ฆฌ ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค)

๊ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๊ธฐ๋Šฅ ๋˜ํ•œ ๋ฒˆ๋“ค ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชฉ๋ก ๋งํฌ์—์„œ ํ™•์ธํ•˜์„ธ์š”!

๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ค์„ ์„ค์น˜ํ•ด ๋ณผ๊ฒŒ์š”

1. zsh-autosuggestions
์ด์ „์— ์ž…๋ ฅํ–ˆ๋˜ ๋ช…๋ น์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž๋™์™„์„ฑ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค

๐ŸŽฌ Usage
zsh-autosuggestions.gif
๐ŸŒˆ echo ๋ช…๋ น์œผ๋กœ ์ž…๋ ฅ ํ–ˆ์—ˆ๋˜ ๊ฐ€์žฅ ์ตœ๊ทผ ๋ช…๋ น์–ด์˜ ์ž๋™ ์™„์„ฑ์„ ์ถ”์ฒœ ํ•ด์ค๋‹ˆ๋‹ค

2. fast-syntax-highlighting
Shell ๋ช…๋ น์–ด๋ฅผ ํ•˜์ด๋ผ์ดํŠธ ์‹œ์ผœ ์ค๋‹ˆ๋‹ค

๐ŸŽฌ Usage
fast-syntax-highlighting.gif
๐ŸŒˆ echo 'Hello World' ๊ฐ€ ํ•˜์ด๋ผ์ดํŠธ ๋ฉ๋‹ˆ๋‹ค

3. zsh-completions
zsh ์—์„œ ๋” ๋งŽ์€ ์ž๋™ ์™„์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค
(์‚ฌ์‹ค ์„ค์น˜ ํ›„์— ์ •ํ™•ํ•œ ์ฒด๊ฐ์€ ๋ชปํ–ˆ์ง€๋งŒ ๊ทธ๋ ‡๋‹ค ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜…)

๐Ÿบ Homebrew


๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์ด์ง€๋งŒ Mac OS ์˜ โœจ ์•ŒํŒŒ์ด์ž โญ๏ธ ์˜ค๋ฉ”๊ฐ€๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค!
์ €๋Š” ์ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ubuntu ์˜ apt, apt-get ๊ณผ ๋Œ€์‘๋˜๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
(apt install โ†’ brew install, apt-get install โ†’ brew cask install)

brew ๋ฅผ ํ†ตํ•ด์„œ๋Š”, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹Œ background ์—์„œ ๋™์ž‘ํ•˜๋Š” (์œˆ๋„์šฐ ๊ธฐ์ค€) ์„œ๋น„์Šค ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•˜๊ณ 
brew cask ๋ฅผ ํ†ตํ•ด์„œ๋Š”, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ (๊ณผ ํฐํŠธ)๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๐Ÿบ brew

์œ„์—์„œ ๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผ python, mysql, mongod, zsh ๋“ฑ ์„œ๋น„์Šค ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค
๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค

$ brew install [์„ค์น˜ํ• -ํ”„๋กœ๊ทธ๋žจ-์ด๋ฆ„]
$ brew install mysql  # mysql ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค

# ๋งŒ์•ฝ unstable ํ•œ ์ตœ์‹  ๋ฒ„์ „ ์„ค์น˜๋ผ๋ฉด
$ brew install mysql --HEAD

๋งŒ์•ฝ ์„ค์น˜ํ•  ํ”„๋กœ๊ทธ๋žจ์˜ ์ •ํ™•ํ•œ ์ด๋ฆ„์ด ์• ๋งคํ•˜๋‹ค๋ฉด
(์˜ˆ๋ฅผ ๋“ค์–ด, postgres ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ
postresql ์ธ์ง€, postgres ์ธ์ง€ ์• ๋งคํ•˜๋‹ค๋ฉด)

$ brew search postgres  # ๋ถ€๋ถ„ ๋งค์นญ๋„ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ™•์‹คํ•˜๋‹ค ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ ๊นŒ์ง€๋งŒ ์šฐ์„  ๊ฒ€์ƒ‰

==> Formulae
check_postgres  postgres-xc     postgresql โœ”    postgresql@9.4  postgresql@9.5  postgresql@9.6  postgrest

==> Casks
navicat-for-postgresql                 postgres                               sqlpro-for-postgres
photo-supreme-postgresql               postgrespreferencepane

๊ทธ๋Ÿผ ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜๋ฅผ ์„ค์น˜ํ•ด ๋ณผ๊ฒŒ์š”
postgresql ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์น˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

์ˆœ์„œ๋Š”,

  1. ๋จผ์ € ์ •ํ™•ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋ช…์„ ์ฐพ๊ณ 
  2. ์„ค์น˜ํ•˜๊ณ 
  3. postgresql ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค (์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉด, ์ ‘์†์ด ์•ˆ๋˜๊ฒ ์ฃ ?)
  4. psql ๋ช…๋ น์„ ์ด์šฉํ•ด ์ ‘์†ํ•˜๊ณ , ํ…Œ์ด๋ธ” ๋ชฉ๋ก์„ ํ™•์ธํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค

๐ŸŽฌ ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๊ณผ์ •
install-postgresql-via-homebrew.gif
๐ŸŒˆ ์„ค์น˜๊ฐ€ ๋„ˆ๋ฌด ๊ฐ„ํŽธํ•˜์ง€ ์•Š๋‚˜์š”? ์ •๋ง ์–ด-์ธ ํ•ฉ๋‹ˆ๋‹ค

์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์„ค์น˜ํ•˜๊ณ , ์‹คํ–‰ ํ™•์ธ ํ•˜์˜€์Šต๋‹ˆ๋‹ค

# ๋จผ์ € ์ •ํ™•ํ•œ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค
$ brew search postgres
==> Formulae
check_postgres  postgres-xc     postgresql โœ”    postgresql@9.4  postgresql@9.5  postgresql@9.6  postgrest

==> Casks
navicat-for-postgresql                 postgres                               sqlpro-for-postgres
photo-supreme-postgresql               postgrespreferencepane

# ๊ฒ€์ƒ‰๋œ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์— ๋”ฐ๋ผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค
$ brew install postgresql
==> Downloading https://homebrew.bintray.com/bottles/postgresql-10.5.mojave.bottle.1.tar.gz
Already downloaded: /Users/doondoony/Library/Caches/Homebrew/downloads/29b2f1f97b0e7e040ca1f0497e209cc26dcf6fe38b21f675932a2dbbc46927dc--postgresql-10.5.mojave.bottle.1.tar.gz
==> Pouring postgresql-10.5.mojave.bottle.1.tar.gz
==> Caveats
To migrate existing data from a previous major version of PostgreSQL run:
  brew postgresql-upgrade-database

To have launchd start postgresql now and restart at login:
  brew services start postgresql  # ์—ฌ๊ธฐ ์นœ์ ˆํ•˜๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค!
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start
==> Summary
๐Ÿบ  /usr/local/Cellar/postgresql/10.5: 1,705 files, 20.8MB

# postgresql ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค
$ brew services start postgresql
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)

# psql ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค
$ psql -U doondoony -d postgres # ์—ฌ๋Ÿฌ๋ถ„์€ ์—ฌ๋ ค๋ถ„์˜ ํ˜ธ์ŠคํŠธ๋ช…์„ doondoony ๋Œ€์‹  ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ผ์š”!

psql (10.5)
Type "help" for help.

postgres=# \dt *.*  # ํ…Œ์ด๋ธ” ๋ชฉ๋ก ์กฐํšŒ
postgres=# \q  # ๋‚˜๊ฐ€๊ธฐ

# ์„ค์น˜๋œ postgresql ๋ฒ„์ „ ํ™•์ธ

$ psql --version
psql (PostgreSQL) 10.5

๐Ÿป brew cask

brew cask ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” VSCode, Postman ๋“ฑ์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„
ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด ๋ฐ›์ง€ ์•Š๊ณ ๋„(!) ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๋ช…๋ ์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค

$ brew cask [์„ค์น˜ํ• -์‘์šฉ-ํ”„๋กœ๊ทธ๋žจ-์ด๋ฆ„]

์‘์šฉํ”„๋กœ๊ทธ๋žจ๋„ ํ•˜๋‚˜ ์„ค์น˜ํ•ด ๋ณผ๊ฒŒ์š”
Microsoft์—์„œ ๋งŒ๋“  ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋“ค์˜ ์นœ๊ตฌ Visual Studio Code ๋ฅผ ์„ค์น˜ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

์ˆœ์„œ๋Š”,

  1. Visual Studio Code ํ”„๋กœ๊ทธ๋žจ์˜ ์ •ํ™•ํ•œ ๋ช…์นญ์„ ์šฐ์„  ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค
  2. ๊ฒ€์ƒ‰๋œ ํ”„๋กœ๊ทธ๋žจ๋ช…์œผ๋กœ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค
  3. open ๋ช…๋ น์–ด๋กœ ์„ค์น˜๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

๐ŸŽฌ ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๊ณผ์ •
install-visual-studio-code-via-brew-cask.gif
๐ŸŒˆ ์„ค์น˜ ๊ณผ์ • ์žฌ์—ฐ์„ ์œ„ํ•ด vscode ๋ฅผ ์ง€์› ์Šต๋‹ˆ๋‹ค.......

์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์„ค์น˜ํ•˜๊ณ , ์‹คํ–‰์„ ํ™•์ธํ–ˆ์–ด์š”!

$ brew search vscode
No formula or cask found for "vscode".  # ์ด๋Ÿฐ! vscode๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์ด ์•„๋‹Œ๊ฐ€ ๋ด์š”

$ brew search code
==> Formulae
autocode           eccodes            gnu-barcode        objc-codegenutils  qrencode           woboq_codebrowser
codec2             echoprint-codegen  iso-codes          osslsigncode       recode             xcodegen
codemod            fdk-aac-encoder    liberasurecode     pcb2gcode          rxvt-unicode       yydecode
codequery          gecode             lolcode            php-code-sniffer   swagger-codegen
color-code         geocode-glib       mp3unicode         pycodestyle        tivodecode

==> Casks
appcode                                font-eeyek-unicode                     font-sourcecodepro-nerd-font
avidcodecsle                           font-encodesans                        font-sourcecodepro-nerd-font-mono
avocode                                font-encodesans-condensed              font-vazir-code
cocos-code-ide                         font-encodesans-expanded               gifloopcoder
codekit                                font-encodesans-semicondensed          hindenburg-prx-encoder
codelite                               font-encodesans-semiexpanded           jclasslib-bytecode-viewer
coderunner                             font-envy-code-r                       key-codes
dcp-o-matic-encode-server              font-fira-code                         open-in-code
font-anka-coder                        font-firacode-nerd-font                paintcode
font-camingocode                       font-firacode-nerd-font-mono           polycode
font-code                              font-junicode                          qlcolorcode
font-code2000                          font-miao-unicode                      teacode
font-code2001                          font-new-athena-unicode                unicodechecker
font-code2002                          font-office-code-pro โœ”                 visual-studio-code
font-codenewroman-nerd-font            font-source-code-pro โœ”                 visual-studio-code-insiders
font-codenewroman-nerd-font-mono       font-source-code-pro-for-powerline
font-courier-prime-code                font-source-han-code-jp

# ์ €๊ธฐ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์— visual-studio-code ๊ฐ€ ์žˆ๋„ค์š”!

$ brew cask install visual-studio-code
==> Satisfying dependencies
==> Downloading https://az764295.vo.msecnd.net/stable/7f3ce96ff4729c91352ae6def877e59c561f4850/VSCode-darwin-stable.
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'visual-studio-code'.
==> Installing Cask visual-studio-code
==> Moving App 'Visual Studio Code.app' to '/Applications/Visual Studio Code.app'.
==> Linking Binary 'code' to '/usr/local/bin/code'.
๐Ÿบ  visual-studio-code was successfully installed!

$ open /Applications/Visual\ Studio\ Code.app  # ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜๋˜๋ฉด /Applications ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ž˜ ์„ค์น˜๋˜์—ˆ๊ตฐ์š”!

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ ์‚ญ์ œ๋„ ๊ฐ„ํŽธํ•ด์ ธ์š”!

$ brew cask list  # ๋‚ด๊ฐ€ brew cask ๋กœ ์„ค์น˜ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋ชฉ๋ก ํ™•์ธ
$ brew cask uninstall visual-studio-code  # ์‚ญ์ œ
==> Uninstalling Cask visual-studio-code
==> Backing App 'Visual Studio Code.app' up to '/usr/local/Caskroom/visual-studio-code/1.28.2,7f3ce96ff4729c91352ae6
==> Removing App '/Applications/Visual Studio Code.app'.
==> Unlinking Binary '/usr/local/bin/code'.
==> Purging files for version 1.28.2,7f3ce96ff4729c91352ae6def877e59c561f4850 of Cask visual-studio-code

๐Ÿ“ with font

ํ˜น์‹œ ํฐํŠธ๋„ ์ธํ„ฐ๋„ท์—์„œ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐ›์•„์„œ Font Book ์— ๋„ฃ์œผ์…จ๋‚˜์š”?
brew cask ๋กœ ํฐํŠธ๋„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๐ŸŽฌ ์„ค์น˜ ๊ณผ์ •
install-font-fira-code-via-brew-cask.gif
๐ŸŒˆ Fira Code ํฐํŠธ๋ฅผ cli ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋‹ˆ ์ •๋ง ์–ด-์ธ ํ•ฉ๋‹ˆ๋‹ค

FiraCode ๋ผ๋Š” ์œ ๋ช…ํ•œ ์„œ์ฒด๋ฅผ ์„ค์น˜ํ•ด ๋ณผ๊ฒŒ์š”!

$ brew search fira
==> Casks
homebrew/cask-fonts/font-fira-code                         homebrew/cask-fonts/font-fira-mono-for-powerline
homebrew/cask-fonts/font-fira-mono                         homebrew/cask-fonts/font-fira-sans

# ๋ฐœ๊ฒฌ! font-fira-code ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค
$ brew cask install font-fira-code
Error: Cask 'font-fira-code' is unavailable: No Cask with this name exists.  # ์—ฅ?

์—ฅ... ๋ฌธ์ œ๊ฐ€ ์žˆ๋„ค์š”! No Cask with this name exists ๋ผ๋Š” ๋ฌธ์ œ๋ฅผ ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•ด ๋ด…๋‹ˆ๋‹ค
๋ณ„๋กœ ๋„์›€ ๋ ๋งŒํ•œ ์ •๋ณด๊ฐ€ ์—†๋Š”๊ฑฐ ๊ฐ™์•„์š” ๐Ÿ˜ญ

์„ค์น˜๊ฐ€ ์•ˆ๋˜๋Š” ์ด์œ ๋Š” font-fira-code ์•ž์— ์žˆ๋Š” homebrew/cask-fonts ์— ๊ทธ ํžŒํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
font๋Š” ์จ๋“œ ํŒŒํ‹ฐ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์—์„œ ์„ค์น˜ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์ถ”๊ฐ€์ ์œผ๋กœ homebrew/cask-fonts ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค

# repository ๋“ฑ๋ก์€ tap ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค
$ brew tap homebrew/cask-fonts
==> Tapping homebrew/cask-fonts
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-fonts'...
remote: Enumerating objects: 1205, done.
remote: Counting objects: 100% (1205/1205), done.
remote: Compressing objects: 100% (745/745), done.
remote: Total 1205 (delta 761), reused 549 (delta 457), pack-reused 0
Receiving objects: 100% (1205/1205), 232.72 KiB | 56.00 KiB/s, done.
Resolving deltas: 100% (761/761), done.
Tapped 1182 casks (1,223 files, 1.1MB).

๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋“ฑ๋กํ–ˆ์œผ๋‹ˆ, ๋‹ค์‹œ ํฐํŠธ ์„ค์น˜๋ฅผ ์‹œ๋„ํ•ด๋ณผ๊ฒŒ์š”

$ brew cask install font-fira-code
Updating Homebrew...
==> Satisfying dependencies
==> Downloading https://github.com/tonsky/FiraCode/releases/download/1.206/FiraCode_1.206.zip
==> Verifying SHA-256 checksum for Cask 'font-fira-code'.
==> Installing Cask font-fira-code
==> Moving Font 'FiraCode-Bold.otf' to '/Users/doondoony/Library/Fonts/FiraCode-Bold.otf'.
==> Moving Font 'FiraCode-Light.otf' to '/Users/doondoony/Library/Fonts/FiraCode-Light.otf'.
==> Moving Font 'FiraCode-Medium.otf' to '/Users/doondoony/Library/Fonts/FiraCode-Medium.otf'.
==> Moving Font 'FiraCode-Regular.otf' to '/Users/doondoony/Library/Fonts/FiraCode-Regular.otf'.
==> Moving Font 'FiraCode-Retina.otf' to '/Users/doondoony/Library/Fonts/FiraCode-Retina.otf'.
๐Ÿบ  font-fira-code was successfully installed!

์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋˜๋„ค์š”! Font Book ์—์„œ ์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์„ธ์š”

# ๐Ÿ˜Ž ์งœ์ž” ์„ค์น˜ ์™„๋ฃŒ!
$ ls ~/Library/fonts | grep Fira
FiraCode-Bold.otf
FiraCode-Light.otf
FiraCode-Medium.otf
FiraCode-Regular.otf
FiraCode-Retina.otf

tap์„ ์ทจ์†Œํ•˜๋ ค๋ฉด, tap ํ–ˆ๋˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ untap ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

$ brew untap homebrew/cask-fonts
Untapping homebrew/cask-fonts...
Untapped 1182 casks (1,224 files, 1.1MB).

๐Ÿ“ฆ bundle

homebrew ๋Š” ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ž…๋‹ˆ๋‹ค
์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๊ฐ€ ์žˆ์ฃ ...? ๋ฐ”๋กœ npm ์ž…๋‹ˆ๋‹ค!
npm ์œผ๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ์„ค์น˜ํ•˜๋ฉด package.json ํŒŒ์ผ์— ๊ธฐ๋ก๋˜๊ณ 
package.lock ํŒŒ์ผ์— ์„ค์น˜ ํ™˜๊ฒฝ์ด ๋‚จ๋Š”๋ฐ์š”

homebrew ์—๋„ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ brew bundle ์ž…๋‹ˆ๋‹ค!
brew bundle ๊ธฐ๋Šฅ์„ ํ†ตํ•ด, brew ์™€ brew cask ๋กœ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„
Brewfile ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์•„๋ž˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

$ brew bundle dump

์œ„ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ง€๊ธˆ๊นŒ์ง€ homebrew ๋กœ ์„ค์น˜ํ•œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ
ํ˜„์žฌ ๊ฒฝ๋กœ์— Brewfile ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค

Brewfile ์— ์ž˜ ์ €์žฅ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณผ๊นŒ์š”?

$ cat Brewfile
tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/cask-fonts"
tap "homebrew/cask-versions"
tap "homebrew/core"
tap "homebrew/services"
brew "ffmpeg"
brew "fzf"
...

๋งŒ์•ฝ Brewfile ์„ ๋งŒ๋“  ๋’ค์— ๋ช‡ ๊ฐ€์ง€ ํŒจํ‚ค์ง€๋ฅผ ๋” ์„ค์น˜ํ•˜๊ณ , Brewfile ๋ชฉ๋ก์„ ๊ฐฑ์‹ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด
--force ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค

$ brew bundle dump --force  # Brewfile์— ๋‚ด์šฉ์„ ๋ฎ์–ด์”Œ์›๋‹ˆ๋‹ค

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ์ €์žฅํ•œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์€ ์–ธ์ œ ์“ธ๊นŒ์š”?
๋งฅ๋ถ์„ ํฌ๋งทํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•˜๊ฒ ์ฃ ? ๋˜๋Š” ํšŒ์‚ฌ์— ๋‚ด PC์™€ ๊ฐ™์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด
Brewfile ๋งŒ ๋ณต์‚ฌํ•ด์„œ ์„ค์น˜ํ•˜๋ฉด, ์ผ์ผ์ด ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€ ์ฐพ์•„๋‹ค๋‹ˆ๊ณ  ํ•˜๋Š” ์ˆ˜๊ณ  ์—†์ด
์•„๋ž˜ ๋ช…๋ น์–ด๋งŒ ์ž…๋ ฅํ•˜๊ณ , โ˜•๏ธ ์ปคํ”ผ ํ•œ ์ž” ๋งˆ์‹œ๊ณ  ์˜ค์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค

# Brewfile ์ด ์žˆ๋Š” ๊ฒฝ๋กœ์—์„œ
$ brew bundle

์ €๋Š” ํฌ๋งท์„ ์ž์ฃผํ•˜๋Š” ์ด์ƒํ•œ ๋ณ‘์ด ์žˆ์–ด์„œ, ๊ต‰์žฅํžˆ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

โŒจ๏ธ Frequently used commands

homebrew ๋ช…๋ น์–ด ์ค‘์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์กฐ๊ธˆ ์†Œ๊ฐœ ํ•ด๋“œ๋ฆด๊ฒŒ์š”
install๊ณผ search๋Š” ์œ„์—์„œ ๋งŽ์ด ๋“ฑ์žฅํ•ด์„œ ์„ค๋ช…์€ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค!

1. uninstall
์˜๋ฏธ ๊ทธ๋Œ€๋กœ ์„ค์น˜ํ•œ ๊ฒƒ๋“ค์„ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค

$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/10.5... (1,705 files, 20.8MB)

install ๊ณผ uninstall ๋’ค์— ์ธ์ž๋Š” ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ํ•œ ๋ฒˆ์— ์„ค์น˜ํ•˜๊ณ  ์ง€์šฐ๋Š” ๊ฒŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!)

$ brew cask uninstall font-fira-code visual-studio-code
==> Uninstalling Cask font-fira-code
==> Backing Font 'FiraCode-Bold.otf' up to '/usr/local/Caskroom/font-fira-code/1.206/otf/FiraCode-Bold.otf'.
==> Removing Font '/Users/doondoony/Library/Fonts/FiraCode-Bold.otf'.
==> Backing Font 'FiraCode-Light.otf' up to '/usr/local/Caskroom/font-fira-code/1.206/otf/FiraCode-Light.otf'.
==> Removing Font '/Users/doondoony/Library/Fonts/FiraCode-Light.otf'.
==> Backing Font 'FiraCode-Medium.otf' up to '/usr/local/Caskroom/font-fira-code/1.206/otf/FiraCode-Medium.otf'.
==> Removing Font '/Users/doondoony/Library/Fonts/FiraCode-Medium.otf'.
==> Backing Font 'FiraCode-Regular.otf' up to '/usr/local/Caskroom/font-fira-code/1.206/otf/FiraCode-Regular.otf'.
==> Removing Font '/Users/doondoony/Library/Fonts/FiraCode-Regular.otf'.
==> Backing Font 'FiraCode-Retina.otf' up to '/usr/local/Caskroom/font-fira-code/1.206/otf/FiraCode-Retina.otf'.
==> Removing Font '/Users/doondoony/Library/Fonts/FiraCode-Retina.otf'.
==> Purging files for version 1.206 of Cask font-fira-code
==> Uninstalling Cask visual-studio-code
==> Backing App 'Visual Studio Code.app' up to '/usr/local/Caskroom/visual-studio-code/1.28.2,7f3ce96ff4729c91352ae6
==> Removing App '/Applications/Visual Studio Code.app'.
==> Unlinking Binary '/usr/local/bin/code'.
==> Purging files for version 1.28.2,7f3ce96ff4729c91352ae6def877e59c561f4850 of Cask visual-studio-code

2. cleanup

์ด์ „ ๋ฒ„์ „์˜ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ homebrew ์—์„œ๋Š” ์ง€์šฐ์ง€ ์•Š๊ณ  ๋ณด๊ด€ํ•˜๋Š”๋ฐ
๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋“ค์˜ ๊ฒฝ์šฐ์—๋Š” ์šฉ๋Ÿ‰์ด ํฌ๊ธฐ ๋•Œ๋ฌธ์—
์ฃผ๊ธฐ์ ์œผ๋กœ cleanup ํ•ด์ฃผ๋ฉด ๋ถˆํ•„์š”ํ•œ ํ•˜๋“œ ๋””์Šคํฌ ์šฉ๋Ÿ‰์„ ๋‹ค์‹œ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

$ brew cleanup  # 9์›” 30์ผ ์ดํ›„๋กœ brew cask cleanup ์€ brew cleanup ์œผ๋กœ ํ†ต์ผ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

3. upgrade

์„ค์น˜๋œ ํŒจํ‚ค์ง€๋“ค์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค

$ brew upgrade  # brew ๋กœ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ฉ๋‹ˆ๋‹ค
$ brew cask upgrade  # brew cask ๋กœ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ฉ๋‹ˆ๋‹ค

4. update

homebrew ์˜ ๋ฒ„์ „๊ณผ, formulae ์˜ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธ ํ•ฉ๋‹ˆ๋‹ค
formulae ๋Š” brew search ๋ฅผ ํ–ˆ์„ ๋•Œ
ํŒจํ‚ค์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” online package browser ์ž…๋‹ˆ๋‹ค!

$ brew update

5. prune

์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๊ฑฐ๋‚˜, ์˜ค๋ž˜๋œ Symbolic link ๋ฅผ ์ฐพ์•„์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค
brew install ๋กœ ์„ค์น˜ํ•˜๋ฉด, ์„ค์น˜๋œ ํŒจํ‚ค์ง€์˜ ์‹คํ–‰ ํŒŒ์ผ์„
/usr/local/bin ์— symlink ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ
๊ทธ symlink์˜ ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๊ณ  ์ •๋ฆฌํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค!
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ •๋ฆฌํ•ด ์ฃผ์‹œ๋Š” ํŽธ์ด ์ข‹์Šต๋‹ˆ๋‹ค!

$ brew prune

6. doctor

homebrew ๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค
homebrew ๋ฅผ ์‚ฌ์šฉํ•จ์— ์žˆ์–ด ๊ฐ–์ถฐ์ ธ์•ผ ํ•  ์กฐ๊ฑด์ด ๋น ์ ธ ์žˆ๊ฑฐ๋‚˜
์„ค์น˜๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ํ•˜๋Š” ๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ์Šค์Šค๋กœ ์ง„๋‹จํ•˜๊ณ 
๋ฌธ์ œ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ณดํ†ต ๊ฐ™์ด ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

$ brew doctor
Your system is ready to brew.  # ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋Š”๊ฒŒ ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค! ์•„๋ฌด ๋ฌธ์ œ ์—†๋‹ค๋Š” ๋œป์ด๊ฑฐ๋“ ์š”

7. list

์˜๋ฏธ ๊ทธ๋Œ€๋กœ ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค

$ brew list
$ brew cask list  # brew cask ๋กœ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋Š” ๋ณ„๋„๋กœ ๋ฆฌ์ŠคํŒ… ๋ฉ๋‹ˆ๋‹ค

์ด ์ •๋„๋ฉด ๊ฑฐ์˜ homebrew ์—์„œ ์‚ฌ์šฉ ํ•  ๋ฒ•ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ •๋ฆฌํ•œ ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค
์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ์‹œ๋ฉด brew commands ๋˜๋Š” ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”!

๐Ÿถ ๋งˆ์น˜๋ฉฐ


2016๋…„์— ํšŒ์‚ฌ์—์„œ ์ฒ˜์Œ ๋งฅ๋ถ ํ”„๋กœ 2014๋ฅผ ๋ฐ›๊ณ  ๋„ˆ๋ฌด ์ข‹์•„์„œ ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚ฉ๋‹ˆ๋‹ค!
(๊ทธ ๋•Œ๋Š” ๊ฐœ๋ฐœ์ž๋„ ์•„๋‹ˆ์—ˆ์—ˆ์ง€๋งŒ์š”)

ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜๋„, ์ง€์šฐ๋Š”๊ฒƒ๋„ ๋„ˆ๋ฌด ๋‚ฏ์„ค๊ณ  ์–ด๋ ค์› ์—ˆ๋Š”๋ฐ 2๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ
์ด๋ ‡๊ฒŒ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋˜ ๋„์›€์ด ๋˜๋Š” ๊ธ€์„ ์ ์„ ์ˆ˜ ์žˆ๋‹ค๋‹ˆ ๋ญ”๊ฐ€ ๊ธฐ๋ถ„์ด ๋ฌ˜ํ•˜๋„ค์š”

homebrew ๊ฐ€ ์™„๋ฒฝํ•œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋Š” ์•„๋‹™๋‹ˆ๋‹ค

์ž ๊น ์‚ฌ๋ก€๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด... nodejs ๋Š” homebrew ์™€ ์ž˜ ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค
nodejs ๋Š” homebrew ๋กœ ์„ค์น˜ ํ•˜์‹œ๋Š”๊ฑธ ์ถ”์ฒœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ์ถฉ๋Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

nodejs ๋ฅผ ๊ณต์‹ ํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ์„ค์น˜๋„ ํ•ด๋ณด๊ณ 
n ์ด๋ผ๋Š” ๋…ธ๋“œ ๋ฒ„์ „ ๋งค๋‹ˆ์ €๋„ ์‚ฌ์šฉํ•ด ๋ดค์—ˆ์ง€๋งŒ
์ €๋Š” nvm ์ด ์ œ์ผ ์•ˆ์ •์ ์ธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!
nvm ์„ ์‚ฌ์šฉํ•˜์„ธ์š”!

์—๋Ÿฌ๋ฅผ ์žฌํ˜„ํ•˜์ง€ ๋ชปํ•ด ์ด๋ ‡๊ฒŒ ๊ทผ๊ฑฐ์—†์ด ๋ง์”€๋“œ๋ฆฌ๋Š”๊ฒƒ ๊ฐ™์•„ ์ฃ„์†กํ•˜๋„ค์š”...
๊ฒฝํ—˜์— ์˜ํ•œ ์ถ”์ฒœ์ด๋‹ˆ ๋ฏฟ์ง€ ์•Š์œผ์…”๋„ ๋ฉ๋‹ˆ๋‹ค!

์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๊ทธ ๋ถ€๋ถ„์€ ๋‚ด๋ถ€ ๋™์ž‘์„ ์ž˜ ์•Œ๊ณ  ์‚ฌ์šฉํ•˜๋Š”๊ฑธ๋กœ ๋ณด์™„ํ•œ๋‹ค๋ฉด
ํ”„๋กœ๊ทธ๋žจ์„ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค

oh-my-zsh ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ zsh ์˜ ์™„๋ฒฝํ•œ ํŒŒํŠธ๋„ˆ๋Š” ์•„๋‹ˆ์ง€๋งŒ
fish ์™€ ์ˆœ์ • bash ๋ฅผ ์“ฐ๋ฉด์„œ ๊ฒฐ๊ตญ oh-my-zsh ๋กœ ๋Œ์•„์˜ค๊ฒŒ ๋˜๋”๋ผ๊ตฌ์š”

homebrew ๋„ oh-my-zsh ๋„ "์™€ ์ด๊ฑฐ ์™„์ „ ์ฉ”์–ด์š” ๊ผญ ์“ฐ์„ธ์š”!" ๋Š” ์•„๋‹™๋‹ˆ๋‹ค
์ด๋Ÿฐ ์„ค์ •์„ ๊ฐœ์ธ์˜ ์ทจํ–ฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•˜๋‚˜์— ๋งŒ์กฑ ํ•˜์‹œ๊ธฐ ๋ณด๋‹ค๋Š”
์ข‹๋‹ค๋Š”๊ฑฐ ๋‹ค ์จ๋ณด์‹œ๊ณ , ๋ณธ์ธ์—๊ฒŒ ๋งž๋Š” ์„ค์ •์„ ์ฐพ๋Š”๊ฒŒ ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค

์˜ค๋Š˜๋„ ๊ธด ๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
๋‹ค์Œ์—๋Š” iTerm ์กฐ๊ธˆ ๊พธ๋ฉฐ๋ณด๊ธฐ, ๊ดœ์ฐฎ์€ oh-my-zsh ํ…Œ๋งˆ
๋งฅ๋ถ ํ™˜๊ฒฝ์„ค์ •, ์“ธ๋งŒํ•œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๋ช‡ ๊ฐ€์ง€ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค