24 Zsh ํ”Œ๋Ÿฌ๊ทธ์ธ๐Ÿ”Œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž ๋ฐ DevOps ์—”์ง€๋‹ˆ์–ด ๐Ÿ–ฅ ๊ฐ€ 2025๋…„์— ์‚ฌ์šฉํ•ด์•ผ ํ• 

๋ฐœํ–‰: (2025๋…„ 12์›” 5์ผ ์˜คํ›„ 07:22 GMT+9)
8 min read
์›๋ฌธ: Dev.to

Source: Dev.to

24 Zsh ํ”Œ๋Ÿฌ๊ทธ์ธ๐Ÿ”Œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž & DevOps ์—”์ง€๋‹ˆ์–ด ๐Ÿ–ฅ ๊ฐ€ 2025๋…„์— ์‚ฌ์šฉํ•ด์•ผ ํ•  ํ”Œ๋Ÿฌ๊ทธ์ธ

์†Œ๊ฐœ

Zsh์™€ Oh My Zsh๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ฏธ ํ•œ ๋ฐœ ์•ž์„œ ์žˆ๋Š” ์…ˆ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„์˜ ์ „์ฒด ํž˜์„ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋‚˜์š”? ํ„ฐ๋ฏธ๋„์„ ์ƒ์‚ฐ์„ฑ ํŒŒ์›Œํ•˜์šฐ์Šค๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ „ ์š”๊ตฌ ์‚ฌํ•ญ

์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”:

  • Zsh ์„ค์น˜ โ€“ zsh --version ์œผ๋กœ ํ™•์ธ (๋ฒ„์ „โ€ฏ5.0 ์ด์ƒ ๊ถŒ์žฅ)
  • Oh My Zsh ์„ค์น˜ โ€“ ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์„ค์น˜:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • Git ์„ค์น˜ โ€“ ์ปค์Šคํ…€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํด๋ก ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค
  • ๊ธฐ๋ณธ ํ„ฐ๋ฏธ๋„ ์ง€์‹ โ€“ nano, vim ํ˜น์€ ์„ ํ˜ธํ•˜๋Š” ํŽธ์ง‘๊ธฐ๋กœ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

์„ค์ •์„ ํ™•์ธํ•˜๋ ค๋ฉด:

# Zsh ๋ฒ„์ „ ํ™•์ธ
zsh --version

# Oh My Zsh ์„ค์น˜ ์—ฌ๋ถ€ ํ™•์ธ
ls ~/.oh-my-zsh

# Git ํ™•์ธ
git --version

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ค‘์š”ํ•œ ์ด์œ 

Oh My Zsh์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋ณธ Zsh ์„ค์น˜๋Š” git ํ”Œ๋Ÿฌ๊ทธ์ธ๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘์€ ์ข‹์ง€๋งŒ, ์ง€๋Šฅํ˜• ์ž๋™ ์™„์„ฑ, ์œ ์šฉํ•œ ๋ณ„์นญ, ์ฃผ๋‹น ๋ช‡ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•ด ์ค„ ์ƒ์‚ฐ์„ฑ ๋‹จ์ถ•ํ‚ค ๋“ฑ์„ ๋†“์น˜๊ณ  ์žˆ๋Š” ์…ˆ์ž…๋‹ˆ๋‹ค.

์„ค์ • ๋ฐฉ๋ฒ•

๋จผ์ € ์ ˆ๋Œ€ ๋†“์น  ์ˆ˜ ์—†๋Š” ๋‘ ๊ฐœ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค:

  1. zsh-autosuggestions (Fishโ€‘๊ฐ™์€ ์ œ์•ˆ)
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
  1. zsh-syntax-highlighting (์‹ค์‹œ๊ฐ„ ๋ช…๋ น ๊ฒ€์ฆ)
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

๊ฐ•๋ ฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฆฌ์ŠคํŠธ

~/.zshrc ํŒŒ์ผ์„ ์—ด๊ณ  plugins=() ์„น์…˜์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค:

