๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Frontend Dev/๐Ÿฅ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE ๋ถ€ํŠธ์บ ํ”„

Section1 Unit7 Linux, Git ๊ธฐ์ดˆ

๋ฐ˜์‘ํ˜•


Section1 Unit7 [Linux/Git] ๊ธฐ์ดˆ

 

๐Ÿ“Œ Chapter1. Command-Line Interface

ํ„ฐ๋ฏธ๋„(Terminal)์€ ์ž…๋ ฅํ•˜๋Š” ๊ธ€์ž์™€ ์ถœ๋ ฅ๋˜๋Š” ๊ธ€์ž๋กœ ์ปดํ“จํ„ฐ์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” CLI(Command-Line Interface)

CLI๋กœ ์ƒ์„ฑํ•œ ํด๋”๋‚˜ ํŒŒ์ผ์€ GUI๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , GUI๋กœ ์ž‘์—…ํ•œ ๋‚ด์šฉ๋„ CLI์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

• Terminal์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ช…๋ น์–ด๋“ค๋„ ํ•™์Šตํ–ˆ๋‹ค. ํ‰์†Œ์— ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•˜๋Š”๋ฐ, ์ด๋ฒˆ ์ˆ˜์—…์œผ๋กœ ์ •๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋…ธ์…˜์— ๋”ฐ๋กœ ์ •๋ฆฌ๋Š” ํ•ด ๋‘์—ˆ๋Š”๋ฐ, ์‹œ๊ฐ„๋‚˜๋ฉด ๋”ฐ๋กœ ๋ธ”๋กœ๊ทธ์— ๊ฒŒ์‹œ๊ธ€๋กœ ์“ฐ๋ฉด ์ข‹์„๋“ฏ ํ•˜๋‹ค :)

 

๋ผ์ด๋ธŒ ์„ธ์…˜์—์„œ์˜ ์ˆ˜์—…๋„ ์•Œ์ฐจ๊ณ , ์žฌ๋ฏธ์žˆ์—ˆ๋‹ค ๐Ÿ‘๐Ÿป 

• ์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค์˜ ์†Œ๋น„์ž๊ฐ€ ์•„๋‹ˆ๋ผ ๊ณต๊ธ‰์ž์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํ„ฐ์— ๋Œ€ํ•ด ๋” ์ž˜ ์•Œ์•„์•ผ ํ•œ๋‹ค. (CLI๋Š” ๊ธฐ๋ณธ!)

ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์ธํ”„๋ผ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” CLI๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

• ์›น๊ฐœ๋ฐœํ•˜๋ฉด AWS๋ฅผ ๋นผ๋จน์„ ์ˆ˜ ์—†์Œ!

 - AWS ์‹ค๋ฌผ ์ปดํ“จํ„ฐ๋Š” ๊ธฐ์—…์˜ ๊ธฐ๋ฐ€์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋””์— ์œ„์น˜ํ•ด ์žˆ๋Š”์ง€ ๊ณต๊ฐœ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. → ์›๊ฒฉ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค. (CLI๊ฐ€ ํ•„์š”)

 - AWS๋Š” GUI๋„ ์žˆ์ง€๋งŒ, CLI๋กœ์˜ ์ž‘์—…์ด ๋น„์šฉ์ด ๋” ํšจ์œจ์ ์ด๊ณ , ์›๊ฒฉ ์ปดํ“จํ„ฐ์—๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

๐Ÿ“Œ Chapter2. ํŒจํ‚ค์ง€์™€ ํŒจํ‚ค์ง€๋งค๋‹ˆ์ €

 ํŒจํ‚ค์ง€๋ž€ ๊ด€๋ จ๋œ ๋ชจ๋“ˆ๋“ค์„ ๋ฌถ์–ด์„œ ํ•œ๋ฒˆ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ํŒจํ‚ค์ง€๋Š” ๋ณดํ†ต ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ชจ๋“ˆ ํŒŒ์ผ๊ณผ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ํŒŒ์ผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

