21.01.27

์ด์†Œ์ž„ยท2021๋…„ 1์›” 27์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
7/12

๐Ÿ’ก

CLI(Command Line Interface), Git

  • CLI๋Š” ๋งˆ์šฐ์Šค๋กœ GUI๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๊ฐ•๋ ฅํ•˜๋ฉฐ, ์›๊ฒฉ์— ์žˆ๋Š” ์„œ๋ฒ„๋„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด ์ ‘๊ทผ์„ฑ์ด ์ข‹๋‹ค. ์„œ๋ฒ„ ์‹œ์žฅ์—์„œ์˜ *nix ์ ์œ ์œจ์ด ๋†’์•„ LINUX/UNIX๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค(AWS ๋ฐ Azure ๋“ฑ์˜ ์„œ๋ฒ„). ์˜คํ”ˆ ์†Œ์Šค๋‹ค.

  • Useful Command
    • ls ํ˜„์žฌ ์œ„์น˜์˜ ํŒŒ์ผ ๋ณด๊ธฐ
      • -a ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. (all)
      • -l ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ž์„ธํžˆ ๋ณด์—ฌ์ค€๋‹ค. (list)
    • pwd ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ํ™•์ธ
    • cd ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™
      • ~ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ
      • / ๋ฃจํŠธ(์ตœ์ƒ์œ„) ๋””๋ ‰ํ† ๋ฆฌ
      • .. ๋ถ€๋ชจ ๋””๋ ‰ํ† ๋ฆฌ
      • . ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ
    • touch [file_name] ๋นˆ ํŒŒ์ผ ์ƒ์„ฑ
    • mkdir [dir_name] ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
    • cat [file_name] ํ…์ŠคํŠธ ํ˜•ํƒœ์˜ ํŒŒ์ผ ํ™•์ธ
    • mv [file_or_dir] ๋’ค์— ๋ถ™์ด๋Š” ํ˜•ํƒœ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์ด ๋‹ฌ๋ผ์ง„๋‹ค.
      • [target_dir] ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ์˜ฎ๊ธฐ๊ธฐ
      • [new_name] ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
    • cp [file] [target_dir], cp -r [folder] ๋ณต์‚ฌ
    • rm ์‚ญ์ œ. ์‚ญ์ œํ•˜๊ธฐ ์ „ ํ™•์ธ๊ณผ์ • ์—†์œผ๋ฉฐ ํœด์ง€ํ†ต์—๋„ ๋“ค์–ด๊ฐ€์ง€ ์•Š์•„ ๋ณต๊ตฌ ๋ถˆ๊ฐ€๋Šฅ. ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉ.
      • [file_name] ํŒŒ์ผ ์‚ญ์ œ
      • -r [dir_name] ํด๋” ์‚ญ์ œ
    • chmod, chown ์ ‘๊ทผ ๊ถŒํ•œ ์ˆ˜์ •
    • code . ํ˜„์žฌ ํด๋” VS Code ์—๋””ํ„ฐ๋กœ ์˜คํ”ˆ. code [file_name]์œผ๋กœ ํŒŒ์ผ๋„ ๊ฐ€๋Šฅ.
    • xdg-open . ํ˜„์žฌ ํด๋” ์˜คํ”ˆ(์šฐ๋ถ„ํˆฌ)

  • sudo ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰. ๊ด€๋ฆฌ์ž๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ ์ฝ๊ธฐ, ์ˆ˜์ • ๋“ฑ. ํ•„์š”์— ๋”ฐ๋ผ ํ˜„๋ช…ํ•˜๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ๊ฐ€๋Šฅํ•œ user ๊ถŒํ•œ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•œ๋ฒˆ ์ธ์ฆํ•˜๋ฉด ์ดํ›„๋Š” ์ƒ๋žต.

  • ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” CLI ํ”„๋กœ๊ทธ๋žจ

    • ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ Git
    • Package Manager(ํ”„๋กœ๊ทธ๋žจ ์ถ”๊ฐ€/์‚ญ์ œ)
      • Ubuntu: apt
      • macOS: Homebrew
      • Windows: chocolatey
    • ํ…์ŠคํŠธ ์—๋””ํ„ฐ vim
    • ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๊ด€๋ฆฌ AWS CLI

  • Git
    • ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?
      • ๊ฐ๊ฐ์˜ ๋ฒ„์ „์„ ์ €์žฅํ•˜๊ณ  ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ฐฑ์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
      • ํ…์ŠคํŠธ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฒ„์ „๋งˆ๋‹ค ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ˜‘์—…ํ•  ๋•Œ ํŽธ๋ฆฌํ•˜๋‹ค.
    • github. git์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋ชจ์—ฌ ๋งŒ๋“  ์†Œ์…œ ํ”Œ๋žซํผ. ์ž์‹ ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๋งŒ๋“  ์žฅ์†Œ. ๊ฐ์ž ์ €์žฅ์†Œ(repository)๊ฐ€ ์žˆ์œผ๋ฉฐ, React ๊ฐ™์€ ์œ ๋ช… ์˜คํ”ˆ ์†Œ์Šค๋“ค๋„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ธฐ๋Šฅ
      • fork ์ €์žฅ์†Œ๋ฅผ ํ†ต์ฑ„๋กœ ๋ณต์‚ฌํ•ด ๋‚ด ์ €์žฅ์†Œ๋กœ ์˜ฎ๊ธด๋‹ค.
      • clone local repository, ๋‚ด ์ปดํ“จํ„ฐ๋กœ ํŒŒ์ผ์„ ๋ฐ›์•„์˜จ๋‹ค.
      • push ์›๊ฒฉ ์ €์žฅ์†Œ๋กœ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•œ๋‹ค.
      • pull ์›๊ฒฉ ์ €์žฅ์†Œ์— ์žˆ๋Š” ์ž‘์—…๋ฌผ์ด cloneํ•ด์˜จ ์ดํ›„ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ, ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ๋‹ค์‹œ ๋ฐ›์•„์™€ ๋ฎ์–ด์“ฐ๊ธฐํ•œ๋‹ค.
      • add commitํ•  ํŒŒ์ผ, ์ €์žฅํ•  ํŒŒ์ผ์„ ์ง€์ •ํ•ด ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•œ๋‹ค.
      • commit ์Šค๋ƒ…์ƒท. -m์œผ๋กœ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋”ํ•ด์„œ ์ˆ˜์ •์‚ฌํ•ญ์„ ์ €์žฅํ•œ๋‹ค.
    • Workflow
      - Staging Area ์„ ํƒ์ ์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค. git add ๋ผ๋Š” ๋ช…๋ น์–ด๋กœ ์ปค๋ฐ‹ํ•  ํŒŒ์ผ์„ ๊ณ ๋ฅด๊ณ  ์ถ”๊ฐ€ํ•ด ์ปค๋ฐ‹์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.
      - branching, merging ๊ฐ€์ง€๋ฅผ ์ƒˆ๋กœ ์น˜๊ณ  ํ•ฉ์น˜๋Š” ๊ฒƒ. ์•ˆ์ •์ ์ธ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด master - develop - feature ๋“ฑ์œผ๋กœ ๊ฐˆ๋ž˜๋ฅผ ๋‚˜๋ˆ„์–ด ์ƒˆ๋กœ ๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ์„ ์•ˆ์ •์ ์œผ๋กœ ์ƒ์œ„ branch์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๋‹ค์–‘ํ•œ branch๋“ค์„ ํ•„์š”์— ๋”ฐ๋ผ ์ถ”๊ฐ€ํ•œ๋‹ค.
      (ex. feature branch์—์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ -> develop branch๋กœ merging -> develop branch ์—์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ๊ธฐ์กด ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ์ถฉ๋ถ„ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นจ -> master branch๋กœ merging)




