π¨ μ΅κ·€λ¬ κ°λ°μκ° κΌ μμμΌ ν 5κ°μ§ λΈλ¬μ νμ© ν! (μμ°μ± UP!)
μλ‘ : μ΅κ·€λ¬ λΈλ¬μλ 무μμΈκ°μ?
μ΅κ·€λ¬ λΈλ¬μ(Angular Brush)λ λ³Έλ¬Έμμ “μ΅κ·€λ¬ λΈλ¬μ”λΌλ μ©μ΄κ° ꡬ체μ μΌλ‘ 무μμ μλ―Ένλμ§ λͺ ννμ§ μμ΅λλ€. μ€μ μ‘΄μ¬νλ λΌμ΄λΈλ¬λ¦¬λ λκ΅¬κ° μλ κ²½μ°, λ³Έ κΈμμλ μ΅κ·€λ¬ κ°λ°μμ μμ°μ±μ λμ΄λ λ€μν κΈ°λ²κ³Ό λꡬλ€μ “μ΅κ·€λ¬ λΈλ¬μ”λΌλ μμ μ μΈ ννμΌλ‘ μ¬μ©ν©λλ€. λ€μμ μ΅κ·€λ¬ κ°λ° μμ°μ± ν₯μμ λμμ΄ λλ 5κ°μ§ ν΅μ¬ μ λ΅μ λλ€.
A. ν¨μ¨μ μΈ μ»΄ν¬λνΈ μμ±
μ΅κ·€λ¬ μ ν리μΌμ΄μ μ ν΅μ¬μ μ»΄ν¬λνΈμ λλ€. ν¨μ¨μ μΈ μ»΄ν¬λνΈ μμ±μ μ 체 μ ν리μΌμ΄μ μ μ±λ₯κ³Ό μ μ§λ³΄μμ±μ μ§μ μ μΈ μν₯μ λ―ΈμΉ©λλ€. Angular CLIλ₯Ό μ΄μ©ν μ»΄ν¬λνΈ μμ±, μ»΄ν¬λνΈμ μ¬μ¬μ©μ±μ λμ΄λ μ λ΅, κ·Έλ¦¬κ³ μ»΄ν¬λνΈ κ°μ ν΅μ μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ λ°©λ² λ±μ μμΈν μμλ³΄κ² μ΅λλ€. μλ₯Ό λ€μ΄, `ng generate component` λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ¬ μ»΄ν¬λνΈλ₯Ό μμ±νκ³ , `@Input()` λ° `@Output()` λ°μ½λ μ΄ν°λ₯Ό νμ©νμ¬ λ°μ΄ν° μ λ¬μ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ λ°©λ²μ μ€λͺ ν μ μμ΅λλ€. λν, λ¨μΌ μ± μ μμΉ (Single Responsibility Principle)μ μ μ©νμ¬ μ»΄ν¬λνΈμ μν μ λͺ ννκ² μ μνκ³ , μ»΄ν¬λνΈμ ν¬κΈ°λ₯Ό μ μ νκ² μ μ§νλ κ²μ΄ μ€μν©λλ€.
B. λ°λ³΅μ μΈ μ½λ μ€μ΄κΈ°
λ°λ³΅μ μΈ μ½λλ μ μ§λ³΄μμ μ΄λ €μμ μΌκΈ°νκ³ , λ²κ·Έ λ°μ κ°λ₯μ±μ λμ λλ€. μ΅κ·€λ¬μμ λ°λ³΅μ μΈ μ½λλ₯Ό μ€μ΄κΈ° μν΄μλ μλΉμ€, νμ΄ν, κ·Έλ¦¬κ³ λ―Ήμ€μΈ λ±μ νμ©ν μ μμ΅λλ€. κ°κ°μ λ°©λ²μ λν μ€λͺ κ³Ό ν¨κ», μ€μ μ½λ μμλ₯Ό ν΅ν΄ ν¨κ³Όμ μΌλ‘ λ°λ³΅μ μΈ μ½λλ₯Ό μ κ±°νλ λ°©λ²μ 보μ¬λλ¦¬κ² μ΅λλ€. μλ₯Ό λ€μ΄, 곡ν΅μ μΌλ‘ μ¬μ©λλ ν¨μλ€μ μλΉμ€λ‘ λΆλ¦¬νκ³ , λ€λ₯Έ μ»΄ν¬λνΈμμ μ£Όμ νμ¬ μ¬μ©νλ λ°©λ²μ μ€λͺ ν μ μμ΅λλ€. λν, λ°μ΄ν° λ³νκ³Ό κ°μ λ°λ³΅ μμ μλ νμ΄νλ₯Ό νμ©νλ λ°©λ²μ μ μν μ μμ΅λλ€.
C. λ°μ΄ν° λ°μΈλ© μ΅μ ν
λ°μ΄ν° λ°μΈλ©μ μ΅κ·€λ¬μμ μ€μν κΈ°λ₯ μ€ νλμ΄μ§λ§, μλͺ» μ¬μ©νλ©΄ μ±λ₯ μ νλ₯Ό μΌκΈ°ν μ μμ΅λλ€. `OnPush` λ³κ²½ κ°μ§ μ λ΅μ μ¬μ©νμ¬ λ³κ²½ κ°μ§μ ν¨μ¨μ±μ λμ΄λ λ°©λ², λΉλκΈ° νμ΄νλ₯Ό μ¬μ©νμ¬ UI μ λ°μ΄νΈ μ§μ°μ μ΅μννλ λ°©λ² λ±μ μμΈν μ€λͺ νκ² μ΅λλ€. λν, `ChangeDetectionStrategy`μ λν μ΄ν΄μ μ μ ν μ¬μ©λ²μ ν΅ν΄ μ±λ₯ ν₯μμ λλͺ¨ν μ μμ΅λλ€.
D. ν μ€νΈ μ½λ μμ± κ°μν
ν μ€νΈ μ½λλ μ ν리μΌμ΄μ μ μμ μ±κ³Ό μ μ§λ³΄μμ±μ λμ΄λ λ° νμμ μ λλ€. μ΅κ·€λ¬μ ν μ€νΈ κΈ°λ₯μ νμ©νμ¬ ν¨μ¨μ μΌλ‘ ν μ€νΈ μ½λλ₯Ό μμ±νλ λ°©λ²μ μ€λͺ ν©λλ€. Jasmineκ³Ό Karmaλ₯Ό νμ©ν λ¨μ ν μ€νΈ μμ± λ°©λ², κ·Έλ¦¬κ³ Angular Testing Libraryλ₯Ό μ¬μ©ν ν΅ν© ν μ€νΈ μμ± λ°©λ²μ λν΄ μμΈνκ² μμλ³΄κ² μ΅λλ€.
E. Angular CLIμμ μ°λ
Angular CLIλ μ΅κ·€λ¬ κ°λ°μ μν κ°λ ₯ν λꡬμ λλ€. CLIλ₯Ό νμ©νμ¬ μ»΄ν¬λνΈ μμ±, λΉλ, λ°°ν¬ λ± λ€μν μμ μ ν¨μ¨μ μΌλ‘ μννλ λ°©λ²μ μ΄ν΄λ΄ λλ€. λν, CLIμ λ€μν μ΅μ κ³Ό κΈ°λ₯μ νμ©νμ¬ κ°λ° νλ‘μΈμ€λ₯Ό μ΅μ ννλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
κ²°λ‘
λ³Έ κΈμμλ μ΅κ·€λ¬ κ°λ° μμ°μ±μ λμ΄λ λ€μν κΈ°λ²λ€μ μκ°νμ΅λλ€. μ μλ νλ€μ μ μ©νμ¬ λ ν¨μ¨μ μ΄κ³ μ μ§λ³΄μκ° μ©μ΄ν μ΅κ·€λ¬ μ ν리μΌμ΄μ μ κ°λ°ν΄ 보μΈμ!
“`
..