๐Ÿ“’ [Deep Dive] 02. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€?

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

๐Ÿ“’ [Deep Dive] 02. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€?


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

  • 1995๋…„, ์›น ๋ธŒ๋ผ์šฐ์ € ์‹œ์žฅ์˜ ์•ฝ 90%๋ฅผ ์ง€๋ฐฐํ•˜๊ณ  ์žˆ๋˜ ๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ๊ฐ€
    ์›นํŽ˜์ด์ง€์˜ ๋ณด์กฐ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ (๋ธŒ๋ Œ๋˜ ์•„์ดํฌ ๊ฐœ๋ฐœ).

  • ๋ณ€ํ™”

    • 1996๋…„ 03์›”, ์ž์‚ฌ ์›น๋ธŒ๋ผ์šฐ์ € ๋„ท์Šค์ผ€์ดํ”„ ๋„ค๋น„๊ฒŒ์ดํ„ฐ2์— ํƒ‘์žฌ "Mocha"๋กœ ๋ช…๋ช….
    • 1996๋…„ 09์›”, "LiveScript" ๋กœ ๋ณ€๊ฒฝ.
    • 1996๋…„ 12์›”, "JavaScript"๋กœ ์ตœ์ข… ๋ช…๋ช….
  • ํ˜„์žฌ๋Š” ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์˜ ํ‘œ์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž๋ฆฌ์žก์•˜์œผ๋‚˜ ํƒ„์ƒํ•œ ๋’ค ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ "JScript"๊ฐ€ ์ถœ์‹œ๋˜์–ด ์œ„๊ธฐ๋ฅผ ๋งž์ด ํ–ˆ์—ˆ์Œ.

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

  • 1996๋…„ 8์›”, ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŒŒ์ƒ๋ฒ„์ „์ธ "JScript"๋ฅผ ์ž์‚ฌ ์›น๋ธŒ๋ผ์šฐ์ € ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ 3.0์— ํƒ‘์žฌ.

    • ๋‘ ํšŒ์‚ฌ๋Š” ์ž์‚ฌ ๋ธŒ๋ผ์šฐ์ €์˜ ์‹œ์žฅ ์ ์œ ์œจ์„ ๋†’์ด๊ธฐ์œ„ํ•ด ์ž์‚ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€.
  • ๋ฌธ์ œ๋ฐœ์ƒ

    • ๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€์•Š๋Š” ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ ๋ฐœ์ƒ.
    • ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์›นํŽ˜์ด์ง€ ๊ฐœ๋ฐœ ์–ด๋ ค์›Œ์ง.
  • ๋ฒ„์ „

    • 1996๋…„ 11์›”, ๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ๋Š” ECMA์ธํ„ฐ๋‚ด์…”๋„*์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€ํ™” ์š”์ฒญ.
      • ECMA ์ธํ„ฐ๋‚ด์…”๋„* ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ํ‘œ์ค€์„ ๊ด€๋ฆฌํ•˜๋Š” ๋น„์˜๋ฆฌ ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ.
    • 1997๋…„ 07์›”, ํ‘œ์ค€ํ™”๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดˆํŒ ECMAScript 1์ธ "ECMA-262" ์™„์„ฑ.
      • ์ƒํ‘œ๊ถŒ ๋ฌธ์ œ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” "ECMAScript"๋กœ ๋ช…๋ช…๋จ.
    • 1998๋…„, ECMAScript 2(ES2) : ISO/IEC 16262 ๊ตญ์ œ ํ‘œ์ค€๊ณผ ๋™์ผํ•œ ๊ทœ๊ฒฉ์„ ์ ์šฉ.
    • 1999๋…„, ECMAScript 3(ES3) : ์ •๊ทœ ํ‘œํ˜„์‹, try...catch
    • 2009๋…„, ECMAScript 5(ES5) :
      • HTML5์™€ ํ•จ๊ป˜ ์ถœํ˜„ํ•œ ํ‘œ์ค€ ์‚ฌ์–‘.
      • JSON, strict mooede, ์ ‘๊ทผ์ž ํ”„๋กœํผํ‹ฐ, ํ”„๋กœํผํ‹ฐ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ ์ œ์–ด, ํ–ฅ์ƒ๋œ ๋ฐฐ์—ด.
      • ์กฐ์ž‘ ๊ธฐ๋Šฅ forEach, ma, filter, reduce, some, every
    • 2015๋…„, ECMAScript 6(ES6) :
      • let/const, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, ํด๋ž˜์Šค, ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด, ์Šคํ”„๋ ˆ๋“œ ๋ฌธ๋ฒ•, rest ํŒŒ๋ผ๋ฏธํ„ฐ, ํ”„๋กœ๋ฏธ์Šค ๋“ฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ ๊ฐ–์ถฐ์•ผ ํ•  ๊ธฐ๋Šฅ์„ ๋Œ€๊ฑฐ ๋„์ž…ํ•˜๋Š” ํฐ ๋ณ€ํ™”.
    • ES6 ์ดํ›„์˜ ๋ฒ„์ „up์€ ๋น„๊ต์  ์ž‘์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด ๋งค๋…„ ๋ฐœํ‘œ.

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

  • ์ดˆ์ฐฝ๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›นํŽ˜์ด์ง€์˜ ๋ณด์กฐ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ•œ์ •์ ์ธ ์šฉ๋„๋กœ ์‚ฌ์šฉ.

