- ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด node(๋๋ javascript) ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ค์ ํด์ผ ํ๋ค.
- npm(node package manager)๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ์ค์ ํ ์ ์๋ค.
- ํ๋ก์ ํธ ๊ตฌ์กฐ
- package.json [ํ๋ก์ ํธ ํ๋ํ์คํธ]
- package.json.lock [์ค์น ํจํค์ง ์์กด์ฑ lock]
- /src [๊ฐ๋ฐ ์์ค]
- /static [๊ฐ๋ฐ ๋ฆฌ์์ค]
- /node-modules [์ธ๋ถ๋ชจ๋(๋ผ์ด๋ธ๋ฌ๋ฆฌ + ๊ฐ๋ฐ๋๊ตฌ)]
- node ๋ชจ๋
- ์ฝ์ด ๋ชจ๋: node์์ ์ ๊ณตํ๋ ๋ชจ๋(fs, os, process, http, ...)
- npm ๋ชจ๋: npm์ ํตํด์ node_modules์ ์ค์นํ๊ณ ์ฌ์ฉํ๋ ๋ชจ๋
- ํ์ผ ๋ชจ๋: ํ์ผ ๊ฒฝ๋ก๋ก ๋ถ๋ฌ์ฌ์ ์๋ ๋ชจ๋. ๋ณดํต ์๋ฐ์คํฌ๋ฆฝํธ ์์ค ํ์ผ์ด๋ค.
- ์ฌ์ฌ์ฉ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋์ ํจํค์ง ํํ๋ก ๋ฐฐํฌ๋๊ณ ์ค์น๋๊ณ ๊ด๋ฆฌ๋๋ค.
- ๋ณดํต ํจํค์ง๋ ์์ ํ ์ดํ๋ฆฌ์ผ์ด์ (babel, webpack, nodemon, Lint, ...) ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(ejs, react, axios, express, ...)๊ฐ ๋๋ค.
- ํจํค์ง ์ค์น/์ญ์ ๊ด๋ฆฌ๋ฅผ ์ํด npm์ ์ฌ์ฉํ๋ค.
- npm์์๋ ํจํค์ง๋ฅผ ์์กด์ฑ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ด๋ฆฌํ๋๋ฐ ํจํค์ง์ ๊ฐ์ ์๋ฏธ๋ค.
- ์ผ๋ฐ ์์กด์ฑ: ๊ฐ๋ฐ ํ๋ก์ ํธ์ ๋ฐํ์ ๋ ์ฌ์ฉ๋๋ ํจํค์ง๋ก ๊ผญ ๋น๋๋ ๋ฐฐํฌ์ ํฌํจ๋์ด์ผ ํ๋ค.
- ๊ฐ๋ฐ ์์กด์ฑ: ๋น๋๋ ๋ฐฐํฌ์ ํฌํจ๋์ง ์์ง๋ง ๊ฐ๋ฐ์ ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋ผ์ด๋ธ๋ฌ ํจํค์ง๋ค.
- ์ค์น
- ์ผ๋ฐ/๊ฐ๋ฐ: ์ผ๋ฐ ๋๋ ๊ฐ๋ฐ๋ก ์์กด์ฑ์ ๊ตฌ๋ถํ์ฌ ์ค์นํ๊ณ ๋น๋๋ ๋ฐฐํฌ์ ํจํค์ง ํฌํจ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค.
- ์ง์ญ/์ ์ญ: ํน์ ํ๋ก์ ํธ์๋ง ์๋๋ฉด ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ ํจํค์ง๋ฅผ ๊ตฌ๋ถํ์ฌ ์ค์น ํ ์ ์๋ค.
- common.js(require) ๊ธฐ๋ฐ: ES6 ์ด์ JavaScript ์์ฒด Module ์ง์์ด ์์ ๋ ์์ํ JavaScript Module ์ง์ ํ๋ก์ ํธ
- node ์๋ฒ ํ๋ก๊ทธ๋๋ฐ์ ์ ํต์ ์ผ๋ก require ๊ธฐ๋ฐ ๋ชจ๋ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ค์ด ๋ฐ์
- ์ด๊ฐ๋จ ์๋ฒ(ex01.js)
- static ๋ฆฌ์์ค ์๋ฒ(ex02.js)