๐Ÿธ [JavaScript] ์•Œ์•„๋ณด๊ธฐ

hnyoojinยท2024๋…„ 8์›” 21์ผ

๐Ÿธ JS ๋งˆ์Šคํ„ฐ ๋˜๊ธฐ

๋ชฉ๋ก ๋ณด๊ธฐ
2/19
post-thumbnail

JavaScript๋Š” ๋ฌด์—‡์ธ๊ฐ€!

์—ฌ๋А ์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, JS๋ผ๋Š” ์–ธ์–ด์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ์ด๋ผ๋“ ์ง€,, ํŠน์ง•์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

์‚ฌ์‹ค ์ด ๊ณผ์ •์„ ์“ธ ๋ฐ ์—†๋Š” ์‹œ๊ฐ„ ๋‚ญ๋น„๋กœ ๋ณด๋Š” ์นœ๊ตฌ๋“ค๋„ ์žˆ์ง€๋งŒ, ๊ฐœ์ธ์ ์œผ๋กœ ์ด๋Ÿฐ ๋ฐฐ๊ฒฝ ์ง€์‹์„ ์•Œ๋ฉด ์–ธ์–ด์— ์กฐ๊ธˆ ๋” ํฅ๋ฏธ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ข‹์•„ํ•œ๋‹ค.

์–ด๋–ค ๋งฅ๋ฝ์—์„œ ์–ด๋–ค ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•œ ์–ธ์–ด์ธ์ง€,, ๋ชจ๋ฅด๊ณ  ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค๋Š” ์•Œ๊ณ  ์‹œ์ž‘ํ•˜๋Š” ๊ฒŒ ํ›จ์”ฌ ์ข‹์ง€ ์•Š์„๊นŒ??


Programming?


์ฑ…์—์„œ๋Š” 'ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€'๋ฅผ ๋จผ์ € ์ •์˜ํ•˜๋ฉฐ ์‹œ์ž‘ํ•œ๋‹ค.

๊ธธ๊ฒŒ ์„ค๋ช…๋œ ๊ธ€์„ ์ฝ์–ด๋ณด๋ฉด, ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€ ์ปดํ“จํ„ฐ์™€์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์ด๋ผ๋Š” ๋‚ด์šฉ์ด๋‹ค.

๋‹ค๋งŒ ๊ทธ ๋Œ€์ƒ์ด ์ธ๊ฐ„์ด ์•„๋‹ˆ๊ณ , ๋ช…ํ™•ํ•œ ๋ช…๋ น๋งŒ์„ ์ดํ•ดํ•˜๋Š” '์ปดํ“จํ„ฐ'์ด๊ธฐ ๋•Œ๋ฌธ์—, ์šฐ๋ฆฌ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„๋ช…ํžˆ ์ „๋‹ฌํ•ด์•ผํ•œ๋‹ค.

์ด ์ฑ…์˜ ์ €์ž๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์ •์˜ํ•œ๋‹ค.

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

(๋‚ด๊ฐ€ ๋งค๋ฒˆ ๊ฑฐ์น˜๋˜ ๊ณผ์ •์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์„œ ๋ˆˆ์œผ๋กœ ๋งˆ์ฃผํ•˜๋‹ˆ ๊ธฐ๋ถ„์ด ์ด์ƒํ•˜๊ณ  ์‹ ๊ธฐํ–ˆ๋‹ค.)

์ด ๋ฌธ์žฅ์„ ์ฝ์–ด๋ณด๋ฉด, ๋‹จ์ง€ JavaScript์—๋งŒ ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ•™์Šตํ•  ๋•Œ ์ฝ์–ด๋ณด๋ฉด ์ข‹์„ ๋ฌธ์žฅ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„๊ฐ€์ž...

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชฉ์ ์ด๋‹ค.

์‚ฌ๋žŒ์€ ์ž์—ฐ์–ด๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋งŒ, ์ปดํ“จํ„ฐ๋Š” ๊ธฐ๊ณ„์–ด๋งŒ์„ ์ดํ•ดํ•œ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š”, ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์•ฝ์†๋œ syntax๋กœ ๊ตฌ์„ฑ๋œ programming language๋ฅผ ์‚ฌ์šฉํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค.

๊ทธ ํ”„๋กœ๊ทธ๋žจ์„ ๊ธฐ๊ณ„๊ฐ€ ์ดํ•ดํ•˜๋„๋ก, ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์„ ์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด๋ผ๊ณ  ํ•œ๋‹ค.

์ž˜ ์•Œ๋ ค์ง„ C, C++, Java ๊ฐ€ ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด, ๊ทธ๋ฆฌ๊ณ  Python์ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  Javascript ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ด๋‹ค.


JavaScript ํƒ„์ƒ ๋ฐฐ๊ฒฝ


JacaScript๋Š”, ์›นํŽ˜์ด์ง€์—์„œ ๋ณด์กฐ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•จ์ด์—ˆ๋‹ค.

[1995]

1995๋…„ Netscape communications์—์„œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋„์ž…์„ ๊ฒฐ์ •ํ–ˆ๋‹ค.

[1996.3]

Brendan Eich๊ฐ€ ๊ฐœ๋ฐœํ•œ JavaScript๋Š”, 1996๋…„ 3์›” Netscape communications์˜ ์›น๋ธŒ๋ผ์šฐ์ €์ธ Netscape Navigator 2์— ํƒ‘์žฌ๋˜์—ˆ๋‹ค. ์ด๋•Œ์˜ JavaScript๋Š” Mocha๋ผ๊ณ  ๋ถˆ๋ ธ๋‹ค.

[1996.8]

