๐Ÿš€ ๋‚˜๋งŒ์˜ ๊ฐœ๋ฐœ์ž ์›Œํฌํ”Œ๋กœ์šฐ ๋งŒ๋“ค๊ธฐ: VSCode, Vim, ๊ทธ๋ฆฌ๊ณ  Zsh

๋ฐœํ–‰: (2025๋…„ 12์›” 3์ผ ์˜คํ›„ 05:47 GMT+9)
7 min read
์›๋ฌธ: Dev.to

Source: Dev.to

โ€œImagine waving your hands like a conductor, and all the instruments play exactly what you want. Thatโ€™s the feeling I chase every day in my workflow.โ€

๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๊ฒช๋Š” ๊ณ ๋œ ์ผ์ƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค: ์ฝ”๋“œ๋ฅผ ๋ฐ”๋ผ๋ณด๋ฉฐ ๋ณด๋‚ด๋Š” ๊ธด ์‹œ๊ฐ„, ํŒŒ์ผ, ํ„ฐ๋ฏธ๋„, ๋ฌธ์„œ, ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด๋ฅผ ์˜ค๊ฐ€๋ฉฐ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค. PHP, Laravel, WordPress ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜๋…„๊ฐ„ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ ๋‚ด ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์—‰๋ง์ด์—ˆ์Šต๋‹ˆ๋‹ค. VSCode๋ฅผ ์—ด๊ณ  ํŒŒ์ผ์„ ์˜ค๊ฐ€๋ฉฐ ๊ฐ™์€ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์„ ๋ฐ˜๋ณตํ•˜๊ณ , ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ์•„๋‹ค๋‹ˆ๊ณ , ์„ค์ •์„ ์กฐ์ •ํ•˜๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„์„ ๋“ค์˜€์ฃ โ€”์ฝ”๋“œ ์ž์ฒด๋ณด๋‹ค ๋„๊ตฌ์— ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ๊ฒฐ์‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์Œ์•…์ฒ˜๋Ÿผ ๋А๊ปด์ง€๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๋‚ด ๋ฆฌ๋“ฌ์— ๋งž์ถฐ ํ๋ฅด๋Š” ๊ทธ๋Ÿฐ ๋А๋‚Œ ๋ง์ด์ฃ .

Step 1: VSCode โ€” More Than an Editor

VSCode๋Š” ์ด๋ฏธ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”ํ€ด๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค์ง€๋Š” ์•Š์•˜๊ณ , ๋‹จ์ง€ ๋ฏธ์„ธ ์กฐ์ •๋งŒ ํ–ˆ์„ ๋ฟ์ž…๋‹ˆ๋‹ค.

  • ๋‹จ์ถ•ํ‚ค โ€“ ํƒ์ƒ‰, ํŒŒ์ผ ์ž‘์—…, ๋ถ„ํ• , ๋‹ค์ค‘ ์ปค์„œ, ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ/๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ/์‚ญ์ œ.
  • ์ž๋™ํ™” โ€“ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค„์ž…๋‹ˆ๋‹ค.
  • ์—๋””ํ„ฐ ํŠœ๋‹ โ€“ ๋ผ์ธ ๋ฒˆํ˜ธ, ์ƒ๋Œ€ ๋ผ์ธ ๋ฒˆํ˜ธ, ๋ฏธ๋‹ˆ๋งต, ๋งˆ์šฐ์Šค ํœ  ์คŒ, ์›Œ๋“œ ๋žฉ, ์ปค์„œ ์Šคํƒ€์ผ.

์ด ์ž‘์€ ๋ณ€ํ™”๋“ค์ด ๋ชจ์—ฌ ํ”Œ๋กœ์šฐ ์ƒํƒœ๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค: ๋„๊ตฌ์— ๋Œ€ํ•œ ์ƒ๊ฐ์„ ์ค„์ด๊ณ  ์ฝ”๋“œ์— ๋” ์ง‘์ค‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Pro tip: ๊ธฐ๋ณธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ , ์ ์ฐจ ์ง๊ด€์ ์œผ๋กœ ๋А๊ปด์ง€๋Š” ๋‹จ์ถ•ํ‚ค๋ฅผ ์ฑ„ํƒํ•˜์„ธ์š”.

Minimal. Clean. Focused.