ํŒจํ‚ค์ง€๋งค๋‹ˆ์ €(Package Manager)๋Š” ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ๋กœ ํŒจํ‚ค์ง€์˜ ์„ค์น˜, ๋ณ€๊ฒฝ, ์‚ญ์ œ ๋“ฑ ๊ด€๋ฆฌ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. 

• MacOs์˜ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € Homebrew๋„ ์„ค์น˜ํ–ˆ๋‹ค! 

 

๐Ÿ“Œ Chapter3. Node.js

Node.js๋Š” JavaScript ๋Ÿฐํƒ€์ž„์ด๋‹ค. ๋Ÿฐํƒ€์ž„์ด๋ž€ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•  ๋•Œ, ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” ๊ณณ์„ ๋งํ•œ๋‹ค. Node.js๋ผ๋Š” ์ƒˆ๋กœ์šด JavaScript ๋Ÿฐํƒ€์ž„์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜๋ฉด์„œ, ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ๊ณณ์—์„œ๋„ JavaScript๋ฅผ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. JavaScript๋ฅผ ํ†ตํ•ด ์›น ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋“ฑ ํ™œ์šฉํญ์ด ํฌ๊ฒŒ ํ™•์žฅ๋˜์—ˆ๋‹ค.

NVM (Node Version Manager): nvm์€ Node.js์˜ ๋‹ค์–‘ํ•œ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋กœ Node.js๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๋‹ค์–‘ํ•œ Node.js version์œผ๋กœ ๋ฐ”๊พธ์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (Node.js ์ด์ „ ๋ฒ„์ „ ํ•„์š”์‹œ Node.js๋ฅผ ์‚ญ์ œ ํ›„ ์žฌ์„ค์น˜ ํ•˜์ง€ ์•Š๊ณ ๋„ ์ด์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.)

npm์€ Node Package Manager์˜ ์•ฝ์–ด๋กœ, Node.js๋ฅผ ์œ„ํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ์ด๋‹ค. npm์€ Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. npm์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“  ํŒจํ‚ค์ง€๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž์‹ ์ด ๋งŒ๋“  ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

package.json์€ npm ๋ชจ๋“ˆ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ํŒŒ์ผ๋กœ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๋‹ค. package.json์—๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋“ค์ด ๋ฌด์—‡์ธ์ง€, ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•, ํ”„๋กœ๊ทธ๋žจ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์ด ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค. (๋‹จ, ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์‹ค์ œ ๋ชจ๋“ˆ์€ node_modules๋ผ๋Š” ํด๋”์— ์ €์žฅ๋œ๋‹ค.)

 

๐Ÿ“Œ Chapter4. Git

• Git: ์†Œ์Šค ์ฝ”๋“œ ๊ธฐ๋ก์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Version Control System)

• Github: Git Repository๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค. ๋‚ด ์ปดํ“จํ„ฐ์—์„œ Git์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ฌ๋ ค๋‘˜ ์ˆ˜ ์žˆ๋‹ค.

 

 

โญ๏ธ ๊ณผ์ œ. ์ง์ˆ˜์ƒ์„ฑ๊ธฐ

 ์ด๋ฒˆ ๊ณผ์ œ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ node.js ํ™˜๊ฒฝ์—์„œ JavaScript ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  npm ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•ด๋ณด๋Š” ๊ณผ์ œ์˜€๋‹ค. ์ฃผ์–ด์ง„ ๊ณผ์ œ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ๋ชจ๋“  ์ž‘์—…์„ Terminal์—์„œ CLI๋กœ ํ•ด๊ฒฐํ–ˆ๊ณ , ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ๊ณผ์ œ ์ œ์ถœ ์‹œ์Šคํ…œ์„ ํ•™์Šตํ–ˆ๋‹ค.

 ๊ฐ„๋‹จํ•˜๊ณ , ์–ด๋ ต์ง€ ์•Š์€ ๊ณผ์ œ์˜€์ง€๋งŒ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ณผ์ •์„ ๊ธฐ๋กํ•ด๋ณผ๊นŒ ํ•œ๋‹ค.

 

Bare Minimum Requirements

โœ“ Node.js ํ”„๋กœ๊ทธ๋žจ์ธ index.js๋ฅผ ์‹คํ–‰์‹œ์ผœ์„œ CLI์—์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

