Vanilla js / Ecma script / Typescript μλ°μ€ν¬λ¦½νΈλ₯Ό λλ¬μΌ λͺ μΉ μ΄ν΄νκΈ°!
- October 06, 2019
- 3 minute read
1. λ°λλΌ μλ°μ€ν¬λ¦½νΈ (Vanilla js)
μ무 κ²λ μμ΄μ§ μμ λ°λλΌ μμ΄μ€ν¬λ¦Όμ²λΌ, μμν μλ°μ€ν¬λ¦½νΈλ§μ μΌμ»«μ΅λλ€.
λΌμ΄λΈλ¬λ¦¬λ νλ μμν¬λ₯Ό μ¬μ©νμ§ μκ³ μλ°μ€ν¬λ¦½νΈλ§μΌλ‘ ꡬνμ νλ€λ©΄, λ°λλΌ μλ°μ€ν¬λ¦½νΈλ‘ κ°λ°νμλ€ λ§ ν μ μκ² μ£ .
React λ±μ μλ°μ€ν¬λ¦½νΈ νλ μμν¬κ° μ£Όλͺ©μ λ°μΌλ©΄μ, κ·Έ κΈ°λ°μ΄ λλ μλ°μ€ν¬λ¦½νΈλ μ€μν΄μ§λ€λ³΄λ μ겨λ μ©μ΄κ° μλκΉ μΆμΈ‘μ΄ λ©λλ€.
- 곡μ ννμ΄μ§ http://vanilla-js.com/
- μ°Έκ³ κΈ https://tuhbm.github.io/2018/01/21/vanillaJS/
2. μν¬λ§ μ€ν¬λ¦½νΈ (Ecma Script)
μλ°μ€ν¬λ¦½νΈμ κ°μ₯ λ§μ΄ νΌμ©νμ¬ μ¬μ©λλ ECMA Scriptμ
λλ€.
λ³Έλ μλ°μ€ν¬λ¦½νΈλ λ·μ€μΌμ΄νλΌλ νμ¬μμ livescript(λΌμ΄λΈ μ€ν¬λ¦½νΈ)λΌλ μ΄λ¦μΌλ‘ κ°λ°μ΄ λμλ€κ° νμ, μλ°μ€ν¬λ¦½νΈλΌλ μ΄λ¦μ μ¬μ©νκ²λ μΈμ΄μ
λλ€. κ·Έλ¦¬κ³ μ΄ μλ°μ€ν¬λ¦½νΈκ° μ±κ³΅μ νμ, λ§μ΄ν¬λ‘μννΈμμ jscriptλΌλ μ΄λ¦μΌλ‘ μΈν°λ· μ΅μ€νλ‘μ΄μ νΈνλλ νμ μΈμ΄λ₯Ό λ΄λμ΅λλ€. μ΄λ κ² νμλλ μΈμ΄κ° μκΈ°μ νμ€ν(κΈ°μ€ κ·κ²©μ μ μνλ κ²)κ° νμν΄μ‘κ³ , Ecma μΈν°λ΄μ
λ(μ 보μ ν΅μ μμ€ν
μ μν κ΅μ μ νμ€ν 기ꡬ)μ ν΅ν΄ 곡νλ νμ€μ΄ ECMA ScriptλΌκ³ ν©λλ€.
κ°λ¨ν μ 리νμλ©΄, μ€ν¬λ¦½νΈ μΈμ΄λ₯Ό μν νμ€ = ECMA Script, κ·Έ νμ€μ λ°λ₯΄λ μ€ν¬λ¦½νΈ μΈμ΄ = Javascriptκ° λκ² μ΅λλ€.
νν "ES6 κΈ°λ°μ΄λ€", "Ecma script 6λ‘ κ°λ°νλ€"λΌκ³ νλ€λ©΄ Ecma script 6μμ μ μλ λ¬Έλ²μ΄λ κΈ°μ μ μ΄μ©ν΄ κ°λ°νλ€λΌκ³ μ΄ν΄νμλ©΄ λ κ² κ°μ΅λλ€.
μμ£Ό ꡬ체μ μΌλ‘ μ 리λ ν¬μ€νΈλ₯Ό λ§ν¬ν΄λ리λ, λ μμΈν μ€λͺ μ΄ νμνλ©΄ μ°Έκ³ ν΄λ³΄μΈμ. :)
- μΆμ² κΈ https://wormwlrm.github.io/2018/10/03/What-is-the-difference-between-javascript-and-ecmascript.html
- Javascript μν€λ°±κ³Ό https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8
- Ecma Stript μν€λ°±κ³Ό https://ko.wikipedia.org/wiki/ECMA%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8
3. νμ μ€ν¬λ¦½νΈ (Typescript)
νμ
μ€ν¬λ¦½νΈλ μλ°μ€ν¬λ¦½νΈμ μνΌμ
μΈ μ€νμμ€ νλ‘κ·Έλλ° μΈμ΄λ‘, λ§μ΄ν¬λ‘μννΈμμ κ°λ°νλ€κ³ ν©λλ€.
μλ°μ€ν¬λ¦½νΈμ νμ€ν ꡬλΆλλ μλ‘μ΄ μΈμ΄λΌλ κ²μ΄μ£ . 'μνΌμ
'μ΄λ μλΈμ
μ΄λΌλ νμ νλͺ©μ΄ μκ³ , κ·Έκ²μ ν¬ν¨ν΄μ λ νμ₯λ κ²μ μλ―Έν©λλ€. μλ μ΄λ―Έμ§ μ²λΌμ. νμ
μ€ν¬λ¦½νΈλ‘ μμ±λ μ½λλ μλ°μ€ν¬λ¦½νΈλ‘ μ»΄νμΌνμ¬ μ¬μ©νλ©΄ λκ³ , μλ°μ€ν¬λ¦½νΈμμ λνμ μΈ μ°¨μ΄λ 'type' μ¦, μλ£νμ ꡬλΆνλ€λ μ μ΄λΌκ³ ν©λλ€. javascript + type = typescript!
Bonus.
μλ°μ€ν¬λ¦½νΈμ κ΄λ ¨ν κ°λ λ€μ λν μ€λͺ !
1. μ μ΄μΏΌλ¦¬ (jquery)
μ μ΄μΏΌλ¦¬λ μλ°μ€ν¬λ¦½νΈ νλ μμν¬μ λλ€. κ³Όκ±° 볡μ‘νκ³ κΉλνμ§ μμλ μλ°μ€ν¬λ¦½νΈλ₯Ό κ°μ νμ¬, λΉκ΅μ μ½κ² μλ°μ€ν¬λ¦½νΈμ κΈ°λ₯μ μΈ μ μκ² νλ€κ³ ν©λλ€. λνμ μΌλ‘ κ°κ²°ν΄μ§ DOM selectκ° μ₯μ μ΄μλ κ² κ°μμ.
ex. document.document.getelementbyid('main') => $('#main')
2. μμ΄μ μ€ (Ajax)
μμ΄μ μ€λ κ°λ° κΈ°λ²μ μν΄μ. μΌλ°μ μΈ μΉμ¬μ΄νΈλ νμ΄μ§λ₯Ό μ΄λνκ±°λ, κ²μλ¬Όμ μ‘°ννλ λ±μ λμμ μΌμ΄λ λ νμ΄μ§ μ μ²΄κ° κ°±μ λλλ°, ajax κΈ°λ²μ μ΄μ©νλ©΄ μΌλΆλΆμ λ°μ΄ν°λ§ λ³κ²½λλ©΄μ μ’ λ κΉλνκ² μ¬μ©μ±μ μ 곡ν μ μμ΄μ. νλ‘ νΈμλ κ°λ°μμ μ£Όλ‘ μλ²μ λ°μ΄ν° κ΅λ₯λ₯Ό ν΄μΌν λ μ¬μ©λΌμ.
- Ajax μν€λ°±κ³Ό https://ko.wikipedia.org/wiki/Ajax
- Ajaxλ 무μμΈκ°? https://coding-factory.tistory.com/143
3. SPA νλ μμν¬
λνμ μΌλ‘ 리μ‘νΈ(React), μ΅κ·€λ¬(Angular), λ·°μ μ΄μμ€(Vuejs) λ±μ νλ μμν¬λ₯Ό μ§μΉν΄μ.
리μ‘νΈμ λ·°μ μ΄μμ€λ μλ°μ€ν¬λ¦½νΈ κΈ°λ°, μ΅κ·€λ¬λ νμ
μ€ν¬λ¦½νΈ κΈ°λ°μ΄κ³ μ, κΈ°λ° μΈμ΄λ₯Ό μκ³ μμ΄μΌ λ μ μ¬μ©ν μ μλ λꡬμμ.
κ·Έλ¦¬κ³ SPAλ μ±κΈ νμ΄μ§ μ ν리μΌμ΄μ
μ΄λΌλ λ»μΌλ‘, μλ‘μ΄ νμ΄μ§λ₯Ό λΆλ¬μ€μ§ μκ³ νμ¬μ νμ΄μ§λ₯Ό λμ μΌλ‘ λ€μ μμ±ν¨μΌλ‘μ¨ μ¬μ©μμ μν΅νλ μΉ μ ν리μΌμ΄μ
μ΄λ μΉμ¬μ΄νΈλ₯Ό λ»ν©λλ€.(μΆμ². μν€λ°±κ³Ό)
- μ±κΈ νμ΄μ§ μ ν리μΌμ΄μ μν€λ°±κ³Ό https://ko.wikipedia.org/wiki/μ±κΈνμ΄μ§μ ν리μΌμ΄μ
λ μ½μ΄λ³΄λ©΄ μ’μ κΈ
νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬ μ°¨μ΄μ (Framework vs Library)
https://zinee-world.tistory.com/125
μ κ° μ νλ λͺ
μΉ, μ©μ΄ μ€μ ν·κ°λ¦¬κ³ μ νν κ°λ
μ μκ° μλλ κ²λ€μ μ 리ν΄λ΄€μ΅λλ€.
νλ¦° λ΄μ©μ΄ μλ€λ©΄ μ§μ ν΄μ£ΌμΈμ ππ