๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

01์žฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, 02์žฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€? ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/JavaScript (๋ชจ๋˜์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive)

01์žฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, 02์žฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€?

Daehyunii 2022. 6. 21. 22:29

์ฑ… ์ฝ๊ธฐ ์‹œ์ž‘ ์ „ :

  ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ „๋ฐ˜์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ด€๋ จ ๋‚ด์šฉ๋“ค์„ ๋น ๋ฅด๊ฒŒ ์•Œ์•„๋ดค์œผ๋ฏ€๋กœ, ์ด์ œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ์ดˆ ๊ฐœ๋… ๋ฐ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด ๋ณธ ์ฑ…์„ ์ฝ์–ด ๋‚˜๊ฐ€๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค!  

 

01์žฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

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

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

๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ •์˜ํ•œ ํ›„, ์ •ํ™•ํ•˜๊ณ  ์ƒ์„ธํ•˜๊ฒŒ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ปดํ“จํ„ฐ์—๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์ด๋ฉฐ, 

๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ด ์ฝ”๋“œ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์ž˜ ์ฒ˜๋ฆฌํ•ด ๋‚˜๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” Computational thinking, ์ฆ‰ ์ปดํ“จํŒ… ์‚ฌ๊ณ  ๋ฐฉ์‹์ด ํ•„์š”ํ•˜๋‹ค.

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

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

ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ ํ›„, ๊ทธ๊ฒƒ์„ ์ปดํŒŒ์ผ๋Ÿฌ/์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ํ†ตํ•ด ๊ธฐ๊ณ„์–ด๋กœ ์ปดํ“จํ„ฐ์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์ผ์ข…์˜ ์ธ๊ณต์–ด๋‹ค.

 

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

  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์–ธ์–ด๋Š” ๊ตฌ๋ฌธ(syntax)์™€ ์˜๋ฏธ(semantics)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋ฌธ๋ฒ•์„ ์ž˜ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜์—ฌ ์–ธ์–ด๋ฅผ ์ž˜ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•Œ๋งž์€ ๊ตฌ๋ฌธ๊ณผ ์˜๋ฏธ์ ์œผ๋กœ ์˜ณ๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•ด์•ผ ํ•œ๋‹ค.

 

 

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

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

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

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„์˜ ๋ณ€์ฒœ์‚ฌ๋Š” ๋ชจ์นด > ๋ผ์ด๋ธŒ์Šคํฌ๋ฆฝํŠธ > ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ˆœ์œผ๋กœ ๋ช…๋ช…๋˜์—ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ถœ์‹œ ์งํ›„, '๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ'๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŒŒ์ƒ๋ฒ„์ „์ธ Jscript ์ถœ์‹œํ–ˆ๊ณ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์œ„๊ธฐ์— ์ฒ˜ํ–ˆ๋‹ค. 

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

  ์ดˆ์ฐฝ๊ธฐ '๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ' ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ์— ํƒ‘์žฌํ•œ Jscript์™€ '๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ'์˜ ๋ธŒ๋ผ์šฐ์ €์— ํƒ‘์žฌํ•œ Javascript๊ฐ€ ํ‘œ์ค€ํ™”๋˜์ง€ ๋ชปํ•˜๊ณ  ์ ๋‹นํžˆ ํ˜ธํ™˜๋˜๋ฉด์„œ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ๋กœ์ธํ•ด ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ๊ฐ€ ๋ฌด์ฒ™ ์–ด๋ ค์›Œ ์กŒ๊ณ , '๋„ท์Šค์ผ€์ดํ”„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ฆˆ'๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๋น„์˜๋ฆฌ ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ์ธ ECMA international์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€ํ™”๋ฅผ ์š”์ฒญํ–ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ECMA-262 ํƒ„์ƒํ–ˆ๋‹ค. (ECMAscript๋กœ ๋ช…๋ช…)

 

@๊ธฐ์ดˆ๊ฐœ๋…
-์›น ๋ธŒ๋ผ์šฐ์ € : ์ธํ„ฐ๋„ท ์‚ฌ์ดํŠธ์— ์ ‘์† ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ ,์ฆ‰ ๋ Œ๋”๋ง ๋„๊ตฌ ex) Safari, Chrome, Internet explorer
-์›น ํŽ˜์ด์ง€ : ์˜จ๋ผ์ธ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ๋ฌธ์„œ ๋˜๋Š” ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ๋น„๋””์˜ค๋กœ ๊ฐ€๋“์ฐฌ ํŽ˜์ด์ง€ 
-์›น ์‚ฌ์ดํŠธ : ๊ณต๋™ ์Šค๋ ˆ๋“œ๋ฅผ ๊ณต์œ ํ•˜๋Š” ํŽ˜์ด์ง€์˜ ๋ชจ์Œ
-์›น ์„œ๋ฒ„ : ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ํ”„๋กœํ† ์ฝœ๋กœ ์š”์ฒญ์„ ๋ฐ›์•„,

                HTML ๋ฌธ์„œ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •์  ์›น ํŽ˜์ด์ง€๋ฅผ ์‘๋‹ตํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด
-ํด๋ผ์ด์–ธํŠธ : ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์ œ๊ณต๋ฐ›๋Š” ์ปดํ“จํ„ฐ

 

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

  ์ดˆ์ฐฝ๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์›นํŽ˜์ด์ง€์˜ ๋ณด์กฐ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•œ์ •์  ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. ์ด ์‹œ๊ธฐ ๋Œ€๋ถ€๋ถ„์˜ ๋กœ์ง์€ ์ฃผ๋กœ ์›น ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜์—ˆ๊ณ , ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ HTML๊ณผ CSS๋ฅผ ๋‹จ์ˆœํžˆ ๋ Œ๋”๋งํ•˜๋Š” ์ˆ˜์ค€์ด์—ˆ๋‹ค. 

 

