๐Ÿ“ŒDevelopment/JavaScript

[JS] JavaScript์˜ ์—ญ์‚ฌ, ํ˜„์žฌ ๊ทธ๋ฆฌ๊ณ  ๋ฏธ๋ž˜

geumsong 2023. 3. 11. 14:07

1993
- Marc Andreessen์€ Netscape ํšŒ์‚ฌ๋ฅผ ์ฐจ๋ฆผ
- Mosaic Web Browser ๋งŒ๋“ฆ

 

 

 

 

 

 

 


1994
-Netscape Navigator (UI์š”์†Œ๊ฐ€ ๋” ์ถ”๊ฐ€๋จ)
  โ””  HTML , CSS ๋กœ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ฆ. (์ •์ ์ธ ์›น์‚ฌ์ดํŠธ, ์‹œ์žฅ์—์„œ 80%์˜ ์ ์œ ์œจ)

Marc Andreessen์€ ๋™์ ์ธ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผ..
1. Java(๋ฌด๊ฒ๊ณ , ๋‹จ์–ด๊ฐ€ ์–ด๋ ค์›€)
2.  Brendan Eich๋ฅผ ์Šค์นด์›ƒํ•ด์„œ Scheme๋ผ๋Š” ์–ธ์–ด๋ฅผ ๋ณ€ํ˜•ํ•ด์„œ ์šฐ๋ฆฌ๋งŒ์˜ ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์ž!

 - 9์›”, ๋‚ด๋ถ€์ ์œผ๋กœ Mocha๋ผ๊ณ  ๋ถˆ๋ €๋˜ ์ƒˆ๋กœ์šด ์–ธ์–ด ํƒ„์ƒ.
- ์ถ”ํ›„ LiveScript๋กœ ์ด๋ฆ„ ๋ณ€๊ฒฝ / Netscape ์•ˆ์—๋Š” ์ดํ•ดํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” LiveScript ์—”์ง„, ์ฆ‰ Interpreter๊ฐ€ ํฌํ•จํ•ด์„œ ์ถœ์‹œ.(=์›น ๊ฐœ๋ฐœ์ž๊ฐ€ LiveScript ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด Netscape Navigator๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด ์–ธ์–ด๊ฐ€ ์‹คํ–‰ํ•˜๊ณ ์žํ•˜๋Š” ๊ฒƒ์— ์•Œ๋งž๊ฒŒ ์กฐ์ž‘ํ•˜๋Š” ๊ฒŒ ๊ฐ€๋Šฅ) 

 

 

 

 

 



1995
- ์ถ”ํ›„ JavaScript๋กœ ๋ณ€๊ฒฝ

(Java์˜ ์ธ๊ธฐ์— ์–นํ˜€ ์˜ฌ๋ผํƒ€๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ LiveScipt์˜ ์ด๋ฆ„์„ JavaScript๋กœ ๋ณ€๊ฒฝํ•จ, ๊ทธ๋ž˜์„œ Java์™€ JavaScript๋ฅผ ์˜คํ•ดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ ..)

์œ„๊ธฐ๋ฅผ ๋Š๋‚€ Microsoft์‚ฌ, Netscape์—์„œ ๋งŒ๋“  ๋ธŒ๋ผ์šฐ์ €๋ฅผ Reverse engineering์„ ํ•จ.
      =๋งŒ๋“ค์–ด์ง„ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ณผ์ •
Javascipt์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์›ํ•ด์„œ ์กฐ๊ทธ๋งŒ ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ž์‹ ๋“ค๋งŒ์˜ ์–ธ์–ด์ธ์ฒ™ JScript๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์‹œ์žฅ์— ๋‚ด๋†“์Œ. 

   ===>์ด๋Š” ๊ฐœ๋ฐœ์ž๋“ค์˜ ๊ณ ํ†ต์˜ ์‹œ๋ฐœ์ ์ด ๋œ๋‹ค (๋„ˆ๋ฌด ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ € ์œ„์— ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ–ˆ๊ธฐ๋•Œ๋ฌธ)

 

 

 

 

 


