๋ฐ์ํ
์ด ๊ธ์ ๋๋ฆผ์ฝ๋ฉ๋์ '์๋ฐ์คํฌ๋ฆฝํธ์ ์ญ์ฌ์ ํ์ฌ ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋ (JavaScript, ECMAScript, JQuery, Babel, Node.js)' ๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
History
1993๋
- UI ์์๊ฐ ๊ฐ๋ฏธ๋ ์ฒซ๋ฒ์งธ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ํ์ํ๊ฒ ๋จ Mosaic Web Browser
1994 Netscape Navigator ํ์
- Mosaic Web Browser ๋ฅผ ์ด๋๋ Mac Andressen์ Netscape์ ์ค๋ฆฝํจ
- Netscape Navigator - Wikipedia
- ์ด๊ธฐ ์ธํฐ๋ท ์ฌ์ฉ์๋ค์ ํญ๋ฐ์ ๋ฐ์์ ์ป์ด ์ฝ 90%์ ์์ฅ์ ์ ์จ์ ์ฐจ์งํ๋ค. ์ ์ ์ฌ์ดํธ
- ์ด๋ป๊ฒ ํ๋ฉด ๋์ ์ธ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์๋์ง ๊ณ ์ฌ → scripting ์ธ์ด๋ฅผ ์ถ๊ฐํด๋ณด์!
- Java → ๋๋ฌด ๋ฌด๊ฑฐ์!
- Scheme from Brendan Eich
1994, 9 Mocha
- Scheme์ ์ปจ์ ์ ์ ์งํ๋ฉด์ ๋ฌธ๋ฒ์ Java์ค๋ฝ๊ฒ ๊ฐ๋ฐํจ (Brendan Eich)
- super flexible for anything!
- liveScript ๋ก ์ด๋ฆ์ด ๋ฐ๋. (liveScript interpreter์ด ํฌํจ๋์ด ์์) ๊ทธ ๋ง์ ์น๊ฐ๋ฐ์๋ค์ด liveScript ์ธ์ด๋ฅผ ํตํด์ ์นํ์ด์ง๋ฅผ ๋ง๋ค๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ๋ฉด์ ๋ ์์๋ฅผ ์กฐ์ํ ์ ์์๋ค..
- ๋น์ Java์ ์ธ๊ธฐ๊ฐ ๋ง์๋๋ฐ, ๊ทธ๋์ JavaScript๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ฒ ๋จ
1995 Netscape Netscape Navigator
- ๊ณต์์ ์ธ JavaScript ํ์
- Interpreter
1995 MS, Internet Explorer
- Netscape์ ์ฑ๊ณต์ฌ๋ก๋ฅผ ๋ชฉ๊ฒฉํ๊ณ MS ์์ ์๊ธฐ๊ฐ์ ๋๋ผ๊ณ , Netscape browser๋ฅผ Reverse engineering ํ๊ฒ ๋จ. ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ถ์ํด์ ์์ค์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ๋ณต์ํจ. JScript๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ์ฌ ์ธ์์ ๋ด๋์
- ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฌ๋ผ ๊ฐ๋ฐ์์ ๊ณ ํต์ด ์์๋จ ๐ญ
1996, 11 Netscape
- ๋ ๋ธ๋ผ์ฐ์ ์ ์๊ทนํ๋ฅผ ๊ทน๋ณตํ๊ณ ์ Netscape์์๋ ECMA International ๋จ์ฒด์ ์ฐพ์๊ฐ์ ํ์คํ๋ JavaScript๋ฅผ ๋ง๋ค ๊ฒ์ ์ ์
1997, 7 ECMAScript 1 Language specification
- ECMAScript๋ ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋ ์ธ์ด๋ฅผ ๋ง๋ค ๋ ๊ทธ ์ธ์ด๋ฅผ ์ดํดํ๋ ์์ง์ด ์ดํดํ ์ ์๋๋ก ๋ฌธ๋ฒ์ ์ธ ์ฌํญ์ ์ ์ ๋ฆฌํด๋์ ๋ฌธ์
- ๊ทธ ๋ค์ ์๋ก์ด ๋ฒ์ ๋ค์ด ~ 2000 ๊ณ์ ์
๋ฐ์ดํธ ๋จ
- error handling
- optional type annotation
- class
- Enterprise scale
2000, Microsoft's Internet Explorer
- MS์ IE ์์ฅ ์ ์ ์จ์ด ๊ธ๊ฒฉํ ์์นํ๊ฒ ๋์๋ค. (๋ฌด๋ฃ 95% !!)
- ๋ ์ด์ ECMAScript ํ์คํ์ ์ฐธ๊ฐํ์ง ์๋๋ค๊ณ ์ ์ธํจ.
2004, moz://a Firefox
- ๋ชจ์ง๋ผ์ฌ์์ firefox๋ฅผ ์ถ์ํจ. ActionScript ์ Tamarin์ ํตํด ECMAScript4 ํ์คํ๋ฅผ ์ ์ํ์ง๋ง, ๊ธฐ์กด JavaScript์๋ ๋๋ฌด ๋ฌ๋๊ธฐ ๋๋ฌธ์ ๋ฌด์ฐ๋์๋ค.
- Firefox, Internet Explorer, Netscape Navigator 3์ฌ์ ์ ๊ฒฝ์ ์ด ๋ฒ์ด์ง๊ณ ์๋ ์ฌ์ด ๋ถ์ํ ๊ฐ๋ฐ์๋ค์ ๋ชจ๋ ๋์๋๋ ์นํ์ด์ง๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค. ๐ฅฒ
2004, Jesse James Carrett's AJAX
- AJAX(Asychronous JavaSript and XML) ๋น๋๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ๋ฐ์์ค๊ณ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ์ ๋ง ํ๊ธฐ์ ์ธ ๊ธฐ์ ์ด ๋์ ๋์๋ค.
- ์ฌ์ ํ ์ ๊ฒฝ์ ์ -ing
- ๊ฐ๋ฐ์๋ค์ด ๋ชจ์ธ ์ปค๋ฎค๋ํฐ๊ฐ ์์ฑ๋๋ฉด์ ์ฌ๊ธฐ์ jQuery, dojo, mootools ์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ๋ง์ด ๋์ค๊ฒ ๋์๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ํด๊ฒฐํ๊ณ ์ ํ๋ ๊ณตํต๋ ๊ฒ์ ๋ฑ ํ๋. ์ ๊ณตํ๋ API, ํจ์๋ค์ ์ฌ์ฉ์ ํตํด ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ๊ฒฝ์ธ ํ์๊ฐ ์๊ฒ ๋ง๋๋ ๊ฒ!
2008, Google Chrome !
- just-in-time compilation ์ด๋ผ๋ ๋งค์ฐ ๊ฐ๋ ฅํ ์์ง์ด ํฌํจ๋ ํฌ๋กฌ ์์ง์ด ํ์ํ๋ค.
- ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅธ ์์ง!
- ๋ค๋ฅธ 3์ฌ๋ค์๊ฒ ํฐ ์๊ทน
2008, 7
- ์๋ก ์์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ชจ์
2009 ECMAScript 5
- 2009๋ ๋๋์ด ECMAScript 5๊ฐ ๋์ค๊ฒ ๋์๋ค.
2015 ECMAScript 6
- 2015๋
์๋ ECMAScript 6๊ฐ ๋์ค๊ฒ ๋์๋ค.
- default paramerter
- class
- arrow function
- const
- let
- ๊ทธ ์ดํ ๋งค๋ ์๋ก์ด ๋ฒ์ ๋ค์ด ๋์ค๊ธด ํ์ง๋ง, ์ปค๋ค๋ ๋ณํ๋ค์ 5&6์์ ์ ์๋์๋ค.
- JavaScript ๋ ์ด์ ์ฑ์ํ๊ณ ์ ์ฐฉ๋ ์ธ์ด๋ผ๊ณ ๋งํ ์ ์๋ค. ์ด์ ๋ ๋ ์ด์ jQuery, dojo ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ด๋ ์ ๋์๋๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๋ค.
Javascript Engines
- ๊ฐ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ง์ ECMAScript๋ฅผ ๋ฐ๋ผ๊ฐ๋ ๋ค์ํ ์์ง๋ค์ด ์กด์ฌํ๋ค.
- V8(Chrome)
- node.js, electron์์๋ ๋ง์ด ์ด์ฉ๋จ.
- SipderMonkey(Firefox)
- JSCore(Safari)
- Chakra(MS Edge)
Babel
- ์์ฅ์์ ๋ค์ํ ์ฌ์ฉ์๋ค์ ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ , ๋ชจ๋ ์ฌ์ฉ์๋ค์ด ์ต์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฑด ์๋๋ค. ๊ทธ๋์ ๊ฐ๋ฐํ ๋๋ ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๊ณ , ๋ฐฐํฌํ ๋๋ง ์๋ฐ์คํฌ๋ฆฝํธ transcompiler๋ฅผ ์ด์ฉํ์ฌ 5 or 6์ผ๋ก ๋ณํํ์ฌ ๋ณํ๋ ์ฝ๋๋ฅผ ์์ฐํ๋ ๊ฒ์ ๋ฐ๋ฒจ์ด๋ผ๊ณ ํ๋ค.
SPA(Single Page Application)
ํ๋์ ํ์ด์ง ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ ๋ถ๋ถ์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ๋ ๊ฒ์ด ์ ํํ๊ณ ์๋ค. SPA๋ฅผ ๋ ํธํ๊ฒ ๋ง๋ค๊ธฐ ์ํด์ React, Vue, Angular ๋ค์ด ๋์ค๊ฒ ๋ ๊ฒ์ด๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ ์์ํฌ๋ฅผ ํตํด SPA๋ฅผ ๋ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค.
Javascript
- ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ, ๋ธ๋ผ์ฐ์ ์์ ๋์ ์ธ ์์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ธ์ด์ด๋ค.
- node.js๊ฐ ๋ฑ์ฅํ๊ฒ ๋๊ณ , ์ด๋ v8๋ฅผ ์ด๋ํ ๋ฐฑ์๋์์ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๊ฒ ๋ง๋ค์ด์ก๋ค.
- ๊ทธ ๋ฟ๋ง์๋๋ผ mobile, desktop ๋ฅผ ๋ง๋ค ๋๋ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค.
- ๋ธ๋ผ์ฐ์ ์์ ๋์ํ ์ ์๋ ์ ์ผํ ์ธ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ง๋ง, ์์ฆ์๋ WA (web assemble) ๋ฅผ ํตํด ๋ค์ํ ์ธ์ด๋ค์ ์ด์ฉํด์ ์น์ฑ์ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก๋ค.
https://www.youtube.com/watch?v=wcsVjmHrUQg&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2
๋ฐ์ํ
'Programming > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] Axios ์ค๋ฅ ์ฒ๋ฆฌ / catch ๋ฌธ์์ Status Code ๋ฐ์์ค๋ ๋ฐฉ๋ฒ (0) | 2022.10.04 |
---|---|
[JavaScript] ํ๋ฌ ์ /ํ ๋ ์ง ๊ตฌํ๊ธฐ (0) | 2022.10.01 |
[JavaScript] ํน์ ๋ฌธ์ ์ ๊น์ง ๋ฌธ์์ด ์๋ฅด๋ ๋ฐฉ๋ฒ (substring ์ด์ฉ) (0) | 2022.10.01 |
[JavaScript] JSON.parse() ๋ ๋ฌด์์ธ๊ฐ? (0) | 2022.09.07 |
[JavaScript] prompt() ํจ์ ์ฌ์ฉ ๋ฐฉ๋ฒ (0) | 2022.08.31 |