ใ€€

๐Ÿ“

CLI๋Š” ์‹ ๊ธฐํ•˜๋ฉด์„œ๋„ ์–ด๋ ต๋‹ค. ์—๋Ÿฌ ๋กœ๊ทธ๋ผ๋„ ๊ทธ๋ƒฅ ์˜์–ด ๋ฌธ์žฅ์ผ ๋ฟ์ธ๋ฐ ๋” ๋‹นํ™ฉํ•˜๊ฒŒ ๋œ๋‹ค. ์˜ค๋Š˜ CLI ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐฐ์šด ๊น€์— ์œˆ๋„์šฐ์—์„œ ์• ์šฉํ•˜๋˜ ํ”„๋กœ๊ทธ๋žจ์„ ์šฐ๋ถ„ํˆฌ๊ฐ€ ์„ค์น˜๋œ ๋…ธํŠธ๋ถ์—์„œ๋„ ์“ฐ๋ ค๊ณ  ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ๋Š”๋ฐ, ์—๋Ÿฌ ๋กœ๊ทธ๊ฐ€ ๋œจ๋Š” ๊ฒŒ ์•„๋‹Œ๊ฐ€? ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜ ์šด์˜์ฒด์ œ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ์—ˆ์ง€๋งŒ, apt-get์œผ๋กœ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ์ค‘๊ฐ„์— ๊ฑฐ๋“ญ ์—๋Ÿฌ ๋กœ๊ทธ ํ•œ์ค„์ด ๋œจ๊ธธ๋ž˜, ํ˜น์‹œ๋‚˜ ํ•ด์„œ ๊ฐœ๋ฐœ์ž๋ถ„์˜ github์— ๋“ค์–ด๊ฐ€ ์ž์„ธํžˆ ์‚ดํ”ผ๋‹ˆ ์ตœ๊ทผ ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜ ์šด์˜์ฒด์ œ์—์„œ๋Š” ์„ค์น˜ ์ค‘ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์ด ์žˆ๊ณ  ๊ณ ์น  ์ƒ๊ฐ๋„ ์—†๋‹ค๋Š” ํŒŒ์ผ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. (๊ทธ๊ฑธ ์„ค์น˜ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€์— ์จ๋†“์„ ๊ฒƒ์ด์ง€!) ์•„๋ฌดํŠผ Git์œผ๋กœ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•  ๋งŒํผ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‚ ์ด ๋‚ด๊ฒŒ๋„ ์˜ค๊ฒ ์ง€ ์ƒ๊ฐํ•˜๋ฉด ์‹ ๊ธฐํ•˜๊ณ  ๋‘๊ทผ๊ฑฐ๋ฆฐ๋‹ค.

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