โœ“ range ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๊ณ , ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

โœ“ ์ง์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” getListMultiplesOfTwo ํ•จ์ˆ˜๋ฅผ range ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด์„œ ์ž‘์„ฑํ•˜์„ธ์š”.

    โœ“ npm run test ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์ œ๋Œ€๋กœ ์ž‘์„ฑํ–ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ „๋ถ€ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โœ“ npm run start ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด index.js ํŒŒ์ผ์ด ์‹คํ–‰๋˜๋„๋ก ๋งŒ๋“œ์„ธ์š”.

    โœ“ npm run test ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์ œ๋Œ€๋กœ ์ž‘์„ฑํ–ˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ „๋ถ€ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โœ“ npm run submit ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๊ณผ์ œ๋ฅผ ์ œ์ถœํ•˜์„ธ์š”.

 

1. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ ํ™•์ธ ๋ฐ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

node index.js๋กœ ํŒŒ์ผ์„ ์—ด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

sowon@s-m1 u7-fe-sprint-cli-practice-main % node index.js
node:internal/modules/cjs/loader:1042
  throw err;
  ^

Error: Cannot find module 'range'
Require stack:
- /Users/sowon/Desktop/frontend-dev/CodeStates_SEB/section1/u7-fe-sprint-cli-practice-main/getListMultiplesOfTwo.js
- /Users/sowon/Desktop/frontend-dev/CodeStates_SEB/section1/u7-fe-sprint-cli-practice-main/index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)
    at Module._load (node:internal/modules/cjs/loader:885:27)
    at Module.require (node:internal/modules/cjs/loader:1105:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/Users/sowon/Desktop/frontend-dev/CodeStates_SEB/section1/u7-fe-sprint-cli-practice-main/getListMultiplesOfTwo.js:1:15)
    at Module._compile (node:internal/modules/cjs/loader:1218:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Module._load (node:internal/modules/cjs/loader:922:12)
    at Module.require (node:internal/modules/cjs/loader:1105:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/Users/sowon/Desktop/frontend-dev/CodeStates_SEB/section1/u7-fe-sprint-cli-practice-main/getListMultiplesOfTwo.js',
    '/Users/sowon/Desktop/frontend-dev/CodeStates_SEB/section1/u7-fe-sprint-cli-practice-main/index.js'
  ]
}

Node.js v18.13.0

• ์—๋Ÿฌ๋Š” ๋ฌด์—‡์„ ๋งํ•˜๊ณ  ์žˆ๋‚˜์š”?

  → module ‘range’๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ

• ์ฒ˜์Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ํŒŒ์ผ์€ ์–ด๋–ค ํŒŒ์ผ์ธ๊ฐ€์š”?

  → getListMultiplesOfTwo.js

• ์ฒ˜์Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ํŒŒ์ผ์˜ ๋ช‡ ๋ฒˆ์งธ ์ค„์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‚˜์š”?

  → 1:15 (์ด๊ฒŒ ๋งž๋‚˜..??)

 

2. package.json ํ™•์ธ ๋ฐ ํŒจํ‚ค์ง€ ์„ค์น˜

npm install

npm install๋กœ dependencyํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜

→ node_modules๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ๋œ๋‹ค.

 

npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: <https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/>
npm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm notice Beginning October 4, 2021, all connections to the npm registry - including for package installation - must use TLS 1.2 or higher. You are currently using plaintext http to connect. Please visit the GitHub blog for more information: <https://github.blog/2021-08-23-npm-registry-deprecating-tls-1-0-tls-1-1/>
npm WARN deprecated uuid@3.3.2: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See <https://v8.dev/blog/math-random> for details.
npm ERR! Cannot read properties of null (reading 'pickAlgorithm')

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/sowon/.npm/_logs/2023-04-24T04_22_28_495Z-debug-0.log

npm install ํ•  ๋•Œ ์—๋Ÿฌ๋‚˜์„œ ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ ์บ์‹œ๋ฅผ ์ง€์šฐ๋ผ๊ณ  ํ•ด์„œ

npm cache clear --force

