[week_06] Node.js ๊ธฐ์ดˆ | NPM์˜ ์ดํ•ด, NPX, Node.js์˜ ๋ชจ๋“ˆ, ES Module

    1. NPM์ด๋ž€ Node Package Manager Node.js ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ ๊ตฌ์„ฑ: ์˜จ๋ผ์ธ ์ €์žฅ์†Œ + ์ปค๋งจ๋“œ๋ผ์ธ ๋„๊ตฌ ์˜จ๋ผ์ธ ์ €์žฅ์†Œ: ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋„๊ตฌ๋“ค์ด ์—…๋กœ๋“œ๋˜๋Š” ์ €์žฅ์†Œ ์ปค๋งจ๋“œ๋ผ์ธ ๋„๊ตฌ: ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ช…๋ น์–ด ์ œ๊ณต 2. NPM ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ NPM์˜ ์‚ฌ์šฉ = NPM ์ปค๋งจ๋“œ๋ผ์ธ ๋„๊ตฌ์˜ ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๋Š” ๊ฒƒ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์—์„œ $npm init ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡ ๋ฒˆ์˜ ์งˆ๋ฌธ์„ ํ†ตํ•ด package.json ์ด๋ผ๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ฃผ๊ณ , ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” Node.js ํ”„๋กœ์ ํŠธ๊ฐ€ ๋œ๋‹ค. 2-1. package.json ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ์ •๋ณด๋“ค์ด ์ €์žฅ๋˜๋Š” ํŒŒ์ผ, ์ด ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ npm ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ..

    [week_06] Node.js ๊ธฐ์ดˆ | Node.js์˜ ์ดํ•ด, ํŠน์ง•, ES6, ๋น„๋™๊ธฐ ์ฝ”๋”ฉ, ์ด๋ฒคํŠธ ๋ฃจํ”„

    1. Node.js๋ž€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์–ด๋А ํ™˜๊ฒฝ์—์„œ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์‹คํ–‰๊ธฐ Browser์˜ JavaScript ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ ์›น ๋‚ด๋ถ€์˜ ์ œํ•œ๋œ ๋™์ž‘ ์›น ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์˜ ์–ธ์–ด Node.js ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์‹คํ–‰ (์–ด๋А ํ™˜๊ฒฝ์—์„œ๋“  ์‹คํ–‰ ๊ฐ€๋Šฅ) ์ œํ•œ ์—†๋Š” ๋™์ž‘ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ 2. Node.js์˜ ํŠน์ง• ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ - ๋น„๋™๊ธฐ - ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ 2-1. ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ ์“ฐ๋ ˆ๋“œ(Thread): ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๋‹จ์œ„, ํ•œ ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋Š” ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€ ๋™์ž‘๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅ ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ: ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€ ๋™์ž‘๋งŒ ์ˆ˜ํ–‰ํ•จ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ: ๋™์‹œ์— ์—ฌ๋Ÿฌ ๋™์ž‘ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ ์žฅ์  ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ ๋น„์šฉ์ด ์—†๋‹ค ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋Š˜์–ด๋‚˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— CPU ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์— ํšจ์œจ์  ๋‹จ์  ์“ฐ๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ์ž‘์—…๋“ค์˜ ํšจ์œจ์ด ๋–จ์–ด์ง ex) CPU..

    [week_05] async/await๊ณผ API

    1. async/await Promise๋ฅผ ํ™œ์šฉํ•œ ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ๋ฒ• async/await ๋ฌธ๋ฒ•์œผ๋กœ ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๋™๊ธฐ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑ ๊ฐ€๋Šฅ await ํ‚ค์›Œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ async ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ async๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ Promise๋ฅผ ๋ฆฌํ„ด async function asyncFunc() { let data = await fetchData(); let user = await; fetchUser(data); return user; } async ํ•จ์ˆ˜๋Š” function ํ‚ค์›Œ๋“œ ์•ž์— async๋ฅผ ๋ถ™์—ฌ ๋งŒ๋“ ๋‹ค. fetchData, fetchUser๋Š” Promise๋ฅผ ๋ฆฌํ„ด! await ํ‚ค์›Œ๋“œ๋Š” then ๋ฉ”์„œ๋“œ ์ฒด์ธ์„ ์—ฐ๊ฒฐํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ˆœ์„œ๋Œ€๋กœ ๋™์ž‘ async functio..

    [week_05] ๋น„๋™๊ธฐ ํ†ต์‹ ๊ณผ Promise

    1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ œ์–ด ํ๋ฆ„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค๋ฅธ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋น„๋™๊ธฐ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ํŠน์ • ์ฝ”๋“œ์˜ ์—ฐ์‚ฐ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰ console.log('1'); setTimeout(() => {console.log('2');}, 1000); console.log('3'); ๋‹ค๋ฅธ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์–ธ์–ด์—์„œ์˜ ๊ฒฐ๊ณผ: '1'์ถœ๋ ฅ → 1์ดˆ ํ›„ '2' ์ถœ๋ ฅ → '3'์ถœ๋ ฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ฒฐ๊ณผ: '1'์ถœ๋ ฅ → '3'์ถœ๋ ฅ → 1์ดˆ ํ›„ '2' ์ถœ๋ ฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ํ•˜๋‚˜์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ (์ฆ‰, ๋‹จ ํ•˜๋‚˜์˜ Call stack์„ ์‚ฌ์šฉ) ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋Š” ์ฝ”๋“œ๋ฅผ ์ฝ์–ด ํ•œ ์ค„์”ฉ ์‹คํ–‰ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” ์œ ์ € ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ™”๋ฉด์„ ๊ทธ๋ฆฐ๋‹ค 1-1. ๋™๊ธฐ์  ์ œ์–ด..

    [๊ณผ์ œ] ์ž๊ธฐ์†Œ๊ฐœ ํŽ˜์ด์ง€ ์ œ์ž‘

    2์ฃผ์ฐจ ๋งˆ์ง€๋ง‰ ๋‚ ์˜ ๊ณผ์ œ๋กœ HTML, CSS, JavaScript๋ฅผ ์ด์šฉํ•ด์„œ ์ž๊ธฐ์†Œ๊ฐœ ํŽ˜์ด์ง€๋ฅผ ์ œ์ž‘ํ•˜๋Š” ๊ณผ์ œ๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค. ๋ฉ‹์‚ฌ์—์„œ ํ™œ๋™ํ–ˆ์„ ๋•Œ๋„ HTML/CSS๋ฅผ ๋ฐฐ์šฐ๊ณ  ๊ฐ€๋ณ๊ฒŒ ์ž๊ธฐ์†Œ๊ฐœ ํŽ˜์ด์ง€ ์ œ์ž‘ ๊ณผ์ œ๋ฅผ ํ–ˆ์—ˆ๋Š”๋ฐ, ํ™•์‹คํžˆ ๊ทธ ๋•Œ๋ณด๋‹ค ์ด๋Ÿฐ์ €๋Ÿฐ ์š”์†Œ๋“ค์„ ์ œ๋ฒ• ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ์„ ๋А๊ผˆ๋‹ค. ๊ทธ ๋•Œ ๊ฐ™์ด ํ™œ๋™ํ–ˆ๋˜ ๋™์•„๋ฆฌ์› ์ค‘, ์›น ํ™”๋ฉด์— ํŽ˜์ด์ง€๋ฅผ ๊ฝ‰ ์ฑ„์›Œ์„œ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋“ค์„ ์Šคํฌ๋กค ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ œ์ž‘ํ•˜์‹  ๋ถ„์ด ๊ณ„์…จ๋Š”๋ฐ, ๋‹น์‹œ ์›น ๊ฐœ๋ฐœ ํ–‡๋ณ‘์•„๋ฆฌ์˜€๋˜ ๋‚˜๋Š” ๊ทธ๋Ÿฐ ์‹ ์„ธ๊ณ„(?) ๋””์ž์ธ์€ ์ฒ˜์Œ ์ ‘ํ•ด๋ดค์—ˆ๊ณ  ๋‹ค์Œ์— ํ•œ ๋ฒˆ ์ €๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด ๋ณด๊ณ ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์—ˆ๋‹ค. ๊ทธ ์™ธ์—๋„ ๋Šฅ๋ ฅ์ด ๋ถ€์กฑํ•ด์„œ ํ•ด๋ณด๊ณ ๋Š” ์‹ถ์ง€๋งŒ ๊ตฌํ˜„์„ ๋ชปํ–ˆ๋˜ ๊ฒƒ๋“ค์ด ๋งŽ์•˜์–ด์„œ, ์ด๋ฒˆ ๊ณผ์ œ์˜ ํŽ˜์ด์ง€ ๋””์ž์ธ์€ ๋‹น์‹œ๋ฅผ ํšŒ์ƒํ•˜๋ฉด์„œ ํ–ˆ๋‹ค. ๊ณผ์ œ์˜ ์ฃผ์ œ๊ฐ€ ํ•„์ˆ˜ ๋‚ด์šฉ๋“ค์„ ์‚ฝ์ž…ํ•˜..