๐Ÿ›ต [JS] | 1์žฅ. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐœ์š”

post-thumbnail

์‚ฌ์ง„ ์ถœ์ฒ˜ ย ย ย ย ย ย  ๋„์„œ ๊ตฌ๋งค
๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž…๋ฌธ | ์ด์†Œ ํžˆ๋กœ์‹œ ์ง€์Œ | ์„œ์žฌ์› ์˜ฎ๊น€ ์ฑ…์„ ์ฝ๊ณ  ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

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





๐Ÿ”น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

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

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋™์ž‘(์•Œ๊ณ ๋ฆฌ์ฆ˜)์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ํ–‰์œ„
  • ์†Œ์Šค์ฝ”๋“œ ๋˜๋Š” ์ฝ”๋“œ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ

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

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

์ปดํŒŒ์ผ ์–ธ์–ด๋กœ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํŒŒ์ผ ํ•˜๋Š” ๋ฐ์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€๋งŒ ์‹คํ–‰๋˜๋Š” ์†๋„๋Š” ๋นจ๋ผ์š”.
( java c c++ )

๋ฐ˜๋ฉด์— ํ”„๋กœ๊ทธ๋žจ์„ ํ•œ ์ค„๋งˆ๋‹ค ๊ธฐ๊ฒŒ์–ด๋กœ ๋ฒˆ์—ญํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋ผ๊ณ  ํ•ด์š”.

ํ”„๋กœ๊ทธ๋žจ์„ ๋ฒˆ์—ญํ•ด์„œ ์‹คํ–‰์‹œํ‚ค๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ผ๊ณ  ํ•ด์š”.
์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  ๋™์ž‘์„ ํ™•์ธํ•ด ๊ฐ€๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์–ด์š”
๋ฐ˜๋ฉด์— ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„ ํ•œ ์ค„ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋ฉด์„œ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ ์–ธ์–ด๋ณด๋‹ค ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์–ด์š”
( JS, python, ruby )

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


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

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ•œ๋งˆ๋””๋กœ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‘œํ˜„ ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ˆ์š”.

  1. ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด

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

  1. ๋™์  ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด

c++์™€ java ๋“ฑ์€ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ˆ์š”. ๋ฐ˜๋ฉด์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํด๋ž˜์Šค๊ฐ€ ์•„๋‹Œ ํ”„๋กœํ† ํƒ€์ž…์„ ์ƒ์†ํ•˜๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ˆ์š”. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ํ›„์—๋„ ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์–ด์š”.

  1. ๋™์  ํƒ€์ž… ์–ธ์–ด

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

  1. ํ•จ์ˆ˜๊ฐ€ ์ผ๊ธ‰ ๊ฐ์ฒด์˜ˆ์š”

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜๋Š” ๊ฐ์ฒด์ด๋ฉฐ, ํ•จ์ˆ˜์— ํ•จ์ˆ˜๋ฅผ ์ธ์ˆ˜๋กœ ๋„˜๊ธธ ์ˆ˜ ์žˆ์–ด์š”. ์ด๊ฒƒ์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜๊ฐ€ ์ผ๊ธ‰ ๊ฐ์ฒด์ธ ์ด์œ ์˜ˆ์š”. ์ด ํŠน์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด ๊ณ ์ฐจ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅํ•ด์ ธ์š”.

  1. ํ•จ์ˆ˜๊ฐ€ ํด๋กœ์ €๋ฅผ ์ •์˜ํ•ด์š”

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


๐Ÿ”น์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ์ˆ ์  ์š”์†Œ

  1. ECMAScript(์ฝ”์–ด ์–ธ์–ด)
  1. ํด๋ผ์ด์–ดํŠธ ์ธก์˜ ๊ณ ์œ ํ•œ ๊ธฐ์ˆ  ์š”์†Œ

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

์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์š” API๋Š”

  • window ์ธํ„ฐํŽ˜์ด์Šค : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ์ฐฝ์„ ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์š”.
  • DOM : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ HTML๋ฌธ์„œ์˜ ์š”์†Œ๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์š”.
  • XMLHttpRequest : ์„œ๋ฒ„์™€ ๋น„๋™๊ธฐ๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์š”
    ๊ฐ€ ์žˆ์–ด์š”.
  1. ์„œ๋ฒ„ ์ธก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ณ ์œ ํ•œ ๊ธฐ์ˆ  ์š”์†Œ

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

  • Node.js : ๊ตฌ๊ธ€์ด ๊ฐœ๋ฐœํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ
  • Rhino : ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ฐœ๋ฐœ๋˜์–ด ํ˜„์žฌ๋Š” ๋ชจ์งˆ๋ผ๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ
  • Aptana Jaxer : ์••ํƒ€๋‚˜์‚ฌ๊ฐ€ ๊ฐœ๋ฐœํ•˜๊ณ  ํ˜„์žฌ๋Š” ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ํ™˜๊ฒฝ

๊ณผ ๊ฐ™์€ ๊ตฌํ˜„์ฒด๊ฐ€ ์žˆ์–ด์š”

profile
๋ช‡ ๋ฒˆ์„ ๋„˜์–ด์ ธ๋„ ์•ž์œผ๋กœ ๊ณ„์† ๋‚˜์•„๊ฐ€์ž

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