๐Ÿ“’ [Deep Dive] 03. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์‹คํ–‰ ๋ฐฉ๋ฒ•

๋ฝ€๋กฑํŠธ์˜Œ๋“œยท2022๋…„ 10์›” 23์ผ
0
post-thumbnail

๐Ÿ“’ [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 ๊ด€๋ฆฌ

  1. Notion | ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive ๊ณต๋ถ€ ๊ณ„ํš๊ณผ ์ง„ํ–‰๋ฅ 
  2. GitHub | ์ฝ”๋“œ์†Œ์Šค ๊ด€๋ฆฌ

๐Ÿ“์ถœ์ฒ˜

์›๋ฌธ ์ถœ์ฒ˜: [์ฑ…] ๋ชจ๋˜์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DeepDive
์ฑ… ์ง€์€์ด ๋ธ”๋กœ๊ทธ: https://poiemaweb.com/

profile
๐ŸŽˆ ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๋Š” ์ฆ๊ฑฐ์šด ๊ฐœ๋ฐœ์ž์˜ ์„ธ๊ณ„๋กœ! ๐ŸŒˆโœจ

0๊ฐœ์˜ ๋Œ“๊ธ€