plugins=(
  # ๋ฒ„์ „ ๊ด€๋ฆฌ
  git

  # ํด๋ผ์šฐ๋“œ & ์ธํ”„๋ผ
  docker
  docker-compose
  kubectl
  helm
  terraform
  aws
  gcloud
  azure
  ansible

  # ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด & ๋„๊ตฌ
  python
  pip
  node
  npm
  yarn
  golang
  rust

  # ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ
  sudo              # ESC๋ฅผ ๋‘ ๋ฒˆ ๋ˆŒ๋Ÿฌ ์ด์ „ ๋ช…๋ น์— sudo ์ถ”๊ฐ€
  extract           # .tar, .zip, .gz ๋“ฑ ๋ชจ๋“  ์••์ถ• ํ•ด์ œ ์ง€์›
  z                 # ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋น ๋ฅด๊ฒŒ ์ด๋™
  history           # ํ–ฅ์ƒ๋œ ํžˆ์Šคํ† ๋ฆฌ ๋ช…๋ น
  command-not-found # ์—†๋Š” ๋ช…๋ น์— ๋Œ€ํ•ด ์„ค์น˜ ํŒจํ‚ค์ง€ ์ œ์•ˆ
  vscode            # VS Code ๋ณ„์นญ ๋ฐ ๋‹จ์ถ•ํ‚ค

  # ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ (๋งˆ์ง€๋ง‰์— ์œ„์น˜)
  zsh-autosuggestions
  zsh-syntax-highlighting
)

๊ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์—ญํ• 

ํด๋ผ์šฐ๋“œ & ์ธํ”„๋ผ ํ”Œ๋Ÿฌ๊ทธ์ธ

  • docker & docker-compose โ€“ ์ปจํ…Œ์ด๋„ˆ, ์ด๋ฏธ์ง€, compose ๋ช…๋ น ์ž๋™ ์™„์„ฑ
  • kubectl โ€“ Kubernetes ๋ช…๋ น ์ž๋™ ์™„์„ฑ ๋ฐ ์œ ์šฉํ•œ ๋ณ„์นญ (k โ†’ kubectl, kgp โ†’ kubectl get pods)
  • helm โ€“ Helm ์ฐจํŠธ ๊ด€๋ฆฌ ์ž๋™ ์™„์„ฑ
  • terraform โ€“ Terraform ๋ช…๋ น ์ž๋™ ์™„์„ฑ
  • aws / gcloud / azure โ€“ ๊ฐ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž CLI ์ž๋™ ์™„์„ฑ

์–ธ์–ด ํ”Œ๋Ÿฌ๊ทธ์ธ

  • python / pip โ€“ ํŒŒ์ด์ฌ ํ™˜๊ฒฝ ๋ฐ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋‹จ์ถ•ํ‚ค
  • node / npm / yarn โ€“ JavaScript ์ƒํƒœ๊ณ„ ์ž๋™ ์™„์„ฑ
  • golang / rust โ€“ ์–ธ์–ด๋ณ„ ๋„๊ตฌ ์ง€์›

์ƒ์‚ฐ์„ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ

  • sudo โ€“ ESC๋ฅผ ๋‘ ๋ฒˆ ๋ˆŒ๋Ÿฌ ๋งˆ์ง€๋ง‰ ๋ช…๋ น์— sudo ์ ‘๋‘์–ด ์ถ”๊ฐ€
  • extract โ€“ extract <ํŒŒ์ผ> ๋กœ ๋ชจ๋“  ์••์ถ• ํ˜•์‹ ํ•ด์ œ โ€“ tar ์˜ต์…˜์„ ์™ธ์šธ ํ•„์š” ์—†์Œ
  • z โ€“ ์‚ฌ์šฉ ๊ธฐ๋ก์ด ์Œ“์ด๋ฉด z project ๋กœ /home/user/dev/project ๋กœ ๋ฐ”๋กœ ์ด๋™
  • command-not-found โ€“ ๋ˆ„๋ฝ๋œ ๋ช…๋ น์— ๋Œ€ํ•ด ์„ค์น˜ํ•ด์•ผ ํ•  ํŒจํ‚ค์ง€ ์ œ์•ˆ (Ubuntu/Debian)

์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ

  • zsh-autosuggestions โ€“ ์ž…๋ ฅ ์ค‘ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์•ˆ ํ‘œ์‹œ (โ†’ ํ‚ค๋กœ ์ˆ˜๋ฝ)
  • zsh-syntax-highlighting โ€“ ๋ช…๋ น์ด ์œ ํšจํ•˜๋ฉด ์ดˆ๋ก์ƒ‰, ์ž˜๋ชป๋˜๋ฉด ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ โ€“ ์‹คํ–‰ ์ „ ์˜คํƒ€๋ฅผ ์žก์•„์คŒ