Internet Explorer 3.0์—, JavaScript์˜ ํŒŒ์ƒ๋ฒ„์ „์ธ JScript๊ฐ€ ํƒ‘์žฌ๋œ๋‹ค.
๋ฌธ์ œ๋Š” JavaScript์™€ JScript๊ฐ€ ํ‘œ์ค€ํ™”๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์„œ๋กœ ์ž์‹ ์˜ ๋ธŒ๋ผ์šฐ์ €์˜ ์‹œ์žฅ์ ์œ ์œจ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด, ์ž์‹ ์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ์„ ๊ฒฝ์Ÿ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
๊ฒฐ๊ตญ JavaScript์˜ ํŒŒํŽธํ™” ๋ฐฉ์ง€์˜ ํ•„์š”์„ฑ, ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ํ‘œ์ค€ํ™”๋œ JS์˜ ํ•„์š”์„ฑ์ด ๋Œ€๋‘๋˜์—ˆ๋‹ค.

[1996.9]

Netscape communications์—์„œ๋Š”, JavaScript(Mocha)๋ฅผ LiveScript๋กœ ์ด๋ฆ„์„ ๋ฐ”๊พผ๋‹ค.

[1996.11]

๊ฒฐ๊ตญ Netscape communications์—์„œ๋Š”, ECMA International์— JavaScript์˜ ํ‘œ์ค€ํ™” ์š”์ฒญ์„ ํ•œ๋‹ค.
(ECMA International : ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ํ‘œ์ค€์„ ๊ด€๋ฆฌํ•˜๋Š” ๋น„์˜๋ฆฌ ํ‘œ์ค€ํ™” ๊ธฐ๊ตฌ)

[1996.12]

Netscape communications์—์„œ๋Š”, JavaScript(LiveScript)์˜ ์ด๋ฆ„์„ JavaScript๋กœ ์ตœ์ข… ๋ช…๋ช…ํ•œ๋‹ค.

[1997.7]

ECMA-262๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š”, ํ‘œ์ค€ํ™”๋œ JavaScript ์ดˆํŒ ์‚ฌ์–‘์ด ์™„์„ฑ๋œ๋‹ค. ์ƒํ‘œ๊ถŒ ๋ฌธ์ œ๋กœ, ํ•ด๋‹น ์–ธ์–ด๋Š” ECMAScript(ES1)๋กœ ๋ช…๋ช…๋˜์—ˆ๊ณ , ์ด๋Š” ํ˜„์žฌ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์˜ ํ‘œ์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.

[1999]

ECMAScript3๊ฐ€ ๊ณต๊ฐœ๋œ๋‹ค.

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

[2006]

jQuery๋ผ๋Š” JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋“ฑ์žฅํ•œ๋‹ค.
DOM ์ œ์–ด๊ฐ€ ์‰ฌ์›Œ์กŒ๊ณ , ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ด์Šˆ๋ฅผ ์–ด๋А์ •๋„ ํ•ด๊ฒฐํ–ˆ๋‹ค.

[2008]

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

[2009]

ES5๊ฐ€ HTML5์™€ ํ•จ๊ป˜ ์ถœํ˜„ํ–ˆ๋‹ค.

Ryan Dahl์ด Node.js๋ฅผ ๋ฐœํ‘œํ–ˆ๋‹ค.
์ด๋Š” V8 JS ์—”์ง„์œผ๋กœ ๋นŒ๋“œ๋œ JavaScript ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์ด๋‹ค.
Node.js๋Š”, ๋ธŒ๋ผ์šฐ์ €์˜ JavaScript ์—”์ง„์—์„œ๋งŒ ๋™์ž‘ํ•˜๋˜ JavaScript๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ด์™ธ์˜ ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก JavaScript ์—”์ง„์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋…๋ฆฝ์‹œ์ผฐ๋‹ค.
(์‚ฌ์‹ค Node.js๊ฐ€ JavaScript ๊ฐœ๋ฐœ ์ƒํƒœ๊ณ„์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค๋Š” ์ •๋„๋Š” ์•Œ์ง€๋งŒ, ์•„์ง ์„ธ๋ถ€์ ์ธ ๋ถ€๋ถ„์€ ๋ด๋„ ์ดํ•ด๊ฐ€ ์ž˜ ์•ˆ๋˜๋‹ˆ ๋‚˜์ค‘์— ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค,,)

[2015]

ES6์ด ๋“ฑ์žฅํ–ˆ๋‹ค.
ES6์—์„œ๋Š” ์ด์ „์˜ ๋ฌธ์ œ์ ์„ ๋งŽ์ด ๊ฐœ์„ ํ•˜๊ณ , ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ ๊ฐ–์ถฐ์•ผํ•  ๊ธฐ๋Šฅ์„ ๋Œ€๊ฑฐ ๋„์ž…ํ–ˆ๋‹ค.


๋‹ค์Œ ๊ธ€๋ถ€ํ„ฐ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ JavaScript ๋ฌธ๋ฒ•๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.
์‚ฌ์‹ค JavsScript๋ฅผ ์ •๋ง ์ฒ˜์Œ์— ๋“ค์—ˆ์„ ๋•Œ๋Š” 'HTML, CSS ๋‹ค์Œ์— ๋ฐฐ์šฐ๋Š” ์–ธ์–ด' ์ •๋„๋กœ ์ดํ•ดํ–ˆ์ง€๋งŒ, ์ด์ œ๋Š”.. ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด์„œ ์ •๋ง JavaScript ๋งˆ์Šคํ„ฐ๊ฐ€ ๋˜์–ด๋ณด๊ฒ ๋‹ค..

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