์ด๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ npm install์„ ํ•˜๋‹ˆ ์ •์ƒ ์„ค์น˜๊ฐ€ ๋˜์—ˆ๋‹ค.

 

3. range ๋ชจ๋“ˆ ์„ค์น˜

npm install range

range ๋ชจ๋“ˆ ์„ค์น˜ ํ›„ index.js ํŒŒ์ผ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•œ๋‹ค.

 

↓ ์ด์ œ ๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ๋Š” ์•ˆ๋œจ์ง€๋งŒ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”๊ฒƒ ๊ฐ™์ง€๋Š” ์•Š๋‹ค.

 

4. ํ…Œ์ŠคํŠธ ์‹คํ–‰ (npm run test)

ํ…Œ์ŠคํŠธ์— ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

(range ๋ชจ๋“ˆ์€ ์„ค์น˜ํ–ˆ์ง€๋งŒ ๊ด€๋ จ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ)

 

5. getListMultiplesOfTwo ํ•จ์ˆ˜ ๊ตฌํ˜„

 5-1. range๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

 

 5-2. ๊ณผ์ œ ์š”๊ตฌ์‚ฌํ•ญ ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— package.json์˜ scripts start์— node index.js๋„ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

 5-3. ํ•จ์ˆ˜์™€ package.json์„ ์ˆ˜์ •ํ•˜๊ณ  npm run test ๋‹ค์‹œ ํ•œ ๋ฒˆ ์‹คํ–‰

 

 5-4. ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ๊ณผ์ œ ์ œ์ถœ์„ ์œ„ํ•œ ๊ณผ์ œ ์ œ์ถœ ๋งค๋‹ˆ์ €๋ฅผ ์„ค์น˜ํ•˜๊ณ , npm run submit์œผ๋กœ ๊ณผ์ œ๋ฅผ ์ œ์ถœํ–ˆ๋‹ค.

 

 5-5. ๊ณ„์‚ฐ๊ธฐ ๊ณผ์ œ๋„ ์ œ์ถœ์™„๋ฃŒ ๐Ÿ˜Š


๐ŸŒ™  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

 ์˜ค๋Š˜์€ nvm, node, git ๋“ฑ์„ ์„ค์น˜ํ•˜๊ณ , ๋น„๊ต์  ์ต์ˆ™ํ•˜์ง€ ์•Š์€ terminal ์‚ฌ์šฉ๋ฒ•๊ณผ ํŒจํ‚ค์ง€๋งค๋‹ˆ์ €, git์— ๋Œ€ํ•ด ํ•™์Šตํ–ˆ๋‹ค.

 ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ๊ฐ€๋” terminal์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ๋ชจ๋ฅด๋Š”๊ฒŒ ์žˆ์œผ๋ฉด ํ•ญ์ƒ ๊ทธ๋•Œ๊ทธ๋•Œ ์ฐพ์•„๋ณด๋ฉฐ ํ•ด๊ฒฐํ•˜๊ณ  ๋์ด์–ด์„œ ํ•ญ์ƒ ๋˜‘๊ฐ™์€ ๋ถ€๋ถ„์—์„œ ๋ง‰ํžˆ๊ณค ํ–ˆ์—ˆ๋‹ค. ๋ช…๋ น์–ด๋„ ๊ธฐ์–ต์ด ์•ˆ๋‚˜์„œ ๊ณ„์† ์ฐพ์•„๋ณด๊ณค ํ–ˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ์ˆ˜์—… ๋•Œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ›‘์–ด๋ณด๊ณ  ์ •๋ฆฌํ•ด๋‘์—ˆ๋”๋‹ˆ ๋‹ค์Œ๋ฒˆ์—๋Š” ๊นŒ๋จน์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  git๊ณผ github, ํŒจํ‚ค์ง€๋งค๋‹ˆ์ € ์„ค์น˜์™€ ์‚ฌ์šฉ ๋“ฑ ํ‰์†Œ์— ํ—ท๊ฐˆ๋ ธ๋˜ ๋ถ€๋ถ„๋“ค์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ž์ฃผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์ต์ˆ™ํ•ด์ง€๊ฒ ์ง€?

๋ฐ˜์‘ํ˜•