[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๋ฅผ ๋ฐฐ์ฐ๊ณ ๊ฐ๋ณ๊ฒ ์๊ธฐ์๊ฐ ํ์ด์ง ์ ์ ๊ณผ์ ๋ฅผ ํ์๋๋ฐ, ํ์คํ ๊ทธ ๋๋ณด๋ค ์ด๋ฐ์ ๋ฐ ์์๋ค์ ์ ๋ฒ ๋ค๋ฃฐ ์ ์๊ฒ ๋ ๊ฒ์ ๋๊ผ๋ค. ๊ทธ ๋ ๊ฐ์ด ํ๋ํ๋ ๋์๋ฆฌ์ ์ค, ์น ํ๋ฉด์ ํ์ด์ง๋ฅผ ๊ฝ ์ฑ์์ ์ฌ๋ฌ ํ์ด์ง๋ค์ ์คํฌ๋กค ํ๋ ๋ฐฉ์์ผ๋ก ์ ์ํ์ ๋ถ์ด ๊ณ์ จ๋๋ฐ, ๋น์ ์น ๊ฐ๋ฐ ํ๋ณ์๋ฆฌ์๋ ๋๋ ๊ทธ๋ฐ ์ ์ธ๊ณ(?) ๋์์ธ์ ์ฒ์ ์ ํด๋ดค์๊ณ ๋ค์์ ํ ๋ฒ ์ ๋ ๊ฒ ๋ง๋ค์ด ๋ณด๊ณ ์ถ๋ค๋ ์๊ฐ์ ํ์๋ค. ๊ทธ ์ธ์๋ ๋ฅ๋ ฅ์ด ๋ถ์กฑํด์ ํด๋ณด๊ณ ๋ ์ถ์ง๋ง ๊ตฌํ์ ๋ชปํ๋ ๊ฒ๋ค์ด ๋ง์์ด์, ์ด๋ฒ ๊ณผ์ ์ ํ์ด์ง ๋์์ธ์ ๋น์๋ฅผ ํ์ํ๋ฉด์ ํ๋ค. ๊ณผ์ ์ ์ฃผ์ ๊ฐ ํ์ ๋ด์ฉ๋ค์ ์ฝ์ ํ..