2.3.1 Ajax(Asynchronou JavaScript and XML)_1999๋…„

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

    • ๋™๊ธฐ : ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ ์ˆœ์„œ ๋Œ€๋กœ ์ˆœ์ฐจ์  ์‹คํ–‰ ํ•˜๋Š” ๋ฐฉ์‹.
      ๋งจ์œ„ ์ฝ”๋“œ ์‹คํ–‰ - ์™„๋ฃŒ -> ๋‹ค์Œ ์ฝ”๋“œ ์‹คํ–‰ - ์™„๋ฃŒ -> ๋‹ค์Œ ์ฝ”๋“œ ์‹คํ–‰.
    • ๋น„๋™๊ธฐ : ์ˆœ์„œ์™€ ์ƒ๊ด€์—†์ด ๋™์‹œ์— ์‹คํ–‰ํ›„ ๊ฐ์ž์˜ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฐ”๋กœ ์‹คํ–‰๋จ.
  • Ajax์˜ ๋“ฑ์žฅ์œผ๋กœ ์›นํŽ˜์ด์ง€์—์„œ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๋ถ€๋ถ„์€ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ณ , ์„œ๋ฒ„๋กœ ๋ถ€ํ„ฐ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ „์†ก๋ฐ›์•„ ํ•œ์ •์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์ด ๊ฐ€๋Šฅํ•ด์ง.

    • ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒ˜๋Ÿผ ๋น ๋ฅธ ์„ฑ๋Šฅ๊ณผ ๋ถ€๋ฅด์ €์šด ํ™”๋ฉด ์ „ํ™˜.
      • ์ด์ „์˜ ์›นํŽ˜์ด์ง€๋Š” ํ™”๋ฉด์ด ์ „ํ™˜๋ ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด HTML์„ ์ „์†ก๋ฐ›์•„ ์ „์ฒด๋ฅผ ์žฌ ๋ Œ๋”๋ง -> ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹  ๋ฐœ์ƒ, ์„ฑ๋Šฅ์ €ํ•˜, ์ˆœ๊ฐ„์ ์œผ๋กœ ๊นœ๋นก์ž„.

๐Ÿ“Œ 2005๋…„, ๊ตฌ๊ธ€์ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ Ajax๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š”
ย ย ย ย ๊ตฌ๊ธ€ ๋งต์Šค๋ฅผ ๋ฐœํ‘œํ•˜๋ฉด์„œ ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํฐ ์ฐจ์ด๊ฐ€ ์—†๋Š” ์„ฑ๋Šฅ๊ณผ
ย ย ย ย ๋ถ€๋“œ๋Ÿฌ์šด ํ™”๋ฉดํšจ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๊ฒŒ ๋˜์–ด,
ย ย ย ย ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์ธํ•˜๋Š” ๊ณ„๊ธฐ๋ฅผ ๋งˆ๋ จ.

2.3.2 jQuery_2006๋…„

  • jQuery๊ฐ€ DOM์„ ๋”์šฑ ์‰ฝ๊ฒŒ ์ œ์–ดํ•˜๊ฒŒ๋˜์–ด ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ ์–ด๋Š์ •๋„ ํ•ด๊ฒฐ๋จ.
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ณด๋‹ค ์‰ฝ๊ณ  ์ง๊ด€์ ์ธ jQurey๋Š” ๋„“์€ ์‚ฌ์šฉ์ž ์ธต์„ ์ˆœ์‹๊ฐ„์— ํ™•๋ณด.

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

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

    ๐Ÿ“Œ V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์œผ๋กœ ์ด‰๋ฐœ๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐœ์ „์œผ๋กœ ์„œ๋ฒ„์—์„œ ์ˆ˜ํ–‰๋˜๋˜
    ย ย ย ย ๋กœ์ง๋“ค์ด ๋Œ€๊ฑฐ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๋กœ ์ด๋™ํ•˜๋ฉด์„œ
    ย ย ย ย ํ”„๋ŸฐํŠธ์—”๋“œ ์˜์—ญ์ด ์ฃผ๋ชฉ๋ฐ›๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋จ.

