π/γ΄ JavaScript (13) μΈλ€μΌν 리μ€νΈν [JavaScript] μλ°μ€ν¬λ¦½νΈλ 'μ΄λ²€νΈ κΈ°λ°', 'λ ΌλΈλ‘νΉ' λ°©μμ μ¬μ©νκ³ 'μ±κΈ μ€λ λ' μΈμ΄μ΄λ€. μλ°μ€ν¬λ¦½νΈλ μ±κΈ μ€λ λ μΈμ΄μ΄λ€. νμ§λ§ μ€μ μ¬μ©μμλ λ§μ μμ μ΄ λμμ μ²λ¦¬λλ λ©ν° μ€λ λμ²λΌ 보μ΄λλ° μ κ·Έλ° κ²μΌκΉ? μλ°μ€ν¬λ¦½νΈλ μ΄λ»κ² 'λμμ±(Concurrency)'μ μ§μνλ κ²μΌκΉ? λ°λ‘ μ¬κΈ°μ λ±μ₯νλ κ°λ μ΄ μ΄λ²€νΈ 루νμ΄λ€. π μ΄λ²€νΈ κΈ°λ°(event-driven)μ΄λ? μ΄λ²€νΈ κΈ°λ°μ΄λ μ΄λ²€νΈκ° λ°μν λ 미리 μ§μ ν΄λ μμ μ μννλ λ°©μμ μλ―Ένλ€. βͺ μ΄λ²€νΈ 루ν μ΄λ²€νΈ λ°μ μ νΈμΆν μ½λ°± ν¨μλ€μ κ΄λ¦¬νκ³ , νΈμΆλ μ½λ°± ν¨μμ μ€ν μμλ₯Ό κ²°μ νλ€. λͺ¨λ μ΄λ²€νΈκ° μ’ λ£λ λ κΉμ§ μ΄λ²€νΈ μ²λ¦¬λ₯Ό μν μμ μ λ°λ³΅νλ―λ‘ λ£¨νλΌκ³ λΆλ¦°λ€. μ½ μ€νμμ μ€ν μ€μΈ κ²μ΄ μλμ§ νμΈνκ³ , μ½λ°± νμ μμ μ΄ μλμ§ νμΈν΄μ μ½ μ€νμ΄ λΉμλ€λ©΄ μ½λ°± ν λ΄μ μμ μ μ½ μ€νμΌλ‘ .. [JavaScript] κ°λΉμ§μ»¬λ ν°(Garbage Collector)λ? / μν , λμ μ리 π κ°λΉμ§μ»¬λ ν°(Garbage Collector)λ? μ¬κΈ°μ κ°λΉμ§λ 'μ 리λμ§ μμ λ©λͺ¨λ¦¬', 'μ ν¨νμ§ μμ λ©λͺ¨λ¦¬ μ£Όμ'λ₯Ό λ§νλ€. κ°λΉμ§ 컬λ ν°λ μ΄λ¬ν νμμλ μ 보λ€, κ°λΉμ§λ€μ μΈμ΄ λ΄μ λ²λ¦ΌμΌλ‘μ¨ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬ν΄μ€λ€. π κ°λΉμ§μ»¬λ ν° λμ μ리 μλ°μ€ν¬λ¦½νΈμμ λ³μλ μ§μ μ μΌλ‘ μ°Έμ‘° κ°(λ¬Έμμ΄, κ°μ²΄, λ°°μ΄)μ λ΄κ³ μμ§ μκ³ , ν΄λΉ κ°μ λ©λͺ¨λ¦¬ μμ μ μ₯λλ€. κ·Έλμ μ°Έμ‘° κ°μ μμ±νκ³ λμ λμ΄μ μ°Έμ‘°ν κ²μ΄ μκ±°λ λΉμ΄μ‘μ λ κ°λΉμ§ 컬λ ν°κ° λμνμ¬ λ©λͺ¨λ¦¬κ° λ°νλλ€. (λ©λͺ¨λ¦¬λ₯Ό λ€μ μ¬μ¬μ© ν μ μλ μνκ° λλ€.) π μ°Έκ³ μλ£ κ°λΉμ§ 컬λ ν°κ° λνλ 건κ°μ? νλ‘ νΈμλ κ°λ°μ λ©΄μ μ§λ¬Έ μ 리 π‘ κ°μ΄ 보면 μ’μ Post [JavaScript] μλ°μ€ν¬λ¦½νΈλ 'μ΄λ²€νΈ κΈ°λ°', .. [JavaScript] λ©λͺ¨λΌμ΄μ μ΄μ (Memoization)μ΄λ? π λ©λͺ¨λΌμ΄μ μ΄μ (Memoization)μ΄λ? μ»΄ν¨ν° νλ‘κ·Έλ¨μ΄ λμΌν κ³μ°μ λ°λ³΅ν΄μΌ ν λ, μ΄μ μ κ³μ°ν κ°μ λ©λͺ¨λ¦¬μ μ μ₯νμ¬ κ·Έκ²μ νμ©ν¨μΌλ‘μ¨ λ°λ³΅ μνμ μ κ±°νλ€. νλ‘κ·Έλ¨ μ€ν μλκ° λΉ¨λΌμ§λ€. π μ°Έκ³ μλ£ μλ°μ€ν¬λ¦½νΈ λ©λͺ¨λΌμ΄μ μ΄μ μμ 보기 π‘ κ°μ΄ 보면 μ’μ Post [JavaScript] μλ°μ€ν¬λ¦½νΈλ 'μ΄λ²€νΈ κΈ°λ°', 'λ ΌλΈλ‘νΉ' λ°©μμ μ¬μ©νκ³ 'μ±κΈ μ€λ λ' μΈμ΄μ΄λ€. μλ°μ€ν¬λ¦½νΈλ μ±κΈ μ€λ λ μΈμ΄μ΄λ€. νμ§λ§ μ€μ μ¬μ©μμλ λ§μ μμ μ΄ λμμ μ²λ¦¬λλ λ©ν° μ€λ λμ²λΌ 보μ΄λλ° μ κ·Έλ° κ²μΌκΉ? μλ°μ€ν¬λ¦½νΈλ μ΄λ»κ² 'λμμ±(Concurrency)'μ μ§μν devjindev.tistory.com [JavaScript] λ©μλ 체μ΄λ(Method Chaining)μ΄λ? π λ©μλ 체μ΄λ(Method Chaining)μ΄λ? μ¬λ¬ λ©μλλ₯Ό μ΄μ΄μ νΈμΆνλ λ¬Έλ²μ΄λ€. λ©μλκ° κ°μ²΄(this)λ₯Ό λ°ννμ¬ μ¬λ¬ λ©μλλ₯Ό μμ°¨μ μΌλ‘ μ μΈν μ μλλ‘ νλ€. π μ₯λ¨μ μ₯μ μ½λκ° κ°κ²°ν΄μ Έ νλμ λ¬Έμ₯μ²λΌ μ½ν μ μλ€. μ₯κΈ°μ μΌλ‘ μ μ§λ³΄μμ λμμ΄ λλ€. λ¨μ νλμ λΌμΈμμ λ무 λ§μ μΌμ΄ μΌμ΄λ λλ²κΉ μ μ΄λ €μμ΄ μμ μ μλ€. μ€λ₯κ° λ¬μ λ μ΄λ λΆλΆμ λ©μλμμ μ€λ₯κ° λ¬λμ§ νμΈνκΈ° μ΄λ ΅λ€. π μ°Έκ³ μλ£ λ©μλ 체μ΄λ π‘ κ°μ΄ 보면 μ’μ Post [JavaScript] μλ°μ€ν¬λ¦½νΈλ 'μ΄λ²€νΈ κΈ°λ°', 'λ ΌλΈλ‘νΉ' λ°©μμ μ¬μ©νκ³ 'μ±κΈ μ€λ λ' μΈμ΄μ΄λ€. μλ°μ€ν¬λ¦½νΈλ μ±κΈ μ€λ λ μΈμ΄μ΄λ€. νμ§λ§ μ€μ μ¬μ©μμλ λ§μ μμ μ΄ λμμ μ²λ¦¬λλ λ©ν° μ€λ λμ²λΌ 보μ΄λλ°.. [JavaScript] μ΄λ²€νΈ λ²λΈλ§, μΊ‘μ²λ§, μμμ΄λ? π μ΄λ²€νΈ λ²λΈλ§(Event Bubbling)μ΄λ? νΉμ νλ©΄ μμμμ μ΄λ²€νΈκ° λ°μνμ λ ν΄λΉ μ΄λ²€νΈκ° λ μμμ νλ©΄ μμλ€λ‘ μ λ¬λμ΄ κ°λ νΉμ±μ΄λ€. π μ΄λ²€νΈ μΊ‘μ²λ§(Event Capturing)μ΄λ? μ΄λ²€νΈ λ²λΈλ§κ³Ό λ°λ λ°©ν₯μΌλ‘ μ§νλλ μ΄λ²€νΈ μ ν λ°©μμ΄λ€. π μ΄λ²€νΈ μμ(Event Delegation)μ΄λ? νμ μμμ κ°κ° μ΄λ²€νΈλ₯Ό λΆμ΄μ§ μκ³ μμ μμμμ νμ μμμ μ΄λ²€νΈλ₯Ό μ μ΄νλ λ°©μμ΄λ€. (μμμ μ΄ν΄λ³Έ μ΄λ²€νΈ λ²λΈλ§κ³Ό μΊ‘μ²λ§μ μ΄λ²€νΈ μμμ μν μ μ μ§μμ΄λΌκ³ ν΄λ κ³ΌμΈμ΄ μλλ€. μ΄λ²€νΈ μμμ μ€μ λ°λλΌ μλ°μ€ν¬λ¦½νΈλ‘ μΉκ³Ό μ±μ ꡬνν λ μμ£Ό μ¬μ©νλ μ½λ© ν¨ν΄μ΄λ€.) μ₯μ μ½λκ° μ§§μμ§κ³ λ©λͺ¨λ¦¬κ° μ μ½λλ€. 무λΆλ³ν μ΄λ²€νΈ λ±λ‘μΌλ‘ μΈν λ©λͺ¨λ¦¬ λμλ₯Ό λ°©μ§ν μ .. μ΄μ 1 2 λ€μ