1996
- NetScapeํšŒ์‚ฌ
  โ”” ECMA INternational๋ผ๋Š” ๋‹จ์ฒด์— ์ฐพ์•„๊ฐ€ "JavaScript๋ฅผ ํ‘œ์ค€ํ™”ํ•ด๋ณด์ž"

 

 

 

 

 


1997
-7์›”, 1๋ฒˆ์งธ ECMAScipt1 ์ถœ์‹œ.
                              โ”” ๋ธŒ๋ผ์šฐ์ €์— ๋™์ž‘ํ•˜๋Š” ๋ฌธ๋ฒ•์  ์„œ๋ฅ˜๋ฅผ ์ž˜ ์ •๋ฆฌํ•œ ๋ฌธ์„œ
-๊ทธ ์ดํ›„ 2000๋…„๋Œ€๊นŒ์ง€ ์ƒˆ๋กœ์šด ๋ฒ„์ „๋“ค์„ ์ถœ์‹œํ•จ
EMAScript 1 (1997)
EMAScript 2 (1998)
EMAScript 3 (1999) : ์ƒˆ๋กœ์šด error handling์— ๊ด€ํ•œ ๋ฌธ๋ฒ•, === (3 co-operator : ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž) ์ถ”๊ฐ€
EMAScript 4 (2000) : ๋‹ค์–‘ํ•œ ๊ฒƒ๋“ค ์ถ”๊ฐ€

 

 

 

 

 



2000
-Microsoft์‚ฌ์˜ Internet Explorer์˜ ์‹œ์žฅ์ ์œ ์œจ 95%
 โ”” ์กฐ๊ธˆ์”ฉ Netscape์‚ฌ์— ๋Œ€ํ•œ ๋ถˆ๋งŒ ํ‘œ์ถœ(๊ฐœ๋ฐœ์ž๋“ค์˜ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด class๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฑด ๋”์ด์ƒ script์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๋‹ค)
 โ”” " ์‚ฌ์šฉ์ž๋“ค์ด ๋งŽ์ด ์“ฐ๋‹ˆ๊นŒ, ์šฐ๋ฆฌ๊ฐ€ ํ‘œ์ค€์ด๋‹ค" ์„ ์–ธ
๋”์ด์ƒ ECMA Script์˜ ํ‘œ์ค€ํ™”์— ์ฐธ๊ฐ€X.

 

 

 

 

 

 


2004
-Mozilla์‚ฌ : Firefox ์ถœ์‹œ
-ActionScript3์— Tamarin์ด๋ผ๋Š” ์—”์ง„์ด ์žˆ๋Š”๋ฐ ์ด๊ฑธ ์ด์šฉํ•˜๋ฉฐ ํ‘œ์ค€ํ™”์— ๋Œ€ํ•ด ๋‹ค์‹œ ๊ฒ€ํ† ํ•ด๋ณด์ž~
- BUT ๊ธฐ์กด์˜ ๋ถ€๋ผ์šฐ์ €์— ์“ฐ์ด๊ณ ์žˆ๋Š” JScript์™€ JavaScript์™€ ๋„ˆ๋ฌด ๋‹ฌ๋ผ ํ‘œ์ค€ํ™”์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ํ•„์š”ํ–ˆ์Œ.
Jesse James Garrett
  โ””AJAX((Asynchoronous JavaScript and XML)๊ธฐ์ˆ ๋ช…์„ธ์„œ) :๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜ค๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

๊ทธ์‚ฌ์ด...
์›น ์‹œ์žฅ ์ฆ๊ฐ€ํ•˜๊ณ  ์ˆ˜์š”๊ฐ€ ๋งŽ์•„์ง -> ๊ฐœ๋ฐœ์ž ๋งŽ์•„์ง -> ์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜•์„ฑ (JQuery, dojo, mootools)

 

 

 

 


