[TIL] Day10 #CLI #Package #Node.js #Git

Beanxxยท2022๋…„ 5์›” 9์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
10/120
post-thumbnail

[TIL] Day10
[SEB FE] Day10

1๏ธโƒฃย CLI(Command-Line Interface)

  • ํ„ฐ๋ฏธ๋„: CLI(Command-Line Interface)
  • ํ”„๋กฌํ”„ํŠธ(Prompt): CLI์˜ ๋ช…๋ น์ค„ ๋Œ€๊ธฐ๋ชจ๋“œ๋กœ์จ, ํ‚ค๋ณด๋“œ์˜ ์ž…๋ ฅ์„ ํ™•์ธํ•˜๊ณ  ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ์ค„์˜ ๊ณต๊ฐ„

๐Ÿ“Žย CLI ๋ช…๋ น์–ด

  • pwd(print working directory): ํ˜„์žฌ ์œ„์น˜ ํ™•์ธ
  • mkdir(make directories): ์ƒˆ๋กœ์šด ํด๋” ์ƒ์„ฑ (์ƒ์„ฑํ•  ํด๋”์˜ ์ด๋ฆ„์„ ํ•จ๊ป˜ ์ž…๋ ฅ)
    mkdir helloWorld
    โœ‹ย ํด๋” ๋˜๋Š” ํŒŒ์ผ์˜ ์ด๋ฆ„์— ๊ณต๋ฐฑ(๋„์–ด์“ฐ๊ธฐ)์ด๋‚˜ ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ์žˆ์œผ๋ฉด, ๋ฐฑ์Šฌ๋ž˜์‹œ(\)๋ฅผ ์ด์šฉํ•ด ์ ์šฉ
  • ls(list): ํŠน์ • ํด๋”์— ํฌํ•จ๋œ ํŒŒ์ผ์ด๋‚˜ ํด๋” ํ™•์ธ
    • ls -l: ํด๋”๋‚˜ ํŒŒ์ผ์˜ ํฌ๋งท์„ ์ „๋ถ€ ํ‘œํ˜„
      • drwxr-x-x : ์ฒซ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ d์ธ ๊ฒฝ์šฐ โ€˜ํด๋”โ€™ (cd ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ง„์ž… ๊ฐ€๋Šฅ)
      • -rw-rโ€”rโ€” : ์ฒซ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ -์ธ ๊ฒฝ์šฐ โ€˜ํŒŒ์ผโ€™ (์ง„์ž… ๋ถˆ๊ฐ€๋Šฅ)
    • ls -a: all / ์ˆจ์–ด์žˆ๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์„ ํฌํ•จํ•œ ๋ชจ๋“  ํ•ญ๋ชฉ ์ถœ๋ ฅ
    • ls -al / ls -la
      โœ‹ย ์˜ต์…˜์„ ๋œปํ•˜๋Š” ๋Œ€์‰ฌ(dash, -) ๋’ค์— ์˜ค๋Š” ์˜ต์…˜์˜ ์ˆœ์„œ๋Š” ๊ธฐ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ
  • open . : GUI ํƒ์ƒ‰๊ธฐ๋กœ ํด๋” ์—ด๊ธฐ

  • cd(change directory): ํ”„๋กฌํ”„ํŠธ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ํด๋”๋ฅผ ๋‹ค๋ฅธ ํด๋”๋กœ ๋ณ€๊ฒฝ

    • cd ~/helloWorld/hello โ† ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํด๋”๋กœ ํ•œ ๋ฒˆ์— ์ด๋™
  • touch: ํŒŒ์ผ ์ƒ์„ฑ
    touch hi.txt

  • cat: ํŒŒ์ผ ๋‚ด์šฉ์„ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅ

  • rm(remove): ํด๋”๋‚˜ ํŒŒ์ผ ์‚ญ์ œ (๋‹จ์ผ ํŒŒ์ผ ์‚ญ์ œ ๊ฐ€๋Šฅ) (ํœด์ง€ํ†ต์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ , ์ฆ‰์‹œ ์‚ญ์ œ)

    • rm -rf: ํด๋” ์‚ญ์ œ ๊ฐ€๋Šฅ
      • ์˜ต์…˜ r: recursive, ํด๋”๋ฅผ ์ง€์šธ ๋•Œ ์‚ฌ์šฉ
      • ์˜ต์…˜ f: force, ์งˆ๋ฌธ์„ ๋ฐ›์ง€ ์•Š๊ณ  ์ง€์šธ ๋•Œ ์‚ฌ์šฉ
  • mv: ํด๋”๋‚˜ ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ / ํด๋”๋‚˜ ํŒŒ์ผ ์œ„์น˜ ์˜ฎ๊ธฐ๊ธฐ

    • mv [ํด๋”/ํŒŒ์ผ ์ด๋ฆ„] [๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” new ํŒŒ์ผ ์ด๋ฆ„]
    • mv [ํด๋”/ํŒŒ์ผ ์ด๋ฆ„] [๋„์ฐฉ ํด๋” ์ด๋ฆ„]
  • cp(copy): ํด๋”/ํŒŒ์ผ ๋ณต์‚ฌ

    • cp [์›๋ณธ ํŒŒ์ผ ์ด๋ฆ„] [๋ณต์‚ฌํ•  ํŒŒ์ผ ์ด๋ฆ„]
    • cp -rf: ํด๋” ๋ณต์‚ฌ
      • cp -rf myFolder ../ : ์ƒ์œ„ ํด๋”๋กœ ๋ณต์‚ฌ
        โœ‹ย . : ํ˜„์žฌ ํด๋” / .. : ํ˜„์žฌ ํด๋”(.)๋ณด๋‹ค ์•ž์— ์žˆ๋Š” ํด๋”ย 