์„ค์ • ์ ์šฉํ•˜๊ธฐ

.zshrc๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ๋’ค ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์žฌ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค:

source ~/.zshrc

์‹ค์ œ ์˜ˆ์‹œ

์ ์šฉ ์ „

$ kubctl get pods  # ์˜คํƒ€๊ฐ€ ๋ฐ”๋กœ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ์‹œ๋จ
$ # ์‹ค์ˆ˜ ์ธ์‹, ์ˆ˜์ •
$ kubectl get pods

ํ”Œ๋Ÿฌ๊ทธ์ธ ์ ์šฉ ํ›„

  • ์˜คํƒ€๊ฐ€ ์ฆ‰์‹œ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๊ฐ•์กฐ๋ฉ๋‹ˆ๋‹ค.
  • kub... ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋ฐ˜ ์ž๋™ ์ œ์•ˆ kubectl get pods ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
  • โ†’ ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ์ˆ˜๋ฝํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” k ๋ณ„์นญ ์‚ฌ์šฉ: k get pods.

๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋™

# ๊ธฐ์กด ๋ฐฉ์‹
$ cd ~/projects/work/important-service/

# 'z' ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ (ํ•œ ๋ฒˆ ๋ฐฉ๋ฌธ ํ›„)
$ z important
# ์ฆ‰์‹œ ~/projects/work/important-service/ ๋กœ ์ด๋™

์••์ถ• ํ•ด์ œ

# ๊ธฐ์กด ๋ฐฉ์‹
$ tar -xzvf file.tar.gz
$ unzip archive.zip
$ tar -xjf file.tar.bz2

# 'extract' ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ
$ extract file.tar.gz
$ extract archive.zip
$ extract file.tar.bz2
# ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘!

์„ฑ๋Šฅ ๊ณ ๋ ค ์‚ฌํ•ญ

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋งŽ์œผ๋ฉด ์…ธ ์‹œ์ž‘ ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์—ฐ์ด ๋А๊ปด์ง„๋‹ค๋ฉด:

  • ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ์—๋งŒ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์„ฑํ™”
  • ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์–ธ์–ด ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ๊ฑฐ
  • time zsh -i -c exit ๋กœ ์‹œ์ž‘ ์‹œ๊ฐ„ ์ธก์ •

๋ณด๋„ˆ์Šค: ์œ ์šฉํ•œ ๋ณ„์นญ

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ˆ˜์‹ญ ๊ฐœ์˜ ์œ ์šฉํ•œ ๋ณ„์นญ์„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Docker

  • dps โ†’ docker ps
  • dpa โ†’ docker ps -a
  • dce โ†’ docker-compose exec

Kubectl

  • k โ†’ kubectl
  • kgp โ†’ kubectl get pods
  • kgd โ†’ kubectl get deployments
  • kaf โ†’ kubectl apply -f

Git

  • gst โ†’ git status
  • gc โ†’ git commit
  • gp โ†’ git push
  • gco โ†’ git checkout

ํ„ฐ๋ฏธ๋„์—์„œ alias ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ˜„์žฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋ณ„์นญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

  • ํ…Œ๋งˆ ํƒ์ƒ‰ โ€“ agnoster ํ˜น์€ powerlevel10k ๋กœ ์•„๋ฆ„๋‹ค์šด ํ”„๋กฌํ”„ํŠธ ์ ์šฉ
  • ์ปค์Šคํ…€ ๋ณ„์นญ โ€“ ~/.zshrc ํ˜น์€ ~/.oh-my-zsh/custom/aliases.zsh ์— ์ง์ ‘ ์ถ”๊ฐ€
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๋” ์ฐพ์•„๋ณด๊ธฐ โ€“ ls ~/.oh-my-zsh/plugins/ ๋กœ 350๊ฐœ ์ด์ƒ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™•์ธ

๊ฒฐ๋ก 

