๐ŸŒ†
Sunset Archive
GitHubLinkedInBlog
  • litsynp
  • Archives
    • Projects
      • Let's Parking!
      • ๋ง›์ง‘๋ชฌ์Šคํ„ฐ (JMT Monster)
      • spring-x-demo Projects
    • Articles
      • My Thoughts on GitBook
      • Wake-on-LAN & RDP Setup
    • Learning
      • Languages
        • Rust
          • Useful Links
          • Syntax
          • Pointers
          • Dependencies
          • Logging
          • Phantom Types
          • Iterable
            • Optional Skip
        • Go
          • Useful Links
          • Structures
          • Zero Values
          • Error Handling
          • Dependency Injection
          • Project Layout
        • JavaScript/TypeScript
          • Basics
            • Types
              • [JS] Falsy Values
              • [TS] Types - unknown, any, never
            • Rest Parameters (...)
            • Spread Syntax (...)
            • Destructuing Assignment
            • CJS, AMD, UMD, ESM
          • Advanced
            • Conditional Destructuring Assignment
            • Type Guards
          • Miscellaneous
            • Dependency Injection in JS?
            • ESLint, Prettier, TypeScript
          • Node
            • Useful Links
            • General
              • V8 Engine
              • Version Management: NVM
              • Environment Variables
            • Database
              • Knex
        • C
          • Dynamic Multi-dimensional Arrays
        • Spring
          • General
            • @Import v.s. @ContextConfiguration
            • MessageSource
          • Kotlin+Spring
            • Kotlin Annotations (Use-Site Targets)
            • Handling Null in Request DTO
            • Handling Null in URL
          • Reactive Stack
            • Reactive API with Spring WebFlux
          • Spring Security
            • Google OAuth Setup
          • Spring Batch
            • Bulk Insert
        • Kotlin
          • val/var in Constructor
          • Initializer Blocks
          • Inheritance Modifiers (final, open, abstract)
          • Delegate Pattern
        • Java
          • Serialization
          • Random Number Generation
            • (1) Math.random() v.s. Random
            • (2) Random v.s. ThreadLocalRandom
        • Python
          • Version Management
        • Ruby
          • Installation
          • Getters & Setters
        • Elixir
        • Erlang
        • Flutter
        • AWS
          • AWS CLI
        • Terraform
          • Installation
          • Basics
      • Code
        • OOP
          • The 4 Basic Concepts of OOP
          • The SOLID Principles
          • GRASP
          • Spring POJO
          • Others
        • Functional Programming
          • Currying
          • Higher-Order Function
          • Closure
          • Monad
        • ๊ณต๋ณ€์„ฑ, ๋ฐ˜๊ณต๋ณ€์„ฑ, ๋ฌด๊ณต๋ณ€์„ฑ
        • Others
          • UUID
          • GraphQL
          • Multimedia
            • Streaming
          • Geography
            • ์œ„๋„ (Latitude), ๊ฒฝ๋„ (Longitude)
      • Tools
        • Nix
        • Mermaid
          • Flowchart
          • Sequence Diagram
          • Class Diagram
          • Entity Relationship Diagrams
        • VSCode
          • VSCode CLI
          • VSCode Extensions
        • JetBrains
          • IntelliJ - Open Projects in Tabs
          • Delete Leftover IDE Directories
        • vim
          • Commands
      • Books
        • ๋‹ค์žฌ๋‹ค๋Šฅ ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Programming Kotlin)
          • Pt 01. ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ์Šคํฌ๋ฆฝํŒ… ํ•˜๊ธฐ
            • Ch 01. ์ฝ”ํ‹€๋ฆฐ ์‹œ์ž‘ํ•˜๊ธฐ
            • Ch 02. Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ฝ”ํ‹€๋ฆฐ ํ•„์ˆ˜ ์‚ฌํ•ญ
            • Ch 03. ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ž
            • Ch 05. ์ฝœ๋ ‰์…˜ ์‚ฌ์šฉํ•˜๊ธฐ
        • ์˜ค๋ธŒ์ ํŠธ (Object)
          • Ch.0 ๋“ค์–ด๊ฐ€๋ฉฐ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„
          • Ch.1 ๊ฐ์ฒด, ์„ค๊ณ„
          • Ch.2 ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
          • Ch.3 ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ
          • Ch.4 ์„ค๊ณ„ ํ’ˆ์งˆ๊ณผ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„
          • Ch.5 ์ฑ…์ž„ ํ• ๋‹นํ•˜๊ธฐ
          • Ch.6 ๋ฉ”์‹œ์ง€์™€ ์ธํ„ฐํŽ˜์ด์Šค
          • Ch.7 ์œ ์—ฐํ•œ ์„ค๊ณ„
          • Ch.8 ์˜์กด์„ฑ ๊ด€๋ฆฌํ•˜๊ธฐ
          • Ch.9 ์œ ์—ฐํ•œ ์„ค๊ณ„
          • Ch.10 ์ƒ์†๊ณผ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ
          • Ch.11 ํ•ฉ์„ฑ๊ณผ ์œ ์—ฐํ•œ ์„ค๊ณ„
          • Ch.12 ๋‹คํ˜•์„ฑ
          • Ch.13 ์„œ๋ธŒํด๋ž˜์‹ฑ๊ณผ ์„œ๋ธŒํƒ€์ดํ•‘
          • Ch.14 ์ผ๊ด€์„ฑ ์žˆ๋Š” ํ˜‘๋ ฅ
          • Ch.15 ๋””์ž์ธ ํŒจํ„ด๊ณผ ํ”„๋ ˆ์ž„์›Œํฌ
          • End. ๋งˆ์น˜๋ฉฐ - ๋‚˜์•„๊ฐ€๊ธฐ
          • ํ›„๊ธฐ
        • ํ—ค๋“œ ํผ์ŠคํŠธ ๋””์ž์ธ ํŒจํ„ด (Head First Design Patterns)
          • Ch.1 ๋””์ž์ธ ํŒจํ„ด ์†Œ๊ฐœ์™€ ์ „๋žต ํŒจํ„ด
          • Ch.2 ์˜ต์ €๋ฒ„ ํŒจํ„ด
          • Ch.3 ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด
          • Ch.4 ํŒฉํ† ๋ฆฌ ํŒจํ„ด
          • Ch.5 ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด
          • Ch.6 ์ปค๋งจ๋“œ ํŒจํ„ด
          • Ch.7 ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด๊ณผ ํผ์‚ฌ๋“œ ํŒจํ„ด
          • Ch.8 ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด
          • Ch.9 ๋ฐ˜๋ณต์ž ํŒจํ„ด๊ณผ ์ปดํฌ์ง€ํŠธ ํŒจํ„ด
          • Ch.10 ์ƒํƒœ ํŒจํ„ด
          • Ch.11 ํ”„๋ก์‹œ ํŒจํ„ด
          • Ch.12 ๋ณตํ•ฉ ํŒจํ„ด
        • ์ดํŽ™ํ‹ฐ๋ธŒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ (Effective TypeScript)
          • Ch.1 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์•Œ์•„๋ณด๊ธฐ
            • Item 1 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ด€๊ณ„ ์ดํ•ดํ•˜๊ธฐ
            • Item 2 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์„ค์ • ์ดํ•ดํ•˜๊ธฐ
            • Item 3 ์ฝ”๋“œ ์ƒ์„ฑ๊ณผ ํƒ€์ž…์ด ๊ด€๊ณ„์—†์Œ์„ ์ดํ•ดํ•˜๊ธฐ
            • Item 4 ๊ตฌ์กฐ์  ํƒ€์ดํ•‘์— ์ต์ˆ™ํ•ด์ง€๊ธฐ
            • Item 5 any ํƒ€์ž… ์ง€์–‘ํ•˜๊ธฐ
          • Ch.2 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ํƒ€์ž… ์‹œ์Šคํ…œ
            • Item 6 ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ€์ž… ์‹œ์Šคํ…œ ํƒ์ƒ‰ํ•˜๊ธฐ
            • Item 7 ํƒ€์ž…์ด ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ
            • Item 1-7 Study Summary
            • Item 8 ํƒ€์ž… ๊ณต๊ฐ„๊ณผ ๊ฐ’ ๊ณต๊ฐ„์˜ ์‹ฌ๋ฒŒ ๊ตฌ๋ถ„ํ•˜๊ธฐ
            • Item 9 ํƒ€์ž… ๋‹จ์–ธ๋ณด๋‹ค๋Š” ํƒ€์ž… ์„ ์–ธ์„ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 10 ๊ฐ์ฒด ๋ž˜ํผ ํƒ€์ž… ํ”ผํ•˜๊ธฐ
            • Item 11 ์ž‰์—ฌ ์†์„ฑ ์ฒดํฌ์˜ ํ•œ๊ณ„ ์ธ์ง€ํ•˜๊ธฐ
            • Item 12 ํ•จ์ˆ˜ ํ‘œํ˜„์‹์— ํƒ€์ž… ์ ์šฉํ•˜๊ธฐ
            • Item 13 ํƒ€์ž…๊ณผ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด์  ์•Œ๊ธฐ
            • Item 14 ํƒ€์ž… ์—ฐ์‚ฐ๊ณผ ์ œ๋„ˆ๋ฆญ ์‚ฌ์šฉ์œผ๋กœ ๋ฐ˜๋ณต ์ค„์ด๊ธฐ
            • Item 15 ๋™์  ๋ฐ์ดํ„ฐ์— ์ธ๋ฑ์Šค ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 16 number ์ธ๋ฑ์Šค ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ณด๋‹ค๋Š” Array, ํŠœํ”Œ, ArrayLike๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 17 ๋ณ€๊ฒฝ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด readonly ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 18 ๋งคํ•‘๋œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๋™๊ธฐํ™”ํ•˜๊ธฐ
          • Ch.3 ํƒ€์ž… ์ถ”๋ก 
            • Item 19 ์ถ”๋ก  ๊ฐ€๋Šฅํ•œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ด ์žฅํ™ฉํ•œ ์ฝ”๋“œ ๋ฐฉ์ง€ํ•˜๊ธฐ
            • Item 20 ๋‹ค๋ฅธ ํƒ€์ž…์—๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 21 ํƒ€์ž… ๋„“ํžˆ๊ธฐ
            • Item 22 ํƒ€์ž… ์ขํžˆ๊ธฐ
            • Item 23 ํ•œ๊บผ๋ฒˆ์— ๊ฐ์ฒด ์ƒ์„ฑํ•˜๊ธฐ
            • Item 24 ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ณ„์นญ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 25 ๋น„๋™๊ธฐ ์ฝ”๋“œ์—๋Š” ์ฝœ๋ฐฑ ๋Œ€์‹  async ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 26 ํƒ€์ž… ์ถ”๋ก ์— ๋ฌธ๋งฅ์ด ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ
            • Item 27 ํ•จ์ˆ˜ํ˜• ๊ธฐ๋ฒ•๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํƒ€์ž… ํ๋ฆ„ ์œ ์ง€ํ•˜๊ธฐ
          • Ch.4 ํƒ€์ž… ์„ค๊ณ„
            • Item 28 ์œ ํšจํ•œ ์ƒํƒœ๋งŒ ํ‘œํ˜„ํ•˜๋Š” ํƒ€์ž…์„ ์ง€ํ–ฅํ•˜๊ธฐ
            • Item 29 ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋„ˆ๊ทธ๋Ÿฝ๊ฒŒ, ์ƒ์„ฑํ•  ๋•Œ๋Š” ์—„๊ฒฉํ•˜๊ฒŒ
            • Item 30 ๋ฌธ์„œ์— ํƒ€์ž… ์ •๋ณด๋ฅผ ์“ฐ์ง€ ์•Š๊ธฐ
            • Item 31 ํƒ€์ž… ์ฃผ๋ณ€์— null ๊ฐ’ ๋ฐฐ์น˜ํ•˜๊ธฐ
            • Item 32 ์œ ๋‹ˆ์˜จ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ณด๋‹ค๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ์œ ๋‹ˆ์˜จ์„ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 33 string ํƒ€์ž…๋ณด๋‹ค ๋” ๊ตฌ์ฒด์ ์ธ ํƒ€์ž… ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 34 ๋ถ€์ •ํ™•ํ•œ ํƒ€์ž…๋ณด๋‹ค๋Š” ๋ฏธ์™„์„ฑ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 35 ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ, API์™€ ๋ช…์„ธ๋ฅผ ๋ณด๊ณ  ํƒ€์ž… ๋งŒ๋“ค๊ธฐ
            • Item 36 ํ•ด๋‹น ๋ถ„์•ผ์˜ ์šฉ์–ด๋กœ ํƒ€์ž… ์ด๋ฆ„ ์ง“๊ธฐ
            • Item 37 ๊ณต์‹ ๋ช…์นญ์—๋Š” ์ƒํ‘œ๋ฅผ ๋ถ™์ด๊ธฐ
          • Ch.5 any ๋‹ค๋ฃจ๊ธฐ
            • Item 38 any ํƒ€์ž…์€ ๊ฐ€๋Šฅํ•œ ํ•œ ์ข์€ ๋ฒ”์œ„์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 39 any๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ณ€ํ˜•ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 40 ํ•จ์ˆ˜ ์•ˆ์œผ๋กœ ํƒ€์ž… ๋‹จ์–ธ๋ฌธ ๊ฐ์ถ”๊ธฐ
            • Item 41 any์˜ ์ง„ํ™”๋ฅผ ์ดํ•ดํ•˜๊ธฐ
            • Item 42 ๋ชจ๋ฅด๋Š” ํƒ€์ž…์˜ ๊ฐ’์—๋Š” any ๋Œ€์‹  unknown์„ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 43 ๋ชฝํ‚ค ํŒจ์น˜๋ณด๋‹ค๋Š” ์•ˆ์ „ํ•œ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 44 ํƒ€์ž… ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ถ”์ ํ•˜์—ฌ ํƒ€์ž… ์•ˆ์ „์„ฑ ์œ ์ง€ํ•˜๊ธฐ
          • Ch.6 ํƒ€์ž… ์„ ์–ธ๊ณผ @types
            • Item 45 devDependencies์— typescript์™€ @types ์ถ”๊ฐ€ํ•˜๊ธฐ
            • Item 46 ํƒ€์ž… ์„ ์–ธ๊ณผ ๊ด€๋ จ๋œ ์„ธ ๊ฐ€์ง€ ๋ฒ„์ „ ์ดํ•ดํ•˜๊ธฐ
            • Item 47 ๊ณต๊ฐœ API์— ๋“ฑ์žฅํ•˜๋Š” ๋ชจ๋“  ํƒ€์ž…์„ ์ต์ŠคํฌํŠธํ•˜๊ธฐ
            • Item 48 API ์ฃผ์„์— TSDoc ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 49 ์ฝœ๋ฐฑ์—์„œ this์— ๋Œ€ํ•œ ํƒ€์ž… ์ œ๊ณตํ•˜๊ธฐ
            • Item 50 ์˜ค๋ฒ„๋กœ๋”ฉ ํƒ€์ž…๋ณด๋‹ค๋Š” ์กฐ๊ฑด๋ถ€ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 51 ์˜์กด์„ฑ ๋ถ„๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ฏธ๋Ÿฌ ํƒ€์ž… ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 52 ํ…Œ์ŠคํŒ… ํƒ€์ž…์˜ ํ•จ์ •์— ์ฃผ์˜ํ•˜๊ธฐ
          • Ch.7 ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ
            • Item 53 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋Šฅ๋ณด๋‹ค๋Š” ECMAScript ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 54 ๊ฐ์ฒด๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋…ธํ•˜์šฐ
            • Item 55 DOM ๊ณ„์ธต ๊ตฌ์กฐ ์ดํ•ดํ•˜๊ธฐ
            • Item 56 ์ •๋ณด๋ฅผ ๊ฐ์ถ”๋Š” ๋ชฉ์ ์œผ๋กœ private ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ
            • Item 57 ์†Œ์Šค๋งต์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋””๋ฒ„๊น…ํ•˜๊ธฐ
          • Ch.8 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ
            • Item 58 ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑํ•˜๊ธฐ
            • Item 59 ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋„์ž… ์ „์— @ts-check์™€ JSDoc์œผ๋กœ ์‹œํ—˜ํ•ด ๋ณด๊ธฐ
            • Item 60 allowJS๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ธฐ
            • Item 61 ์˜์กด์„ฑ ๊ด€๊ณ„์— ๋”ฐ๋ผ ๋ชจ๋“ˆ ๋‹จ์œ„๋กœ ์ „ํ™˜ํ•˜๊ธฐ
            • Item 62 ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์˜ ์™„์„ฑ์„ ์œ„ํ•ด noImplicitAny ์„ค์ •ํ•˜๊ธฐ
        • Dive Into Design Patterns
          • ๋””์ž์ธ ํŒจํ„ด ์†Œ๊ฐœ
          • ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ์›์น™๋“ค
          • ๋””์ž์ธ ํŒจํ„ด ๋ชฉ๋ก
          • ์œ ์šฉํ•œ ๋งํฌ
        • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (System Design Interview)
          • Key Points
          • Real Life Systems
          • Engineering Blogs
        • Node.js ๋””์ž์ธ ํŒจํ„ด ๋ฐ”์ด๋ธ” (Node.js Design Patterns 3rd Edition)
        • ๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ (Refactoring: 2nd Ed.)
          • 1์žฅ ๋ฆฌํŒฉํ„ฐ๋ง: ์ฒซ ๋ฒˆ์งธ ์˜ˆ์‹œ
          • 2์žฅ ๋ฆฌํŒฉํ„ฐ๋ง ์›์น™
          • 3์žฅ ์ฝ”๋“œ์—์„œ ๋‚˜๋Š” ์•…์ทจ
          • 4์žฅ ํ…Œ์ŠคํŠธ ๊ตฌ์ถ•ํ•˜๊ธฐ
Powered by GitBook
On this page
  • Nix
  • ์šฉ๋„
  • dotfiles

Was this helpful?

Edit on GitHub
  1. Archives
  2. Learning
  3. Tools

Nix

PreviousToolsNextMermaid

Last updated 1 year ago

Was this helpful?

Nix

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

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

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

์šฉ๋„

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

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

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

dotfiles

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(๊ณ„์†)

Nix
stow