์‹œ๊ฐ์  ์žก์Œ์„ ๋ชจ๋‘ ์—†์•ด์Šต๋‹ˆ๋‹ค:

  • ํƒญ ์ˆจ๊ธฐ๊ธฐ, ์•กํ‹ฐ๋น„ํ‹ฐ ๋ฐ” ์ตœ์†Œํ™”, ๊น”๋”ํ•œ ํŠธ๋ฆฌ ๋ทฐ.
  • ๋งˆ์šฐ์Šค ์—†์ด ํƒ์ƒ‰ํ•˜๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” Vim ํ‚ค๋ฐ”์ธ๋”ฉ.
  • ํ†ตํ•ฉ ํ„ฐ๋ฏธ๋„, Zsh, ์…ธ ๋„๊ตฌ.

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

Step 2: Zsh โ€” My Terminal, My Orchestra

Oh My Zsh, ํ”Œ๋Ÿฌ๊ทธ์ธ, ๊ทธ๋ฆฌ๊ณ  ์„ธ์‹ฌํ•œ ์„ค์ • ๋•๋ถ„์— ํ„ฐ๋ฏธ๋„์€ ๋ฌด๋Œ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

  • ์„ ๋ณ„๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ โ€“ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋งŒ ์„ ํƒ.
  • ๋ณ„์นญ(Aliases) โ€“ IP ํ™•์ธ, ํŒŒ์ผ ํƒ์ƒ‰, ํด๋ฆฝ๋ณด๋“œ ์ธ์ฝ”๋”ฉ, ํฌํŠธ, ๋ฐฐํ„ฐ๋ฆฌ ์ƒํƒœ.
  • ์ปค์Šคํ…€ ํ•จ์ˆ˜ โ€“ ์˜ˆ์‹œ:
# mkcd: create a directory and cd into it
mkcd() {
  mkdir -p "$1" && cd "$1"
}

# markdown2pdf: convert a markdown file to PDF using pandoc
markdown2pdf() {
  pandoc "$1" -o "${1%.md}.pdf"
}
  • ๊นจ๋—ํ•œ PATH & MANPATH โ€“ ์žก๋™์‚ฌ๋‹ˆ ์—†์ด, ํ˜ผ๋ž€ ์—†์ด.

๊ทธ ๊ฒฐ๊ณผ: ํƒ€์ดํ•‘์ด ์ค„๊ณ , ํƒ์ƒ‰์ด ๋นจ๋ผ์ง€๋ฉฐ, ์ •์‹ ์  ๋งˆ์ฐฐ์ด ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.

Step 3: Extensions That Actually Work

ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์€ ๋ชฉ์  ์žˆ๊ฒŒ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  • ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ์„ค์น˜ํ•˜์„ธ์š”; ๊ฐ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์€ ๋ช…ํ™•ํ•œ ๋ชฉ์ ์„ ๊ฐ€์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Vim ์—๋ฎฌ๋ ˆ์ด์…˜์€ ํ•„์ˆ˜ ๋™์ž‘(a, A, b, f, l, h, i, k, gg)์— ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค.
  • 90๊ฐœ๊ฐ€ ๋„˜๋Š” ํ‚ค๋ฐ”์ธ๋”ฉ์ด ํƒ์ƒ‰, ํŽธ์ง‘, ํŒŒ์ผ ์ž‘์—…, ๋‹ค์ค‘ ํŒŒ์ผ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ปค๋ฒ„ํ•ฉ๋‹ˆ๋‹ค.

์ด Vim ๋™์ž‘์€ ์˜จ๋ผ์ธ ํ”Œ๋žซํผ์—์„œ 15~20๋ถ„์ด๋ฉด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คโ€”ํˆฌ์žํ•  ๊ฐ€์น˜๊ฐ€ ์ถฉ๋ถ„ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 4: Why This Workflow Matters

  • ๊ฐœ์ธ์ ์ด๋ฉด์„œ๋„ ๋ณดํŽธ์  โ€“ ์ž˜ ์•Œ๋ ค์ง„ ๋„๊ตฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ์ ์šฉ ๊ฐ€๋Šฅ.
  • ์†๋„์™€ ํŽธ์•ˆํ•จ โ€“ ๋ฐ˜๋ณต์ ์ธ ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ์ค„์ด๊ณ  ์ฝ”๋”ฉ์„ ์ฆ๊ฒ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ํ™•์žฅ์„ฑ โ€“ PHP, Laravel, WordPress๋ฟ ์•„๋‹ˆ๋ผ JavaScript, Python, Ruby ๊ฐ™์€ ๋‹ค๋ฅธ ์–ธ์–ด์—๋„ ์ ์šฉ ๊ฐ€๋Šฅ.