2008
-Google์‚ฌ : chorome (+JIT์—”์ง„:JavaScript ์‹คํ–‰ ์†๋„ ๋น ๋ฅธ์—”์ง„)
-7์›”, 4์‚ฌ(Google, Netscape, Mozilla, Microsoft)์˜ ํ‘œ์ค€ํ™” ์ž‘์—… ์‹œ์ž‘

 

 



2009
ECMAScript5

2015
ECMAScript6 (default parameter, class, aarrow function, const, let ๋“ฑ)
๊ทธ ์ดํ›„ ๋งค ํ•ด๋งˆ๋‹ค ์ƒˆ๋กœ์šด Script ๋‚˜์˜ด(์ปค๋‹ค๋ž€ ํ‹€์€ 5,6์—์„œ ์ •์˜๋๊ณ  ๊ทธ ์ดํ›„๋Š” ์กฐ๊ธˆ๋งŒ ์ˆ˜์ •๋œ ์ •๋„)


JavaScript = ํ‘œ์ค€ํ™”๋จ.
๋”์ด์ƒ jQuery, dojo,mootools ๋„์›€์—†์ด ์›น API๋งŒ์œผ๋กœ๋„ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์— ์ž˜ ๋™์ž‘ํ•  ์ˆ˜ ์ž‡๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.




JavaScript Engines
-V8 (Chrome) : microsoft์‚ฌ์—์„œ๋„ ์“ฐ๊ณ ์žˆ์Œ
-SpiderMonkey (Firefox)
-JSCore (Safari)
-Chakra (MS Edge)
-Carakan (Opera)
-Tamarin (Adobe Flash)

 

 


-Babel : ECMA Script๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜
  :์šฐ๋ฆฌ๊ฐ€ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ์ตœ์‹ ๋ฒ„์ „์˜ ECMA Script ์‚ฌ์šฉ,
  ์‚ฌ์šฉ์ž ๋ฐฐํฌ ์‹œ, JavaScript transcompiler์ด์šฉ (ECMA  SCript๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜ ===> Babel)


 


<ํ˜„์žฌ ๊ฐ€๊ณ  ์žˆ๋Š” ๋ฐฉํ–ฅ>
- SPA (Single Page Application)๊ฐ€ ๋œจ๊ณ ์žˆ์Œ.

์›น์‚ฌ์ดํŠธ ๋งŒ๋“œ๋Š” ๊ฑด ์ถฉ๋ถ„ํ•˜์ง€์•Š์Œ. ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๋ถ€๋ถ„์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋Š”๊ฒƒ. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์œผ๋กœ๋„ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•˜๊ฒ ์ง€๋งŒ SPA๋ฅผ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ์œ„ํ•ด ๋ฆฌ์•กํŠธ ์•ต๊ทค๋Ÿฌ ๋น„์œ  ๋“ฑ.. ์ด ๋‚˜์˜ด. 


<์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์•ผ>
-๋ฐฑ์—”๋“œ, ๋ชจ๋ฐ”์ผ, ๋ฐ์Šคํฌํƒ‘ ์•ฑ


<๋œจ๊ณ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ธฐ์ˆ >
- ์›น ์–ด์Œค๋ธ”๋ฆฌ ๋“ฑ์žฅ

      โ”” C++, C#, Java, Python ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด ์ด์šฉํ•ด ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“œ๋Š” ๊ฒŒ ๊ฐ€๋Šฅํ•ด์ง. 
      โ””  C++๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒŒ์ž„๋„ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์ˆ˜ ์žˆ์Œ. ํ”ผ๊ทธ๋งˆ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€.


<์‹œ์žฅ์„ฑ>
-  ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์–ธ์–ด์—์„œ 7๋…„ ๋™์•ˆ 1์œ„.
-  ์‚ฌ๋ž‘๋ฐ›๋Š” ์–ธ์–ด 11์œ„.
-  ๊ฐœ๋ฐœ์ž๋“ค ๋ฐฐ์šฐ๊ณ ์‹ถ์€ ์–ธ๋„ˆ 2์œ„.
-  ์ „์„ธ๊ณ„์  ํ‰๊ท  ์—ฐ๋ด‰ 5600.