[SEB_FE_45] 2023.04.24 / CLI, Git ๊ธฐ์ดˆ

Kayยท2023๋…„ 4์›” 24์ผ
0

๐Ÿ“– [๊ฐ•์˜ ๋‚ด์šฉ ๋ฐ ๊ฐœ๋… ์ •๋ฆฌ]
๋ชฉ์ฐจ

  • CLI ๊ฐœ์š” ๋ฐ ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด
  • Node.js
  • git

[CLI ๊ฐœ์š” ๋ฐ ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด]

1) ๋‹จ์–ด ๋ฐ ๊ฐœ๋…

1 - 1) ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ž€?

๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(GUI): ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž…์ถœ๋ ฅ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์•Œ๊ธฐ ์‰ฌ์šด ์•„์ด์ฝ˜ ๋”ฐ์œ„์˜ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. (์ถœ์ฒ˜: ์œ„ํ‚ค๋ฐฑ๊ณผ)

1 - 2) ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋ฐ˜๋Œ€๋˜๋Š” ๊ฐœ๋…์€?

๋ฌธ์ž ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค(CUI(Character User Interface) โ‰’ CLI (Command Line Interface)): ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ด์ „ํŒ์ด๋ฉฐ, ๋ช…๋ น์–ด ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ํ…์ŠคํŠธ ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค.
- ์ปค๋งจ๋“œ(Command): ์ปดํ“จํ„ฐ๋กœ ์‹œ์Šคํ…œ์ด๋‚˜ ์žฅ์น˜์— ๋Œ€ํ•˜์—ฌ ํŠน์ • ๊ธฐ๋Šฅ์˜ ์‹คํ–‰์„ ์ง€์‹œํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋‚˜ ์‹ ํ˜ธ.

1 - 3) GUI์™€ CUI(CLI)์™€์˜ ์ฐจ์ด์ ?

์ฆ‰, ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์—์„œ ๊ทธ๋ž˜ํ”ฝ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€, ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€์˜ ์ฐจ์ด์ด๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ๋กœ DB ์กฐํšŒ๋ฅผ ์œ„ํ•ด GUI ํ”„๋กœ๊ทธ๋žจ์„ ์ผ์„ ๋•Œ์™€ ๋ช…๋ น์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ผ์„ ๋•Œ์˜ ์ฐจ์ด์ด๋‹ค.

2) ์ž์ฃผ ์“ฐ๋Š” ๋ช…๋ น์–ด

2-1) pwd: ํ˜„์žฌ ์œ„์น˜ ํ™•์ธ
2-2) mkdir: ์ƒˆ๋กœ์šด ํด๋” ์ƒ์„ฑํ•˜๊ธฐ
2-3) ls: ํŠน์ • ํด๋”์— ํฌํ•จ๋œ ํŒŒ์ผ์ด๋‚˜ ํด๋” ํ™•์ธํ•˜๊ธฐ
2-4) cd: ํด๋”์— ์ง„์ž…ํ•˜๊ธฐ
2-5) touch: ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ
2-6) cat: ํŒŒ์ผ ๋‚ด์šฉ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅํ•˜๊ธฐ
2-7) rm: ํŒŒ์ผ์ด๋‚˜ ํด๋” ์‚ญ์ œํ•˜๊ธฐ
2-8) mv: ํŒŒ์ผ์ด๋‚˜ ํด๋” ์ด๋™, ์ด๋ฆ„ ๋ณ€๊ฒฝ
2-9) cp: ํด๋”๋‚˜ ํŒŒ์ผ ๋ณต์‚ฌํ•˜๊ธฐ
sudo: ๊ด€๋ฆฌ์ž ๊ถŒํ•œ

[Node.js]

โ€œNode.js๋Š” V8 ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„์ด๋ฉฐ,
๋…ผ๋ธ”๋กœํ‚น I/O์™€ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ํ†ตํ•œ ๋†’์€ ์„ฑ๋Šฅ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.โ€ (์ถœ์ฒ˜: ์œ„ํ‚ค๋ฐฑ๊ณผ)

  • V8 ์—”์ง„: ์›น๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ (๊ตฌ๊ธ€ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์™€ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ธŒ๋ผ์šฐ์ €์— ํƒ‘์žฌ)
  • ์ด๋ฒคํŠธ: ๋ธŒ๋ผ์šฐ์ €์—์„œ ํด๋ฆญ, ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๋“ฑ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ์ผ์–ด๋‚œ ๊ฒƒ์„ ์ด๋ฒคํŠธ๋ผ๊ณ  ํ‘œํ˜„
  • ๋Ÿฐํƒ€์ž„: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ
  • ๋…ผ๋ธ”๋กœํ‚น: ๋น„๋™๊ธฐ(Asynchronous)๋ฅผ ์˜๋ฏธ โ†โ†’ ๋ธ”๋กœํ‚น: ๋™๊ธฐ(Syncronous)๋ฅผ ์˜๋ฏธ
  • I/O: Input๊ณผ Output
  • ๋‹จ์ผ ์Šค๋ ˆ๋“œ: ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๋‹ด๋‹นํ•˜๋Š” ์ตœ์†Œ ์‹คํ–‰ ๋‹จ์œ„๋ฅผ ์Šค๋ ˆ๋“œ

nvm

Node.js์˜ ๋ฒ„์ „๊ด€๋ฆฌ๋งค๋‹ˆ์ €(Node.js Version Manager)
nvm install --lts: node์˜ LTS ๋ฒ„์ „ ์„ค์น˜
nvm install 18.15.0: node.js์˜ ํŠน์ • ๋ฒ„์ „ ์„ค์น˜ ๊ฐ€๋Šฅ
nvm ls: ์„ค์น˜๋œ node ๋ฒ„์ „ ๋ฆฌ์ŠคํŠธ ํ™•์ธ ๊ฐ€๋Šฅ
nvm use 18.15.0: ํ•ด๋‹น ํ„ฐ๋ฏธ๋„์—์„œ ์“ธ node ๋ฒ„์ „ ์„ ํƒ

[git]

Local Repository vs Remote Repository

์ถœ์ฒ˜: tistory - [Git๋นจ]4. Remote Repository

Github ํ™˜๊ฒฝ ์„ค์ •

Git์—์„œ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์„ค์ •

Git์€ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋ฐ‹์„ ID์™€ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. Git ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ GitHub ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
Github docs - Git์—์„œ ์‚ฌ์šฉ์ž ์ด๋ฆ„ ์„ค์ •

๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๋งŒ๋“ค๊ธฐ

CLI ๋˜๋Š” API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub์— ์ธ์ฆํ•  ๋•Œ ์•”ํ˜ธ ๋Œ€์‹  personal access token๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
Github docs - ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ ๋งŒ๋“ค๊ธฐ

SSH and GPG keys

์ž๊ฒฉ ์ฆ๋ช…์„ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ ค๋ฉด ์ •๊ธฐ์ ์œผ๋กœ SSH ํ‚ค๋ฅผ ๊ฐ์‚ฌํ•˜๊ณ , ํ‚ค๋ฅผ ๋ฐฐํฌํ•˜๊ณ , GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์—์„œ ๊ณ„์ •์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ถŒํ•œ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฒ€ํ† ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Github docs - SSH ํ‚ค ๊ฒ€ํ† 

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