๐Ÿ“Žย ์ ˆ๋Œ€ ๊ฒฝ๋กœ & ์ƒ๋Œ€ ๊ฒฝ๋กœ

  • ์ ˆ๋Œ€ ๊ฒฝ๋กœ: ๊ธฐ์ค€์ (๋ฃจํŠธ ํด๋”, /)์œผ๋กœ๋ถ€ํ„ฐ์˜ ์ ˆ๋Œ€์ ์ธ ์œ„์น˜๋กœ์จ, ํŠน์ • ํด๋”๋‚˜ ํŒŒ์ผ์ด ๋ฃจํŠธ ํด๋”๋กœ๋ถ€ํ„ฐ ์–ด๋–ค ํด๋”๋กœ ์ง„์ž…ํ•˜๋Š” ๊ฒฝ์šฐ ๋งŒ๋‚  ์ˆ˜ ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋ƒ„ /Users/bean/helloWorld/hello
  • ์ƒ๋Œ€ ๊ฒฝ๋กœ: ํŠน์ • ํด๋”/ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ํ˜„์žฌ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์ ์œผ๋กœ ๋‚˜ํƒ€๋ƒ„
    cd ./hello : ./๋Š” โ€˜ํ˜„์žฌ ํด๋” ์•„๋ž˜์˜'๋ผ๋Š” ๋œป. ์ฆ‰, ํ•˜์œ„ํด๋”๋กœ ์ด๋™
    โœ‹ย = cd ~/helloWorld/hello cd hello

