๐Ÿ“‹ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive | 1์žฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ~ 3์žฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

waterglassesยท2022๋…„ 9์›” 24์ผ
1
post-thumbnail

๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive ๋„์„œ์˜ 1์žฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, 2์žฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€? 3์žฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์‹คํ–‰ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

1. ํ”„๋กœ๊ทธ๋ž˜๋ฐ

1.1 ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ์ปดํ“จํ„ฐ์—๊ฒŒ ์‹คํ–‰์„ ์š”๊ตฌํ•˜๋Š” ์ผ์ข…์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์•ž์„œ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•œ ํ›„ ์ ์ ˆํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ •์˜ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

1.2 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

๊ธฐ๊ณ„์–ด๋กœ ์ง์ ‘ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋Œ€์‹ ํ•  ๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ€์•ˆ์€ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์•ฝ์†๋œ ๊ตฌ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์‚ฌ์šฉํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ ํ›„, ๊ทธ๊ฒƒ์„ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ผ์ข…์˜ ๋ฒˆ์—ญ๊ธฐ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์ผ์ข…์˜ ๋ฒˆ์—ญ๊ธฐ๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ ํ˜น์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค.

1.3 ๊ตฌ๋ฌธ๊ณผ ์˜๋ฏธ

๋ฌธ๋ฒ•์— ๋งž๋Š” ๋ฌธ์žฅ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ฌผ๋ก  ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ์–ธ์–ด์˜ ์—ญํ• ์„ ์ถฉ์‹คํžˆ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด๋‚ธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด ํ‘œํ˜„ํ•œ๋‹ค. ์ฆ‰, ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์˜ ๊ตฌ์ฒด์  ๊ตฌํ˜„๋ฌผ์ด๋‹ค.

๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์š”๊ตฌ์‚ฌํ•ญ์˜ ์ง‘ํ•ฉ์„ ๋ถ„์„ํ•ด์„œ ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ๊ทธ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

2. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€?

2.1 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํƒ„์ƒ

1995๋…„, ๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ๋Š” ์›นํŽ˜์ด์ง€์˜ ๋ณด์กฐ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค.
๊ทธ๋ž˜์„œ ํƒ„์ƒํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ ๋ธŒ๋ Œ๋˜ ์•„์ดํฌ๊ฐ€ ๊ฐœ๋ฐœํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‹ค.

2.2 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€ํ™”

1996๋…„ 8์›”, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŒŒ์ƒ ๋ฒ„์ „์ธ JScript๋ฅผ ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ์–ด 3.0์— ํƒ‘์žฌํ–ˆ๋‹ค. JScript์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ‘œ์ค€ํ™”๋˜์ง€ ๋ชปํ•˜๊ณ  ์ ๋‹นํžˆ ํ˜ธํ™˜๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์ฆ‰, ๊ฐ ํšŒ์‚ฌ๋Š” ์ž์‚ฌ ๋ธŒ๋ผ์šฐ์ €์˜ ์‹œ์žฅ ์ ์œ ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ž์‚ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฒฝ์Ÿ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

์ด๋กœ ์ธํ•ด ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

*ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•? ์›น ํŽ˜์ด์ง€ ์ œ์ž‘ ์‹œ์— ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊นจ์ง€์ง€ ์•Š๊ณ  ์˜๋„ํ•œ ๋Œ€๋กœ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ์ž‘์—…์„ ๋งํ•œ๋‹ค.

1997๋…„ ์ƒํ‘œ๊ถŒ ๋ฌธ์ œ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ECMAScript๋กœ ๋ช…๋ช…๋˜์—ˆ๊ณ  1999๋…„ ECMAScript 3(ES3)๊ฐ€ ๊ณต๊ฐœ๋˜๊ณ  2009๋…„์— ECMAScript 5(ES5)๋Š” HTML๊ณผ ํ•จ๊ป˜ ์ถœํ˜„ํ•œ ํ‘œ์ค€ ์‚ฌ์–‘์ด๋‹ค.

2015๋…„์— ๊ณต๊ฐœ๋œ ECMAScript 6(ES6)๋Š” let/const ํ‚ค์›Œ๋“œ, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ชจ๋“ˆ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ๋Œ€๊ฑฐ ๋„์ž…ํ•˜๋Š” ํฐ ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋‹ค.

2.3 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์„ฑ์žฅ์˜ ์—ญ์‚ฌ

2.3.1 Ajax

1999๋…„, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹  ๊ธฐ๋Šฅ์ธ Ajax๊ฐ€ XMLHttpRequest๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋“ฑ์žฅํ–ˆ๋‹ค.

์›นํŽ˜์ด์ง€์—์„œ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„์€ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ณ , ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ „์†ก๋ฐ›์•„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ํ•œ์ •์ ์œผ๋กœ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.

2.3.2 jQuery

2006๋…„, jQuery์˜ ๋“ฑ์žฅ์œผ๋กœ DOM์„ ๋”์šฑ ์‰ฝ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ  ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๋„ ์–ด๋Š์ •๋„ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