@๊ธฐ์ดˆ๊ฐœ๋…

-๋กœ์ง : ๋…ผ๋ฆฌ์  ํ๋ฆ„
-๋ Œ๋”๋ง : HTML, CSS, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ž‘์„ฑ๋œ ๋ฌธ์„œ๋ฅผ ํ•ด์„ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €์— ์‹œ๊ฐ์ ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ

 

2.3.1 Ajax์˜ ๋“ฑ์žฅ
  ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„๊ฐ€ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹  ๊ธฐ๋Šฅ์œผ๋กœ 'XMLHttprequest'๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋“ฑ์žฅํ–ˆ๋‹ค.
์ด์ „์˜ ์›น ํŽ˜์ด์ง€๋Š” ์‹œ์ž‘๊ณผ ๋์„<html></html>๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์™„์ „ํ•œ HTML ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „์†ก๋ฐ›์•„ ์›น ํŽ˜์ด์ง€ 
์ „์ฒด๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ–ˆ๋‹ค. ์ด๋กœ์ธํ•ด ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. Ajax๋Š” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „์†ก๋ฐ›์•„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ํ•œ์ •์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜์—ฌ ๊ธฐ์กด์˜ ๋น„ํšจ์œจ์„ฑ์„ ๊ฐœ์„ ํ–ˆ๋‹ค.(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ Ajax๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ '๊ตฌ๊ธ€ ๋งต์Šค'์—์„œ ๊ฒ€์ฆํ–ˆ์Œ)

 

@๊ธฐ์ดˆ๊ฐœ๋…

-๋น„๋™๊ธฐ : Asynchronous ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”(๋™๊ธฐ ๋ฐฉ์‹์— ๋น„ํ•ด ๋ณต์žกํ•˜์ง€๋งŒ, ๋” ํšจ์œจ์ ์ž„)
-๋™๊ธฐ : synchronous ๋™์‹œ์— ์ผ์–ด๋‚˜๋Š” 

 

2.3.2 jQuery์˜ ๋“ฑ์žฅ
  jQuery์˜ ๋“ฑ์žฅ์œผ๋กœ ๋‹ค์†Œ ๋ฒˆ๊ฑฐ๋กญ๊ณ  ๋…ผ๋ž€์ด ์žˆ์—ˆ๋˜ dom(document object model)์„ ์‰ฝ๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์œผ๋ฉฐ, ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๋„ ์–ด๋Š ์ •๋„ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

 

2.3.3 V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์˜ ๋“ฑ์žฅ
  '๊ตฌ๊ธ€ ๋งต์Šค' ์ดํ›„๋กœ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์˜ ํ•„์š”์„ฑ์ด ๋Œ€๋‘ ๋˜์—ˆ๊ณ , '๊ตฌ๊ธ€'์€ V8์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๋งŒ๋“ค์—ˆ๋‹ค.

๊ทธ ๊ฒฐ๊ณผ ๊ณผ๊ฑฐ ์›น ์„œ๋ฒ„์—์„œ ์ˆ˜ํ–‰๋˜๋˜ ๋กœ์ง๋“ค์ด ๋งŽ์€ ๋ถ€๋ถ„ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ด๋™ํ–ˆ๊ณ , ์ด๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ํ”„๋ŸฐํŠธ์—”๋“œ ์˜์—ญ์ด 
์ฃผ๋ชฉ๋ฐ›๋Š” ๊ณ„๊ธฐ๋กœ ์ž‘์šฉํ–ˆ๋‹ค.

 

@๊ธฐ์ดˆ๊ฐœ๋…

-์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์ž„

 

2.3.4 Node.js์˜ ๋“ฑ์žฅ
  '๋ผ์ด์–ธ ๋‹ฌ'์ด ๋ฐœํ‘œํ•œ '๊ตฌ๊ธ€' V8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์œผ๋กœ  ๋งŒ๋“ค์–ด์ง„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์œผ๋กœ,
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋…๋ฆฝ์‹œํ‚จ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋‹ค.
์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋ฒ—์–ด๋‚˜ ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๋˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๋‹ค.

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

 

@๊ธฐ์ดˆ๊ฐœ๋…

-๋Ÿฐํƒ€์ž„  : ๊ฐ„๋‹จํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ์ž„

-ํฌ๋กœ์Šค ํ”Œ๋žซํผ : ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” 

 

2.3.5 SPA ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋“ฑ์žฅ
  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ฃผ๋ชฉ๋ฐ›๋Š”๊ฒƒ๊ณผ ๋™์‹œ์— ๊ฐœ๋ฐœ ๋ฐฉ์‹์ด ๋”์šฑ ๋ณต์žกํ•ด์กŒ๊ณ , ๊ทธ๋กœ ์ธํ•ด ๋งŽ์€ ํŒจํ„ด๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ƒ๊ฒจ๋‚ฌ๋‹ค.

ํ•˜์ง€๋งŒ, ์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์˜ ๊ตฌ์ถ•์„ ์–ด๋ ต๊ฒŒ ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ๊ณ  ํ•„์—ฐ์ ์œผ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
               

@๊ธฐ์ดˆ๊ฐœ๋…
-ํ”„๋ ˆ์ž„์›Œํฌ : ์ผ์ •ํ•œ ๋ชฉ์ ์— ๋”ฐ๋ผ ํšจ์œจ์ ์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ์งœ๋†“๋Š” ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ ํด๋ž˜์Šค์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ชจ์Œ์ž„
-๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ์‚ฝ, ํ†ฑ๋‹ˆ, ๋ง์น˜์™€ ๊ฐ™์€ ์ผ์ข…์˜ ๋„๊ตฌ

 

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

(ECMAscript ⊂ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)

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