β 1. μλ°μ€ν¬λ¦½νΈ(JavaScript) λ?
- μΉ νμ΄μ§λ₯Ό λμ μΌλ‘ λ§λ€κΈ° μν΄ μ€κ³λ νλ‘κ·Έλλ° μΈμ΄μ΄λ€.
- μ²μ λ§λ€μ΄μ‘μ λΉμ λΈλΌμ°μ μμλ§ λμνλ ν΄λΌμ΄μΈνΈ μΈ‘ μΈμ΄λ‘ μμμ νμ§λ§, νμ¬λ Node.jsμ κ°μ νκ²½ λλΆμ μλ² μΈ‘μμλ μ¬μ© κ°λ₯ν λ²μ© μΈμ΄κ° λμλ€.
- λν, μλ°μ€ν¬λ¦½νΈλ μΉ λΈλΌμ°μ μμμ λμνλ μ€ν¬λ¦½νΈ μΈμ΄λΌκ³ λ³Ό μ μλ€.
β 2. μ€ν¬λ¦½νΈ μΈμ΄λ?
- μ£Όλ‘ μ ν리μΌμ΄μ λ°νμ νκ²½μ λͺ λ Ήμ μ λ¬νκ±°λ μλννκΈ° μν΄ μ€κ³λ κ°λ¨ν λ¬Έλ²μ νλ‘κ·Έλλ° μΈμ΄λ₯Ό μλ―Ένλ€.
- μ ν리μΌμ΄μ λλ νλ«νΌ μμμ μ§μ μ€νλκ±°λ ν΄μλμ΄ λμνλ μΈμ΄λ₯Ό μλ―Ένλ€.
- μ½κ²λ§ν΄, μλ°, C, C++ μΈμ΄λ μ ν리μΌμ΄μ μ λ§λ€κΈ° μν μΈμ΄μ΄λ€. μ¦, μ΄μ체μ μμμ λ 립μ μΌλ‘ μ€νλλ μμ ν νλ‘κ·Έλ¨μ κ°λ°μ ν μ μλ€. λ°λ©΄ μ€ν¬λ¦½νΈ μΈμ΄λ λ³΄ν΅ μ΄λ―Έ λ§λ€μ΄μ§ μ ν리μΌμ΄μ νκ²½ λ΄λΆμμ λμνλ μμ μ½λ μ‘°κ°μ μμ±νλλ° μ£Όλ‘ μ°μΈλ€. μΉ λΈλΌμ°μ λ΄λΆμμ λμνλ μλ°μ€ν¬λ¦½νΈκ° κ·Έ μμ΄λ€.
- μ 리νλ©΄ μ€ν¬λ¦½νΈ μΈμ΄λ C/C++ λ±μ μ μμ€ μΈμ΄λ‘ ꡬνλ λ°νμ νκ²½ μμμ λμνλ©°, 볡μ‘ν κΈ°λ₯μ κ°λ¨ν λͺ λ Ήμ΄λ‘ μ¬μ©ν μ μλλ‘ μΆμνλ κ³ μμ€ νλ‘κ·Έλλ° μΈμ΄μ΄λ€."
- μλ°ν¬μ€λ¦½νΈλ₯Ό μμλ‘ λ€λ©΄, μλ°μ€ν¬λ¦½νΈμ μ½λλ₯Ό μμ±ν λ€ μ€νμ νλ©΄ λ΄λΆμ κΈ°κ³μ΄λ‘ μ»΄νμΌμ΄ 미리 λμ΄μλ C++ λ‘ κ΅¬νλ ν¨μκ° λ§€μΉλμ΄μ μ€νλλ κ°λ μΌλ‘ λ³Ό μ μλ€. μ¦, μ μμ€ μΈμ΄κ° μ€νμ΄ λλ€κ³ 보면 λλ€.
β 3. μλ°μ€ν¬λ¦½νΈ μμ¬
(1) 1993λ - Mosaic (λͺ¨μμ΄ν¬) λΈλΌμ°μ νμ
- μΈκ³ μ΅μ΄μ λμ€μ μΈ κ·Έλν½ μΉ λΈλΌμ°μ
- λ―Έκ΅ μΌλ¦¬λ Έμ΄ λνμ κ΅λ¦½ μνΌμ»΄ν¨ν° μμ© μ°κ΅¬μμμ λ§λ€μ΄μ§
- λΉμ λνμμ΄μλ Marc Lowell Andreessen μ κ·Έμ λλ£λ€μ΄ κ°λ°μ ν¨.
- Mosaic μ μ±κ³΅μΌλ‘ μΉμ΄ νλ°μ μΌλ‘ μ±μ₯νκΈ° μμνλ©°, μ΄λ₯Ό κΈ°λ°μΌλ‘ ν λΈλΌμ°μ νμ¬λ€μ΄ μ겨λκΈ° μμν¨.
(2) 1994λ - Netscape Navigator νμ
- λͺ¨μμ΄ν¬ μΉ λΈλΌμ°μ λ₯Ό λ§λ€μ΄λΈ κ°λ°νμ μ΄λλ Marc Lowell Andreessen μ λν μ‘Έμ κ³Ό λμμ Netscape νμ¬ μ€λ¦½
- 1994λ 12μ λͺ¨μμ΄ν¬λ₯Ό λ§λ κ²½νμ ν λλ‘ μ’ λ UIμμκ° λν΄μ§ Netscape Navigator λΈλΌμ°μ μΆμ
- νμ§λ§, μμ§κΉμ§λ μ μ μΈ μΉ μ¬μ΄νΈ μμ.
(3) 1995λ μ΄ - Netscape λΈλλ μμ΄ν¬ κ³ μ©
- μ΄κΈ° μΉ νμ΄μ§λ μ μ μΈ HTML λ¬Έμμ λΆκ³Όνλλ°, μ¬μ©μκ° λμ΄ λ μλ‘ λμ μΌλ‘ λμνλ μ€ν¬λ¦½νΈ μΈμ΄κ° νμν΄μ‘μ.
- Marc Lowell Andreessen λ λμ μΈ μΉ μ¬μ΄νΈλ₯Ό λ§λ€κ³ μ ν΄μ, μ€ν¬λ¦½ν μΈμ΄λ₯Ό κ°λ°μ νκ² λ¨.
(4) 1995λ 5μ ~ λ§ - JavaScript νμ
- λΈλ λ μμ΄ν¬(Brendan Eich) μ¬λκ³Ό Netscape κ° ν©λν΄μ Mocha λΌλ μ€ν¬λ¦½νΈ μΈμ΄λ₯Ό λ¨ 10μΌλ§μ μμ±μ νκ² λ¨.
- μ΄ Mocha λ 6μ LiveScript λ‘ μ΄λ¦μ΄ λ°λμλ€κ° μ΅μ’ μ μΌλ‘ 1995λ λ§μ JavaScript λ‘ λ³κ²½μ΄ λμμ.
- μ΄μ λ, λΉμ μλ° μΈμ΄κ° ν° μΈκΈ°λ₯Ό λκ³ μμκΈ° λλ¬Έμ, λ§μΌν ν¨κ³Όλ₯Ό μν΄ μ΄λ¦μ λ°κΎΈκ² λμμ.
- μΆν LiveScript(νμ JavaScript) μΈν°ν리ν°λ₯Ό λ΄μ₯ν Netscape Navigator 2.0 μ΄ μΆμλ¨.
- κ°μν΄ λ§μ΄ν¬λ‘μννΈκ° λ·μ€μΌμ΄νμ μλ°μ€ν¬λ¦½νΈλ₯Ό 리λ²μ€ μμ§λμ΄λ§νμ¬ JScript κ°λ°μν΄ μΈν°λ· μ΅μ€νλ‘μ΄ 3μ νμ¬νμ¬ λ°°ν¬λ₯Ό μμν¨. μ΄ κ³Όμ μΌλ‘ μΈν΄ λΈλΌμ°μ λ³ μλ°μ€ν¬λ¦½νΈ ꡬνμ΄ λ¬λΌ μΉ κ°λ°μλ€μ νΈνμ± λ¬Έμ μ μ§λ©΄νκ² λ¨.
(5) 1996λ - μ€ν¬λ¦½νΈ μΈμ΄ μΉ νμ€ λ¬Έμ
- λ·μ€μΌμ΄νμ λ§μ΄ν¬λ‘μννΈκ° κ°μ λ μμ μΈ μ€ν¬λ¦½νΈ μΈμ΄ ꡬνμΌλ‘ μΉ νμ€ λ¬Έμ κ° μ¬ν λ¨.
(6) 1997λ ~ 1999λ - νμ€ν μ μ λ° νμ€ν
- 1997λ 6μ: λ·μ€μΌμ΄νκ° ECMA μΈν°λ΄μ λ(κ΅μ νμ€ν 기ꡬ)μ JavaScript νμ€νλ₯Ό μ μν¨.
- 1997λ 7μ: ECMAScript 1ν(ECMA-262 μ 1ν) 곡μ λ°ν, λ³μ, ν¨μ, νμ , λ¬Έλ² λ± κΈ°λ³Έ μΈμ΄ μ¬μμ κ·μ ν¨.
- 1999λ : ECMAScript 3ν λ°ν, μ€λ₯ μ²λ¦¬, μ κ·ννμ, μμΈ μ²λ¦¬ λ± νμ¬ μλ°μ€ν¬λ¦½ν ν΅μ¬ κΈ°λ₯ λ€μ ν¬ν¨
(7) 2000λ λ μ΄ - λ§μ΄ν¬λ‘μννΈ ECMAScript νμ€ν μ°Έμ¬ μ€λ¨
- μΈν°λ· μ΅μ€νλ‘μ΄ μ μ μ¨ κΈμμΉ(95% μ΄μ)νλ©° μ¬μ€μ λ μ 체μ λ₯Ό ꡬμΆνκ² λ¨.
- λ§μ΄ν¬λ‘μννΈλ ECMAScript νμ€ν μ°Έμ¬λ₯Ό μ€λ¨νκ³ λ μμ μΈ κΈ°μ μ μ©μ μλν¨.
(8) 2002λ ~ 2004λ - Firefox νμ λ° νμ€ν μλ
- λͺ¨μ§λΌ μ¬λ¨ μΆλ², Firefox κ°λ° μ°©μ
- Firefox 1.0 μΆμ
- λͺ¨μ§λΌλ Adobeμ ActionScript 3μ Tamarin μμ§μ ECMA μ νμ€ν μ μ. κ·Έλ¬λ κΈ°μ‘΄ ECMAScript μμ νΈνμ± λ¬Έμ λ‘ νμ€νκ° λ¬΄μ°μ΄ λμμ.
(9) 2005λ - Ajax κΈ°μ λΆμ
- Ajax κΈ°μ λΆμμΌλ‘ μΉ νμ΄μ§ λ΄ λμ κΈ°λ₯μ΄ κΈμ¦ν¨.
(10) 2006λ ~ 2007λ - μλ°μ€ν¬λ¦½νΈ νλ μμν¬ λ±μ₯
- JQuery, Dogo, MooTools λ± λ€μν μλ°μ€ν¬λ¦½νΈ λΌμ΄λΈλ¬λ¦¬μ νλ μμν¬κ° μΆνμ΄ λ¨.
- κ° λΈλΌμ°μ κ° μλ°μ€ν¬λ¦½νΈ ꡬν μ°¨μ΄μ DOM μ‘°μ λ°©μ μ°¨μ΄λ₯Ό 보μν΄ κ°λ° νΈμμ±μ΄ ν₯μμ΄ λ¨.
(11) 2008λ - ν¬λ‘¬ λΈλΌμ°μ νμ
- κ΅¬κΈ ν¬λ‘¬ λΈλΌμ°μ 곡μ μΆμ
- V8 JavaScript μμ§ λμ , JIT(Just-In-Time) μ»΄νμΌλ¬ νμ¬λ‘ μ±λ₯ νμ
- μ΄λ¬ν νμ μ λ³΄κ³ λ€μν λΈλΌμ°μ νμ¬λ€μ΄ κΈ°μ λ€μ κ΄ν΄ μλ‘ μν₯μ μ£Όκ³ λ°μΌλ©° μΉ λ°μ μ μ΄μ§ν¨.
(12) 2008λ 7μ ~ 2009λ 12μ - ECMAScript νμ€ν μ¬μλ
- 2008λ 7μ: μ£Όμ λΈλΌμ°μ μ 체λ€μ΄ ECMAScript νμ€ κ°μ λ° ν΅μΌ λ Όμλ₯Ό μμν¨.
- 2009λ 12μ: ECMAScript 5(ES5) λ°ν, μ격 λͺ¨λ(static mode), JSON μ§μ, Array λ©μλ μΆκ° λ± λ§μ κΈ°λ₯ κ°μ ν¬ν¨
(13) μ΄νλΆν° νμ¬κΉμ§
- Node.js λ±μ₯μ΄ λλ©°, λ°νμ νκ²½μΌλ‘ μλ°μ€ν¬λ¦½νΈκ° λΉ μ§κ² λλ©° μνκ³κ° νμ₯μ΄ λμμ.
- ECMAScript μ΄ νμ¬κΉμ§ λ²μ μ λ°μ΄νΈκ° μ§νμ΄ λκ³ μμ.
- JavaScript λ ECMAScript νμ€μ ꡬνν ꡬνμ²΄λ‘ λ리 μ¬μ©μ΄ λκ³ μμΌλ©°, νμ¬λ μ¬μ€μ JavaScript κ° νμ€ κ΅¬ν체μ΄λ€.
- μ΄μ λ, λ·μ€μΌμ΄νμ¬μ JavaScript λ₯Ό νμ€μΌλ‘ ECMAScriptκ° λ§λ€μ΄μ‘κΈ° λλ¬Έ