์ž˜ ๊ตฌ์„ฑ๋œ ํ„ฐ๋ฏธ๋„์€ ๊ฐœ๋ฐœ์ž์˜ ์ตœ๊ณ ์˜ ๋™๋ฐ˜์ž์ž…๋‹ˆ๋‹ค. ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์€ Zsh๋ฅผ ๋‹จ์ˆœ ์‰˜์—์„œ ์ž…๋ ฅํ•˜๋ฉด์„œ ์ž๋™ ์™„์„ฑ, ์ œ์•ˆ, ๊ฒ€์ฆ์„ ํ•ด์ฃผ๋Š” ์ง€๋Šฅํ˜• ์–ด์‹œ์Šคํ„ดํŠธ๋กœ ๋ณ€๋ชจ์‹œํ‚ต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์„ค์ •์€ ์•ฝ 5๋ถ„ ์ •๋„ ๊ฑธ๋ฆฌ์ง€๋งŒ, ํšจ์œจ์„ฑ ํ–ฅ์ƒ๊ณผ ์ปจํ…์ŠคํŠธ ์ „ํ™˜ ๊ฐ์†Œ๋ฅผ ํ†ตํ•ด ๋งค์ฃผ ๋ช‡ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ๋Œ“๊ธ€์— ์—ฌ๋Ÿฌ๋ถ„์ด ์ฆ๊ฒจ ์“ฐ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ณต์œ ํ•ด์ฃผ์„ธ์š”!

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

Langflow์˜ Drag-and-Drop ์›Œํฌํ”Œ๋กœ์šฐ๋กœ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ AI Bot์„ ๊ตฌ์ถ•ํ•œ ๋ฐฉ๋ฒ•

์‹œ๊ฐ์  ์›Œํฌํ”Œ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ QQ, WeChat, Telegram, Discord ๋“ฑ์—์„œ ์ฑ—๋ด‡์„ ๊ตฌ๋™ํ•˜์„ธ์š” โ€“ ์ฝ”๋”ฉ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. LangBot https://github.com/langbot-app/LangBot ์€ ...

๋ชจ๋Ž€์˜ ๋ณต์ˆ˜

์ฒซ ๋ฒˆ์งธ ์—ฐ๊ฒฐ 1994๋…„ ๊ฒจ์šธ, ํ™์ฝฉ์˜ ์ž‘์€ ์•„ํŒŒํŠธ์—์„œ, 14์„ธ ์†Œ๋…„์ด US Robotics Sportster 14,400 Fax Modem์„ ์—ฐ๊ฒฐํ–ˆ๋‹ค.

์ƒ์„ฑ AI ํ˜๋ช…์€ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ์„ ์•ฝ์†ํ•˜์ง€๋งŒ, ์šฐ๋ฆฌ๋ฅผ ๋” ๋˜‘๋˜‘ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ, ์•„๋‹ˆ๋ฉด ๋‹จ์ˆœํžˆ ์šฐ๋ฆฌ์˜ ์‚ฌ๊ณ ๋ฅผ ์™ธ์ฃผํ™”ํ•˜๊ณ  ์žˆ๋Š” ๊ฑธ๊นŒ?

์˜ค๋Š˜๋‚  ๊ณ ๋“ฑ ๊ต์œก์„ ๊ดด๋กญํžˆ๋Š” ์œ ๋ น์€ plagiarism์ด ์•„๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์œค๋ฆฌ์™€ detection์˜ ๋ฌธ์ œ์ด๋ฉฐ, ์šฐ๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„ ๊ทธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ์ƒˆ๋กœ์šด ์œ ๋ น์€ f...

Kiro์™€ ํ•จ๊ป˜ ๋‚˜์˜ ์ฒซ ํ”„๋กœ์ ํŠธ ๊ตฌ์ถ•: ํ•™์ƒ์˜ ๊ฒฝํ—˜

์†Œ๊ฐœ: ์ €๋Š” ๋ณดํ†ต ํŠœํ† ๋ฆฌ์–ผ ํ—ฌ์— ๋น ์ง€๋Š” ์ปดํ“จํ„ฐ ๊ณผํ•™ ์ „๊ณต ํ•™์ƒ์ž…๋‹ˆ๋‹ค. ์ €๋Š” ํ•™์ƒ๋“ค์„ ๋งค์นญํ•  ์ˆ˜ ์žˆ๋Š” studyโ€‘group coordinator app์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค.