๐ [Deep Dive] 03. ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ ํ๊ฒฝ๊ณผ ์คํ ๋ฐฉ๋ฒ
3.1 ์๋ฐ์คํฌ๋ฆฝํธ ์คํํ๊ฒฝ
- ๋ธ๋ผ์ฐ์ ์ Node.js
์๋ฐ์คํฌ๋ฆฝํธ ์์ง ๋ด์ฅ -> ๋ ํ๊ฒฝ์์ ๋์ผํ๊ฒ ๋์ํ์ง๋ง ์ฌ์ฉ ์ฉ๋๊ฐ ๋ค๋ฆ.
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ์ด์ธ ECMAScript๋ฅผ ์คํํ ์ ์์ง๋ง ๊ฐ์ ์ถ๊ฐ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ํธํ๋์ง ์์.
- ๋ธ๋ผ์ฐ์ : ์นํ์ด์ง๋ฅผ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๋ ๋๋ง์ด ๋ชฉ์ .
Web API๋ฅผ ํตํด ์ง์ ํ ํ์ผ์ ์ฝ์ด ๋ค์ด๋ ๊ฒ์ ๊ฐ๋ฅํ์ง๋ง ๋ณด์์์ ์ด์ ๋ก ํ์ผ ์์คํ
์ ๊ณต ์ํจ.
ํด๋ผ์ด์ธํธ ์ฌ์ด๋ Web API(ECMAScript, DOM API, Canvas, fetxh, Frame, SVG๋ฑ)์ง์.
- Node.js : ๋ธ๋ฌ์ฐ์ ์ธ๋ถ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ์ ์ ๊ณต์ด ๋ชฉ์ .
Web API ์ง์ํ์ง ์๊ณ ํ์ผ์ ์์ฑํ๊ณ ์์ ํ ์ ์๋ ํ์ผ์์คํ
๊ฐ์ ๊ณ ์ ์ API์ ๊ณต.
3.2 ์น ๋ธ๋ผ์ฐ์
- ๊ตฌ๊ธ ํฌ๋กฌ ์ฌ์ฉ
- ECMAScript ์ฌ์ ์ค์.
- ์์ฅ ์ ์ ์จ ๊ฐ์ฅ ๋์.
- ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ์ V8 ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ Node.js์์๋ ์ฌ์ฉ.
3.2.1 ๊ฐ๋ฐ์ ๋๊ตฌ
- ๋จ์ถํค ์ฌ์ฉ
ํจ๋ | ์ค๋ช
|
---|
Elements | ๋ ๋๋ง๋ ์นํ์ด์ง์ DOM๊ณผ HTML,CSS ์ฝ๋๋ฅผ ๋ณผ์ ์์. |
------------ | ---------------------------------------------------------------------------------------------------------- |
Console | ๋ ๋๋ง๋ ์นํ์ด์ง์ ์๋ฌ ํ์ธ, ์๋ฐ์คํฌ๋ฆฝํธ์ ์์ฑํ console.loig ๋ฉ์๋ ์คํ. |
| ์ค ๋ฐ๊ฟ์ด ํ์ํ ๊ฒฝ์ฐ Shift+Enter |
------------ | ---------------------------------------------------------------------------------------------------------- |
Sources | ๋ก๋ฉ๋ ์นํ์ด์ง์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ๋๋ฒ๊น
ํ ์ ์์.(์ฌ์ฉ๋ ์ฝ๋ ์ ๋ถํ์ธ ๊ฐ๋ฅ) |
| |
| ์ค๋ฅ๋ ์์น์ ์ค๋ฅ์ ๋ณด๋ฅผ ํ์ธ, ์ด์ ๋ฅผ ์์๋ด ์์ธ์ ๊ฑฐ |
------------ | ---------------------------------------------------------------------------------------------------------- |
Network | ๋คํธ์ํฌ ์์ฒญ(request)์ ๋ณด์ ์ฑ๋ฅ ํ์ธ. |
------------ | ---------------------------------------------------------------------------------------------------------- |
Application | ์น์คํ ๋ฆฌ์ง, ์ธ์
, ์ฟ ํค ํ์ธํ๊ณ ๊ด๋ฆฌ. |
3.3 Node.js
ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์ ๋ฐ๋ผ ํ๋ ์์ํฌ(React, Angular๋ฑ) ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ(Babel, Webpack๋ฑ)๋ฅผ ์ฌ์ฉํ ๋ Node.js์ mnpํ์.
3.3.1 Node.js์ npm์๊ฐ
- Node.js
- ๊ตฌ๊ธ(ํฌ๋กฌ) V8 ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ผ๋ก ๋น๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ ํ๊ฒฝ.
- ๋ธ๋ผ์ฐ์ ์์๋ง ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํ๋ฅผ ๋ธ๋ผ์ฐ์ ์ด์ธ์ ํ๊ฒฝ์์ ๋์ ์ํฌ์์๋ ํ๊ฒฝ.
- ์๋ฒ ์ฌ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์ฌ์ฉ.
- npm
- ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง ๋งค๋์ .
- Node.js์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋๋ค์ ํจํค์งํํด์ ๋ชจ์๋ ์ ์์ ์ญํ , ํจํค์ง ์ค์น๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ CLI๋ฅผ ์ ๊ณต.
ใด ๋ชจ๋ํ์ npm
3.3.2 Node.js ์ค์น
- Node.js ์ฌ์ดํธ
- LTS ์์ ๋ ๋ฒ์
- Current ์ต์ ๋ฒ์
- ํฐ๋ฏธ๋์์ ๋ฒ์ ํ์ธ
node -v
npm -v
3.3.3 Node.js REPL
Node.js์ REPL์ ์ฌ์ฉํ๋ฉด ํฐ๋ฏธ๋์์ ์๋ฐ์คํฌ๋ฆฝํธ ์คํํด ๊ฒฐ๊ณผ ํ์ธ ๊ฐ๋ฅ
ใด REPL(Read Eval Print Loop)
// ํฐ๋ฏธ๋๋์์ ์คํ
node
// ํ์ผ์ ์คํํ ๋ ค๋ฉด node๋ค์ ํ์ผ์ด๋ฆ. ํ์ฅ์.js ์๋ต๊ฐ๋ฅ
node index.js
Ctrl+C ๋๋ฒ์
๋ ฅ์ Node.js REPL ์ข
๋ฃ.
3.4 ๋น์ฅฌ์ผ ์คํ๋์ค ์ฝ๋
๋ง์ดํฌ๋ก์ํํธ์ Visualstudio CODE.
3.3.3 code Runner ํ์ฅ ํ๋ฌ๊ทธ์ธ
- Ctrl+Alt+N(๋จ์ถํค)๋ฅผ ์ฌ์ฉํ๋ฉด Node.jsํ๊ฒฝ์ ์ฌ์ฉํด VS Code์ ๋ด์ฅ ํฐ๋ฏธ๋์์ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ๋ ์์ค์ฝ๋ ๊ฐ๋จํ ์คํ.
- ๋ธ๋ผ์ฐ์ ์์๋ง ๋์ํ๋ ํด๋ผ์ด์ธํธ ์ฌ์ดํธ Web API ์ฌ์ฉ์๋ผ ์๋ฌ๋ฐ์(e.g. alert -> Web API๊ฐ ํฌํจ๋ ์ฝ๋๋ ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ์คํ)
3.3.4 Live Server ํ์ฅ ํ๋ฌ๊ทธ์ธ
๋ธ๋ผ์ฐ์ ์ ์ฝ๋์์ ์ค์๊ฐ ๋ฐ์
๐ฉโ๐ป STUDY ๊ด๋ฆฌ
- Notion | ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive ๊ณต๋ถ ๊ณํ๊ณผ ์งํ๋ฅ
- GitHub | ์ฝ๋์์ค ๊ด๋ฆฌ
๐์ถ์ฒ
์๋ฌธ ์ถ์ฒ: [์ฑ
] ๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ DeepDive
์ฑ
์ง์์ด ๋ธ๋ก๊ทธ: https://poiemaweb.com/