2.3.3. V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋ ค๋Š” ์‹œ๋„๊ฐ€ ๋Š˜๋ฉด์„œ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์˜ ํ•„์š”์„ฑ์ด ๋Œ€๋‘๋˜์—ˆ๋‹ค. 2008๋…„ ๋“ฑ์žฅํ•œ ๊ตฌ๊ธ€์ด V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์€ ์ด๋Ÿฌํ•œ ์š”๊ตฌ์— ๋ถ€ํ•ฉํ•˜๋Š” ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.

V8 ์—”์ง„์œผ๋กœ ์ด‰๋ฐœ๋œ JS์˜ ๋ฐœ์ „์œผ๋กœ ๊ณผ๊ฑฐ ์›น ์„œ๋ฒ„์—์„œ ์ˆ˜ํ–‰๋˜๋˜ ๋กœ์ง๋“ค์ด ๋Œ€๊ฑฐ ํด๋ผ์ด์–ธํŠธ๋กœ ์ด๋™ํ•˜์˜€๋‹ค.

2.3.4 Node.js

๊ตฌ๊ธ€ V8 ์ž๋ฐ”์Šคํฌ๋ฆฌ๋ธŒ ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋™์ž‘ํ•˜๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ด์™ธ์˜ ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋…๋ฆฝ์‹œํ‚จ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋‹ค.

Node.js

  • ๋น„๋™๊ธฐ I/O๋ฅผ ์ง€์›
  • ๋‹จ์ผ ์Šค๋ ˆ๋“œ ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘
  • ์š”์ฒญ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.

Node.js๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด I/O๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” SPA์— ์ ํ•ฉํ•˜๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์–ธ์–ด๋กœ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ๋‹ค.

2.3.5 SPA ํ”„๋ ˆ์ž„์›Œํฌ

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋น„๊ตํ•ด๋„ ์†์ƒ‰์—†๋Š” ์„ฑ๋Šฅ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š”๊ฒƒ์ด ํ•„์ˆ˜๊ฐ€ ๋˜์—ˆ๊ณ  ๋”๋ถˆ์–ด ๊ฐœ๋ฐœ ๊ทœ๋ชจ์™€ ๋ณต์žก๋„๋„ ์ƒ์Šนํ–ˆ๋‹ค.
๋”ฐ๋ผ์„œ ํ•„์—ฐ์ ์œผ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ(React, Vue, Angular ๋“ฑ)๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

2.4 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ECMAScript

ECMAScript๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฌ๋ธŒ ํ‘œ์ค€ ์‚ฌ์–‘์ธ ECMA-262๋ฅผ ๋งํ•˜๋ฉฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ฐ’, ํƒ€์ž…, ๊ฐ์ฒด์™€ ํ”„๋กœํผํ‹ฐ ๋“ฑ ํ•ต์‹ฌ ๋ฌธ๋ฒ•์„ ๊ทœ์ •ํ•œ๋‹ค. ๊ฐ ๋ธŒ๋ผ์šฐ์ € ์ œ์กฐ์‚ฌ๋Š” ECMAScript ์‚ฌ์–‘์„ ์ค€์ˆ˜ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๊ตฌํ˜„ํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ECMAScript์™€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ณ„๋„ ์ง€์›ํ•˜๋Š” ํด์•„์ด์–ธํŠธ ์‚ฌ์ด๋“œ WebAPI(DOM, BOM, fetch ๋“ฑ)๋ฅผ ์•„์šฐ๋ฅด๋Š” ๊ฐœ๋…์ด๋‹ค.

2.5 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์ง•

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

์ธํ„ฐํ”„๋ฆฌํ„ฐ๋Š” ์†Œ์Šคํฌ๋“œ๋ฅผ ์ฆ‰์‹œ ์‹คํ–‰ํ•˜๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๋จธ์‹  ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ตœ์ ํ™”ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ถ”๊ฐ€์ ์ธ ์‹œ๊ฐ„์ด ํ•„์š”ํ•จ์—๋„ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ช…๋ นํ˜•, ํ•จ์ˆ˜ํ˜•, ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ๋ฉ€ํ‹ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ๋˜ํ•œ ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์ด๋‹ค.

3. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์‹คํ–‰ ๋ฐฉ๋ฒ•

3.1 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ ๋˜๋Š” Node.js ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•œ ๊ฐ€์ง€ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€ ๋ธŒ๋ผ์šฐ์ €์™€ Node.js๋Š” ์šฉ๋„๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋ธŒ๋ผ์šฐ์ €

  • HTML, JS, CSS๋ฅผ ์‹คํ–‰ํ•ด ์›น ํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— ๋ Œ๋”๋ง ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ 
  • DOM API๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต
  • ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ณธ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ

Node.js

  • ๋ธŒ๋ผ์šฐ์ € ์™ธ๋ถ€์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ 
  • DOM API๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ณ  ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ณธ ์ œ๊ณตํ•จ

Ref

  • ์ด์›…๋ชจ ์ €, โŒœ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep DiveโŒŸ, ์œ„ํ‚ค๋ถ์Šค
profile
๋งค ์ˆœ๊ฐ„ ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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