๐Ÿ“Žย ๊ด€๋ฆฌ์ž(root) ๊ถŒํ•œ

  • ์ ˆ๋Œ€ ๊ฒฝ๋กœ์˜ ๊ธฐ์ค€์ ์ธ ๋ฃจํŠธ ํด๋”(/)๋Š” Linux์˜ ๊ด€๋ฆฌ์ž ์˜์—ญ โ†’ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ๋Š” ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์—†์Œ

  • whoami : ํ˜„์žฌ ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž ํ™•์ธ

  • ์‚ฌ์šฉ์ž ๊ถŒํ•œ์€ username ํด๋” ๋‚ด์—์„œ๋งŒ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

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

    • ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์€, ์‚ฌ์šฉ์ž ๊ถŒํ•œ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Œ
    • ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜/๋ณ€๊ฒฝ/์‚ญ์ œํ•˜๋Š” ๊ถŒํ•œ์„ ์ฐจ๋‹จํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธ
  • ์‚ฌ์šฉ์ž ํด๋”์˜ ๊ฒฝ๋กœ(Path): ~/ ๋กœ ํ‘œ์‹œ (~๋Š” ๋ฃจํŠธํด๋”(/)๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ํด๋”(username)๊นŒ์ง€์˜ ๊ฒฝ๋กœ ์ถ•์•ฝ ํ˜•ํƒœ


๐Ÿ“Žย sudo: ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํš๋“ ๋ช…๋ น์–ด

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜/๋ณ€๊ฒฝ/์‚ญ์ œ ์‹œ, ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š” โ†’ sudo ๋ช…๋ น์–ด ์‚ฌ์šฉ
  • ๊ธฐ๋ณธ์ ์ธ CLI ๋ช…๋ น์–ด์˜ ์•ž์— ์ž‘์„ฑํ•˜์—ฌ, ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ์ผ์‹œ์ ์œผ๋กœ ํš๋“ํ•˜๋Š” ๋ช…๋ น์–ด (with password:8907)
  • sudo๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑํ•œ ํด๋”์˜ ์†Œ์œ ์ž๋Š” root โ‡’ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์ด ์•„๋‹Œ, ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์ƒ์„ฑ
    • ls -l ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํด๋”/ํŒŒ์ผ ๊ถŒํ•œ ํ™•์ธ ๊ฐ€๋Šฅ

ย  โœ‹ย ๊ฒฝ๋กœ /etc/๋Š” ๋ฃจํŠธํด๋” ์•„๋ž˜์˜ ํด๋”๋กœ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ๋ฒ—์–ด๋‚œ ์œ„์น˜์—์„œ ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ๋ฐ˜๋“œ์‹œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ํ•„์š”


๐Ÿ“Žย nano editor

: CLI ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์—๋””ํ„ฐ

  1. ํŒŒ์ผ ์—ด๊ธฐ

    nano hello.js. # hello.js๋ฅผ nano editor์—์„œ ์—ด๊ธฐ
    nano  # nano editor ๊ทธ๋ƒฅ ์‹คํ–‰
  2. ํŒŒ์ผ ํŽธ์ง‘ ํ›„ ์ข…๋ฃŒ

    ^X = control + X

  3. ํŒŒ์ผ ์ €์žฅ

    ^0 WriteOut



2๏ธโƒฃย ํŒจํ‚ค์ง€ & ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

: ํŒจํ‚ค์ง€์˜ ์„ค์น˜, ๋ณ€๊ฒฝ, ์‚ญ์ œ ๋“ฑ ๊ด€๋ฆฌ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ

๐Ÿ“Žย brew ๋ช…๋ น์–ด

  • brew update: brew ์ž์ฒด ์—…๋ฐ์ดํŠธ
  • brew outdated: ์—…๋ฐ์ดํŠธ ํ•„์š”ํ•œ ํŒŒ์ผ ์กฐํšŒ
  • brew upgrade [ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„]: ํ”„๋กœ๊ทธ๋žจ ์—…๊ทธ๋ ˆ์ด๋“œ(์—…๋ฐ์ดํŠธ)
  • brew search [๊ฒ€์ƒ‰์–ด]: ํ”„๋กœ๊ทธ๋žจ ๊ฒ€์ƒ‰
  • brew info [ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„]: ํ”„๋กœ๊ทธ๋žจ ์ •๋ณด ํ™•์ธ
  • brew install [ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„]: ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜
  • brew uninstall [ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„]: ํ”„๋กœ๊ทธ๋žจ ์‚ญ์ œ
  • brew list: ์„ค์น˜๋œ ํ”„๋กœ๊ทธ๋žจ ๋ณด๊ธฐ

๐Ÿ“Žย wget ์„ค์น˜

  • wget: URL์„ ํ†ตํ•ด ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ
    brew install wget  # wget ์„ค์น˜
    wget -O goodjob.txt <https://bit.ly/37sJqCo>  # goodjob.txt ํŒŒ์ผ ์ƒ์„ฑ


3๏ธโƒฃย Node.js

: JavaScript runtime(ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์œผ๋กœ ์ฆ‰, ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•  ๋•Œ, ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” ๊ณณ) ์ค‘ ํ•˜๋‚˜
โ†’ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ๊ณณ์—์„œ๋„ JS ์‹คํ–‰ ๊ฐ€๋Šฅ โ‡’ ์„œ๋ฒ„ ๊ตฌ์ถ• ๋“ฑ ํ™œ์šฉํญ ํฌ๊ฒŒ ํ™•์žฅ

โœ‹ย JavaScript ๋Ÿฐํƒ€์ž„ ์ข…๋ฅ˜: Chrome, Safari, FireFox ๋“ฑ์˜ ์›น ๋ธŒ๋ผ์šฐ์ €

# nvm์œผ๋กœ lts ๋ฒ„์ „์˜ Node.js ์„ค์น˜
nvm install --lts

# Node.js ๋ฒ„์ „ ํ™•์ธ
node -v

# JS ํŒŒ์ผ์„ Node.js๋กœ ์‹คํ–‰
node <file_name>

โœ‹ย LTS(Long-Term Support): Node.js์—์„œ ์ง€์›ํ•˜๋Š” ๊ธฐ๊ฐ„์ด ๊ธด ๊ฒƒ์„ ์˜๋ฏธ


๐Ÿ“Žย nvm

  • nvm(Node Version Manager): node.js์˜ ๋‹ค์–‘ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•จ
    โ‡’ ๋‹ค์–‘ํ•œ Node.js version๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ
    # Wget ๋ช…๋ น์–ด๋กœ nvm ์„ค์น˜
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    
    # nvm ๋ฒ„์ „ ํ™•์ธ
    nvm --version
    
    # nvm์„ ํ†ตํ•ด ์„ค์น˜ํ•œ Node.js version ํ™•์ธ
    nvm ls
    
    # ํŠน์ • ๋ฒ„์ „์˜ Node.js ์„ค์น˜
    nvm install <version number(12.18.3)>
    
    # ์‚ฌ์šฉ ์ค‘์ธ Node.js version์„ ๋‹ค๋ฅธ ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝ
    nvm use <version number>

๐Ÿ“Žย npm

: Node Package Manager

โœ‹ย Linux์˜ Package Manager: apt / macOS์˜ Package Manager: brew

: node.js์—์„œ ๋‚จ์ด ๋งŒ๋“ค์–ด๋„ฃ์€ ๋ชจ๋“ˆ โ†’ ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์•„๋‘” ๊ณณ์ด package.json

# npm script
npm run <script name>
npm run start

๐Ÿ“Žย package.json

: npm ๋ชจ๋“ˆ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ํŒŒ์ผ
โ‡’ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ์Œ

  • ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์‹ค์ œ ๋ชจ๋“ˆ์€ node_modules ํด๋”์— ๋”ฐ๋กœ ์ €์žฅ๋จ
    โ‡’ package.json์—๋Š” ์–ด๋–ค ๋ชจ๋“ˆ์ธ์ง€๋งŒ ์ ํ˜€ ์žˆ์Œ
    โœ‹ย ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์‹ค์ œ ๋ชจ๋“ˆ์€ package.json์ด ์•„๋‹Œ node_modules ํด๋”์— ์ €์žฅ

๐Ÿ‘‰๐Ÿป npm install โ†’ package.json์—์„œ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•˜๋Š” ๋ชจ๋“ˆ ๋‹ค์šด๋กœ๋“œ โ†’ node_modules ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

  • dependency(์˜์กด์„ฑ ๋ชจ๋“ˆ): ๊ฐœ๋ฐœ์ด๋‚˜ ์‹คํ–‰์— ํ•ด๋‹น ๋ชจ๋“ˆ์„ โ€˜์˜์กดโ€™ (ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๊ณผ ๊ด€๊ณ„์—†๋Š” ์˜ค๋กœ์ง€ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ํ•„์š”ํ•œ โ€˜์˜์กด์„ฑ ๋ชจ๋“ˆ')
    • dependencies: ์ง์ ‘ ์‹คํ–‰๊ณผ ๊ด€๋ จ ์žˆ๋Š” dependency
    • devDependencies: ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์ด ๋ฌด์—‡์ธ์ง€ ์ ํ˜€ ์žˆ์Œ
      # --save-dev ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์„ค์น˜ํ•˜๋ฉด, ์ž๋™์œผ๋กœ devDependencies์— ์ถ”๊ฐ€๋จ
      npm install mocah --save-dev
node.jsnpmnvm
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝnode.js ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €node.js ๋ฒ„์ „ ๋งค๋‹ˆ์ €


4๏ธโƒฃย Git

: ๊ฐœ๋ฐœ์ž์˜ ์ฝ”๋“œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์‚ฐํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Version Control System)

๐Ÿ‘‰๐Ÿปย ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋œ ์ด๋ ฅ์„ ์‰ฝ๊ฒŒ ํ™•์ธ ๊ฐ€๋Šฅ / ํŠน์ • ์‹œ์ ์— ์ €์žฅ๋œ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์‹œ์ ์œผ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Œ

๐Ÿ“Žย ๋ฒ„์ „ ๊ด€๋ฆฌ ์‚ฌ์šฉ ์ด์œ 

  1. ํŒŒ์ผ ๋ณ€๊ฒฝ์‹œ ๋ณ€๊ฒฝ ์ด๋ ฅ ์ €์žฅ ๊ฐ€๋Šฅ
  2. ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Œ
  3. ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์‰ฌ์›€
  4. ํ˜‘์—…์— ์šฉ์ด
  5. ๋ฐฑ์—…์šฉ

โœ… Git: ์†Œ์Šค ์ฝ”๋“œ ๊ธฐ๋ก์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
โœ… Github: Git Repository(์ €์žฅ์†Œ)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค

  • Git repository: Git์œผ๋กœ ๊ด€๋ฆฌ๋˜๋Š” ํด๋”
    • Remote Repository: ์›๊ฒฉ ์˜จ๋ผ์ธ ์„œ๋ฒ„ ์ƒ์˜ ์ €์žฅ์†Œ (์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ๊ณต์œ  ๊ฐ€๋Šฅ)
    • Local Repository: ๋‚ด ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์†Œ (๋‚ด ๊ฐœ์ธ ์ „์šฉ ์ €์žฅ์†Œ)

โœ‹ ์˜คํ”ˆ ์†Œ์Šค(์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๊ณต๊ฐœ๋œ SW)๋Š” ๋ˆ„๊ตฌ๋‚˜ ์ž์œ ๋กญ๊ฒŒ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€/๊ฐœ์„  ๊ฐ€๋Šฅ โ‡’ ๊ธฐ์—ฌํ•˜๋‹ค(contribute)

Git ๋ช…๋ น์–ด

  • commit: ํŠน์ • ์‹œ์ ์— ์ƒ์„ฑ๋œ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ(=์Šค๋ƒ…์ƒท)์„ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ์ž‘์—…
  • fork: ์˜คํ”ˆ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์—…๋กœ๋“œ ๋˜์–ด ์žˆ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋‚ด ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ์ž‘์—…
  • clone: ์›๊ฒฉ ์ €์žฅ์†Œ(Remote)์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ(Local)๋กœ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…
  • push: ๋‚ด ์ปดํ“จํ„ฐ(Local)์—์„œ ์ž‘์—…ํ•œ ์†Œ์Šค์ฝ”๋“œ ๋ณ€๊ฒฝ ์ž‘์—…์„ commit์„ ํ†ตํ•ด ์ €์žฅํ•ด์ค€ ๋’ค, ์›๊ฒฉ ์ €์žฅ์†Œ(Remote)์— ๋ฐ˜์˜ํ•˜๋Š” ์ž‘์—…
    (Local Repository์— ๊ธฐ๋กํ•ด ๋†“์€ commit์„ Remote Repository๋กœ ์—…๋กœ๋“œ)
  • pull request: ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋ฐ˜์˜ ์—ฌ๋ถ€ ์š”์ฒญ
  • pull: ์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ƒ๊ฒผ์„ ๋•Œ, ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋ฐ˜์˜ํ•˜๋Š” ์ž‘์—…

๐Ÿ“Žย Git ํ™˜๊ฒฝ์„ค์ •

  1. ์‚ฌ์šฉ์ž ์ •๋ณด ๋“ฑ๋ก

    $ git config --global user.name "Beanxx"
    $ git config --global user.email "tnqls1211v@gmail.com"

    โœ‹ย โ€”global ์˜ต์…˜: ์‚ฌ์šฉ์ž ํ™ˆ์— ์ €์žฅ๋˜๋ฏ€๋กœ git ์„ค์ •์‹œ ์ฒ˜์Œ์— ํ•œ ๋ฒˆ๋งŒ ์ž…๋ ฅํ•ด๋„ ๋จ

  1. ์ถ”๊ฐ€ ์ธ์ฆ ๋ฐฉ๋ฒ•

    # 1. SSH ํ‚ค ์ƒ์„ฑ
    ssh-keygen 
    # ssh keypair: id_rsa(Private Key/Secret Key), id_rsa.pub(Public Key) ์ƒ์„ฑ
    
    # 2. Public Key(๊ณต๊ฐœํ‚ค) ๋ณต์‚ฌ
    cat ~/.ssh/id_rsa.pub
    
    # 3. Github์— ๊ณต๊ฐœํ‚ค ๋“ฑ๋ก
    # Settings -> SSH and GPG keys -> New SSH key -> Add SSH key
    
    # 4. SSH key ์‚ฌ์šฉ
    git clone <code์˜ SSH ํƒญ์— ๋‚˜ํƒ€๋‚œ ๋ฌธ์ž์—ด ๋ณต์‚ฌ>
    
  2. Github CLI๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ๊ณผ์ •

    $ brew install gh  # Github CLI ์„ค์น˜
    $ gh auth login  # Login ์‹œ๋„


โœ… Pair Programming

  1. range module๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง์ˆ˜ ์ƒ์„ฑ๊ธฐ ์ƒ์„ฑ
  2. assignment-manager๋กœ ์ œ์ถœ
  3. calculator sprint ๊ณผ์ œ ์žฌ์ œ์ถœ
profile
FE developer

0๊ฐœ์˜ ๋Œ“๊ธ€