Nix

Nix

Nix๋Š” ์„ ์–ธํ˜•์œผ๋กœ ์žฌํ˜„๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋„๋ก ํ•˜๋Š” ํˆด์ด๋‹ค.

Ansible Playbook์™€ ๋น„์Šทํ•œ๋ฐ, Ansible์˜ ๊ทธ๊ฒƒ์€ ๋ช…๋ นํ˜•์ด๋‹ค.

์„ ์–ธํ˜•์ด๋ผ๋Š” ๊ฒƒ์ด ๋ฌด์Šจ ๋œป์ด๋ƒ ํ•˜๋ฉด, Nix์˜ ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผ์ข…์˜ ์„ค์ • ํŒŒ์ผ์ด๋ฉฐ, ๋ช…๋ นํ˜•์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์™€ ๋‹ฌ๋ฆฌ ์ˆœ์„œ์— ์ƒ๊ด€์ด ์—†๋‹ค.

์šฉ๋„

๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉํ•˜๋Š” ๋™๊ธฐํ™” ํˆด๋„ ๊ฐ€๋Šฅํ•˜๊ณ , ๋งค๋ฒˆ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ์‹ ๋ขฐ ๊ฐ€๋Šฅํ•œ ์„œ๋ฒ„ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ Nix ์‚ฌ์šฉ์ž ์ค‘ ์ƒ๋‹น ์ˆ˜๋Š” ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์‚ฌ์‹ค ๋‚ด๊ฐ€ Nix๋ฅผ ์•Œ์•„๋ณด๊ฒŒ ๋œ ์ด์œ ๋„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, dotfiles์˜ ๋Œ€์ฒด์ด๋‹ค.

dotfiles

๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•์— ๊ณต์„ ๋“ค์ด๋Š” ๋‚˜์™€ ๋น„์Šทํ•œ ์‚ฌ๋žŒ์ด๋ผ๋ฉด dotfiles์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ์ฏค ๋“ค์–ด๋ดค์„ ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ dotfiles๋Š” ๋‚˜๋งŒ์˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์„ค์ •ํŒŒ์ผ๋กœ ๋งŒ๋“ค๊ณ , ์ปดํ“จํ„ฐ๋ฅผ ์˜ฎ๊ธธ ๋•Œ๋งˆ๋‹ค ๋ธŒ๋ผ์šฐ์ €๋กœ ์ผ์ผํžˆ ๊ฐœ๋ฐœ ํˆด์„ ๋‹ค์šด๋ฐ›์„ ํ•„์š” ์—†์ด ์Šคํฌ๋ฆฝํŠธ ํ•˜๋‚˜๋กœ ์ด์ „ ์ปดํ“จํ„ฐ์™€ ๋™์ผํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค๋Š” ๊ฐœ๋…์ด๋‹ค.

GitHub์— dotfiles๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด ์‹ค์ œ๋กœ ๊ต‰์žฅํžˆ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ณธ์ธ๋งŒ์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ dotfiles๋กœ ๊ตฌ์ถ•ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

macOS ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์„ ๊ฒƒ์ด๋‹ค.

  • stow๋ฅผ ํ†ตํ•ด .zshrc, neovim ๋“ฑ ์„ค์ • ํŒŒ์ผ์„ Symlink ์„ค์ •

  • Brewfile์„ ํ†ตํ•œ homebrew ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ ๋™๊ธฐํ™”

  • GitHub์— ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” dotfiles ํ”„๋กœ์ ํŠธ ์—…๋กœ๋“œ

์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ณธ์ธ์˜ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ ๋ณธ์ธ ์„ค์ •์— ์• ์ฐฉ๋„ ์ƒ๊ธฐ๊ณ , ๋‹ค๋Ÿ‰์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๊ธฐ์ˆ ์ ์œผ๋กœ๋„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ๋„ ๋งŽ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ๊ฐœ๋ฐœ์— ๊ฝค ๋งŽ์€ ๋„์›€์ด ๋œ๋‹ค.

๋‚˜๋„ ๋…ธํŠธ๋ถ์„ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ€์ƒ๋จธ์‹ ์„ ์ด์šฉํ•ด ์ž‘์—…ํ•  ๋•Œ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— dotfiles ๊ตฌ์„ฑ์ด ํ•„์š”ํ–ˆ๋‹ค.

๋ณดํ†ต ์‚ฌ๋žŒ๋“ค์ด๋ผ๋ฉด ์—ฌ๊ธฐ์„œ(dotfiles์—์„œ) ๋งŒ์กฑํ•˜๊ณ  ์ผ์„ ํ•˜๋Ÿฌ ๋– ๋‚  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‚œ ์—ฌ๊ธฐ์„œ ๋งŽ์€ ์˜๋ฌธ์ด ์ƒ๊ฒผ๋‹ค.

  • ์ฒ˜์Œ์—๋งŒ ์‹คํ–‰ํ•˜๋Š” setup ์Šคํฌ๋ฆฝํŠธ์™€ 2๋ฒˆ์งธ๋ถ€ํ„ฐ ์‹คํ–‰ํ•˜๋Š” sync(?) ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‘ ๊ฐœ ๋‹ค ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ์‹œ์ ์ด ์˜ค๋Š”๋ฐ, ์ด๊ฑธ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๊ท€์ฐฎ๋‹ค.

  • ํŒจํ‚ค์ง€๋ฅผ ์ง€์šธ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€ ๋‚œ๊ฐํ•˜๋‹ค.

    • e.g., ์ฒ˜์Œ์—” tldr ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ–ˆ๋‹ค๊ฐ€ ์ง€์šฐ๊ณ ์ž ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ง€์šฐ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋˜ ๋„ฃ์–ด์•ผ ํ•˜๋Š”๊ฐ€?

  • ๊ณต๋“ค์—ฌ์„œ ์ž‘์„ฑํ•˜์ง€ ์•Š์œผ๋ฉด ์—ฌ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜/์šด์˜์ฒด์ œ (32/64๋น„ํŠธ, Windows/macOS/Linux/...)์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ฒ˜์Œ์—” ๊ทธ๋ƒฅ ์ฐธ๊ณ  ์“ฐ๊ฒ ๋‹ค๋Š” ๋งˆ์ธ๋“œ์˜€๋Š”๋ฐ, ์ ์  ์ด๋Ÿฐ ์œ ์—ฐ์„ฑ๊ณผ ์œ ์ง€๊ฐ€๋Šฅ์„ฑ์ด ๋–จ์–ด์ง€๋Š” ์‹œ์Šคํ…œ์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฒฌ๋””๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์กŒ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๊ฒ€์ƒ‰์„ ์กฐ๊ธˆ ํ•˜๋ฉด์„œ ์ฐพ์•„๋ณด๋‹ˆ ๋‚˜์˜จ ๊ฒƒ์ด Nix์˜€๋‹ค.

(๊ณ„์†)

Last updated