๋ฆฌ๋“ฌ์„ ๋งˆ์Šคํ„ฐํ•˜๋ฉด ์ฝ”๋”ฉ์€ ์Œ์•…์ฒ˜๋Ÿผ ๋А๊ปด์ง‘๋‹ˆ๋‹ค: ์ƒ๊ฐํ•˜๊ณ , ์›€์ง์ด๊ณ , ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Step 5: My Advice to Fellow Devs

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

Key Takeaway

์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๋ณต์žกํ•จ์ด ์•„๋‹ˆ๋ผ ๋ช…๋ฃŒํ•จ, ๋ฆฌ๋“ฌ, ๊ทธ๋ฆฌ๊ณ  ๊ฐœ์ธ์  ๋งŒ์กฑ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘๊ฒŒ ์‹œ์ž‘ํ•˜๊ณ  ์ž๋™ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ์ž๋™ํ™”ํ•˜๋ฉฐ, ๋„๊ตฌ๊ฐ€ ๋‹น์‹ ์„ ๋”ฐ๋ผ์˜ค๊ฒŒ ํ•˜์„ธ์š”โ€”๋ฐ˜๋Œ€๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ.

Find the complete configuration on GitHub:
https://github.com/mahafuz/.config

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

๊ฐ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ๋ชจ๋ธ, ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ์„œ๋น„์Šค, ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” Laravel Artisan ๋ช…๋ น ๋งŒ๋“ค๊ธฐ

๋งž์ถค Artisan ๋ช…๋ น: ๋ ˆ์ด์–ด ์ž๋™ ์ƒ์„ฑ ์‹คํ–‰: bash php artisan make:command GenerateCrudFromDb ๋ช…๋ น ๊ตฌํ˜„ ํŒŒ์ผ app/Console/Commands/... ๊ต์ฒด

์Šคํ…Œ์ด์ง• ์„œ๋ฒ„๊ฐ€ ์ฃฝ์ง€ ์•Š๊ฒŒ: Laravel์—์„œ ์ž‘์—… ์Šค์ผ€์ค„๋ง ๋ถ„๋ฆฌ

Laravel์„ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์•„๋งˆ๋„ ์ž‘์—… ์Šค์ผ€์ค„๋ง์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฉˆ์ถœ ๋•Œ๊นŒ์ง€ ๊ทธ๋ƒฅ ์ž‘๋™ํ•˜๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์Šคํ…Œ์ด์ง•โ€ฆ

FreeAllTools.site โ€” ๋น ๋ฅด๊ณ  ๊น”๋”ํ•˜๋ฉฐ ๋ฌด๋ฃŒ์ธ ์ผ์ผ ์›น ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ชจ์Œ

๋งค์ผ ์šฐ๋ฆฌ๋Š” ๋ช‡ ์ดˆ๋ฉด ๋๋‚  ์ž‘์€ ์ž‘์—…๋“ค์„ ๋งˆ์ฃผํ•ฉ๋‹ˆ๋‹คโ€”PDF๋ฅผ Word ๋ฌธ์„œ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ง€์ €๋ถ„ํ•œ JSON์„ ํฌ๋งทํ•˜๊ณ , UI์˜ ์ƒ‰์ƒ์„ ๊ณ ๋ฅด๊ณ , ๊ทธ๋ผ๋””์–ธํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ.

ํ„ฐ๋ฏธ๋„์„ ํ•œ ๋ฒˆ์— ํ•œ ํ”ฝ์…€์”ฉ ์•„๋ฆ„๋‹ต๊ฒŒ ๋งŒ๋“ค๊ธฐ

2025๋…„ 11์›” 13์ผ ์šฐ๋ฆฌ๋Š” Gemini CLI ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ๋ฐœํ‘œํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ณด๋‹ค ๊ฒฌ๊ณ ํ•˜๊ณ  ์ง๊ด€์ ์ด๋ฉฐ vi...