2.3.4 Node.js_2009๋…„

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

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

    • ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์ฃผ๋กœ ์‚ฌ์šฉ.
      • ์ด์— ํ•„์š”ํ•œ ๋ชจ๋“ˆ, ํŒŒ์ผ ์‹œ์Šคํ…œ, HTTP๋“ฑ ๋นŒํŠธ์ธ API ์ œ๊ณต.
    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Node.jsํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ๋ฐœ.
    • ๋น„๋™๊ธฐ I/O๋ฅผ ์ง€์›, ๋‹จ์ผ ์Šค๋ ˆ๋“œ ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•จ์œผ๋กœ์จ ์š”์ฒญ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ์ข‹์Œ.
    • ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด I/O๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” SPA์— ์ ํ•ฉ.

      ๐Ÿ“Œ Node.js์˜ ๋“ฑ์žฅ์œผ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ”„๋ก ํŠธ ์—”๋“œ, ๋ฐฑ ์—”๋“œ ๊ฐœ๋ฐœ ๋ชจ๋‘
      ย ย ย ย ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ์œผ๋ฉฐ
      ย ย ย ย ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์–ธ์–ด๋กœ ์ฃผ๋ชฉ.

    • ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ
      • ์›น
      • ๋ชจ๋ฐ”์ผ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ
      • ๋ฐ์Šคํฌํ†ฑ
      • ๋จธ์‹ ๋Ÿฌ๋‹˜
      • ๋กœ๋ณดํ‹ฑ์Šค

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

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

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

  • ECMAScrit๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œ์ค€ ์‚ฌ์–‘์ธ "ECMA-262"
    • ํ•ต์‹ฌ ๋ฌธ๋ฒ• ๊ทœ์ •.
    • ๊ฐ ๋ธŒ๋ผ์šฐ์ € ์ œ์กฐ์‚ฌ๋Š” ECMAScrit ์‚ฌ์–‘์„ ์ค€์ˆณ์„œ ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ๊ตฌํ˜„.

๐Ÿ“Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ๋ผˆ๋Œ€ ECMAScrit์™€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ณ„๋„ ์ง€์›ํ•˜๋Š”
ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ Web API(DOM, Canvas, fetch, SVG๋“ฑ)์„ ์•„์šฐ๋ฅด๋Š”๊ฐœ๋….

  • ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ Web API๋Š” ECMAScrit์™€ ๋ณ„๋„๋กœ W3C์—์„œ ๋ณ„๋„์˜ ์‚ฌ์–‘์œผ๋กœ ๊ด€๋ฆฌ.
    ใ„ด ์ฐธ๊ณ  : MDN : Web API

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

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ์œ ์ผํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. ๊ธฐ์กด์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฐ›์Œ.

    • ๊ธฐ๋ณธ ๋ฌธ๋ฒ• : C, ์ž๋ฐ”
    • ์…€ํ”„ : ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ์ƒ์†
    • ์Šคํ‚ด : ์ผ๊ธ‰ ํ•จ์ˆ˜์˜ ๊ฐœ๋…์„ ์ฑ„์šฉ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ„๋„์˜ ์ปดํŒŒ์ผ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ์ธํ„ฐํ”„๋ฆฐํ„ฐ ์–ธ์–ด

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

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

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

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

๐Ÿ“Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋ณด๋‹ค ํšจ์šธ์ ์ด๋ฉด์„œ ๊ฐ•๋ ฅํ•œ
ย ย ย ย  ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด.


2.6 ES6 ๋ธŒ๋ผ์šฐ์ € ์ง€์› ํ˜„ํ™ฉ

  • ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ๋ฅผ ์ œ์™ธํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋ชจ๋˜ ๋ธŒ๋ผ์šฐ์ €๋Š” ES6๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ, 100%๋Š” ์•„๋‹˜.
  • Node.js ๋Š” v4๋ถ€ํ„ฐ ES6์ง€์›.
    ใ„ด ์ฐธ๊ณ  : ES6 ์ง€์› ํ˜„ํ™ฉ


๐Ÿ‘ฉโ€๐Ÿ’ป STUDY ๊ด€๋ฆฌ

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

๐Ÿ“์ถœ์ฒ˜

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

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

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