DAY 4 ~ 5
πΒ μ€λ μ½μ λ²μ : π 3μ₯. ν¨μ
<aside>
π κΈ°μ΅νκ³ μΆμ λ΄μ© (볡λΆν΄λ μκ΄μμ΄!)
</aside>
ν¨μ μμ±νκΈ°
μ½κ³ μ΄ν΄νκΈ° μ½κ²
- μκ² λ§λ€μ΄λΌ!
- if / else / while λ¬Έ λ±μ λ€μ΄κ°λ λΈλ‘μ νμ€ μ΄μ΄μΌ νλ€.
- λ€μ¬μ°κΈ° μμ€μ 1λ¨μ΄λ 2λ¨μ λμ΄μλ©΄ μ λλ€.
- ν κ°μ§λ§ ν΄λΌ!
- ν¨μλ ν κ°μ§λ₯Ό ν΄μΌ νλ€. κ·Έ ν κ°μ§λ₯Ό μ ν΄μΌ νλ€. κ·Έ ν κ°μ§λ§μ ν΄μΌ νλ€.
- TO λ¬Έλ¨μΌλ‘ κΈ°μ νκΈ° β μΆμν μμ€μ νλλ‘!
- ν κ°μ§ μμ
λ§ νλ ν¨μλ μμ°μ€λ½κ² μΉμ
μΌλ‘ λλκΈ° μ΄λ ΅λ€.
- ν¨μ λΉ μΆμν μμ€μ νλλ‘!
- ν¨μ λ΄ λͺ¨λ λ¬Έμ₯μ μΆμν μμ€μ΄ λμΌν΄μΌ νλ€.
- λ΄λ €κ°κΈ° κ·μΉ: μμμ μλλ‘ μ½λ μ½κΈ° β μ΄μΌκΈ°μ²λΌ μ½νμΌ μ’λ€.
- 짧μΌλ©΄μλ βν κ°μ§βλ§ νλ ν¨μ = μΆμν μμ€μ μΌκ΄λκ² μ μ§νκΈ° μ¬μμ§λ€.
- Switch λ¬Έ
- ν¨μκ° κΈΈλ€.
- ν κ°μ§ μμ
λ§ μννμ§ μλλ€.
- SRP μλ° β μ½λ λ³κ²½μ μ΄μ κ° λ§λ€.
- OCP μλ° β μλ‘μ΄ case κ° μκΈΈ λ λ§λ€ μΆκ° λμ΄μΌ νλ€.
- κ΅¬μ‘°κ° λμΌν ν¨μκ° λ¬΄νμ μ‘΄μ¬νλ€.
- ν΄κ²°μ±
- switch λ¬Έ β μΆμ ν©ν 리 Abstract Factory μ μ¨κΈ΄λ€.
- ν©ν 리 λ΄λΆμμ switch λ¬Έμ μ¬μ©ν΄ μ μ ν νμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±νκ² νλ€.
- ν¨μλ μΈν°νμ΄μ€λ₯Ό κ±°μ³ νΈμΆλκ² νλ€. β λ€νμ±μΌλ‘ μΈν΄ μ€μ νμ ν΄λμ€μ ν¨μκ° μ€νλκ² νλ€.
- μμ μ μΈ μ΄λ¦μ μ¬μ©νλΌ!
- ν κ°μ§λ§ νλ μμ ν¨μμ μ’μ μ΄λ¦μ λΆμΈλ€.
- ν¨μκ° μκ³ λ¨μν μλ‘ μμ μ μΈ μ΄λ¦μ κ³ λ₯΄κΈ°λ μ¬μμ§λ€.
- κΈΈκ³ μμ μ μΈ μ΄λ¦μ΄ μ μΌ μ’λ€.
- ν¨μ κΈ°λ₯μ μ νννλ μ΄λ¦.
- μμ μ μΈ μ΄λ¦μ μ¬μ©νλ©΄ β μ€κ³κ° λλ ·ν΄μ§λ―λ‘ μ½λλ₯Ό κ°μ νκΈ° μ¬μμ§λ€.
- μ΄λ¦μ μΌκ΄μ±μ΄ μμ΄μΌ νλ€. β μ§μνλ λλ‘ μμνκΈ° μ½λ€.
- λͺ¨λ λ΄μμ ν¨μ μ΄λ¦μ κ°μ 문ꡬ, λͺ
μ¬, λμ¬λ₯Ό μ¬μ©νλ€.
- ν¨μ μΈμ
- μ΄μμ μΈ μΈμ κ°μλ 0κ°!!
- μΈμλ κ°λ
μ μ΄ν΄νκΈ° μ΄λ ΅κ² λ§λ λ€.
- λ¨ν νμ
- μΈμμ μ§λ¬Έμ λμ§λ κ²½μ° or μΈμλ₯Ό λ³νν΄ κ²°κ³Όλ₯Ό λ°ννλ κ²½μ°.
- μμ£Ό μ μ©ν λ¨ν ν¨μ νμ = βμ΄λ²€νΈβ ν¨μ.
- μ
λ ₯ μΈμλ₯Ό λ³ννλ ν¨μλΌλ©΄,
- λ³ν κ²°κ³Όλ₯Ό λ°ν κ°μΌλ‘ λλ €μ€λ€.
- μ
λ ₯ μΈμλ₯Ό κ·Έλλ‘ λλ €μ£Όλ ν¨μλΌλ λ³ν ν¨μ νμμ λ°λ₯΄λ νΈμ΄ μ’λ€.
- νλκ·Έ μΈμ β μ΅μ
!
- μ΄ν ν¨μ
- μΈμκ° 2κ°μΈ ν¨μ
- 2κ°κ° ν κ°μ νννλ λ μμλ μμ°μ μΈ μμλ μκΈ° λλ¬Έμ μ μ νλ€.
- μΌλ°μ μΌλ‘ μΈμ μμλ₯Ό μΈμμ μΌλ‘ κΈ°μ΅ν΄μΌ νλ λ¨μ μ΄ μ‘΄μ¬νλ€.
- λ λμ ν¨μλ‘ λ°κΏ λ°©λ²
- ν΄λμ€ κ΅¬μ±μ λ³μλ‘ λ§λ€μ΄ μΈμλ₯Ό λκΈ°μ§ μλλ€.
- μ ν΄λμ€λ₯Ό λ§λ€μ΄ ꡬμ±μμμ μΈμλ₯Ό λ°μμ λ©μλλ₯Ό ꡬννλ€.
- μΌν ν¨μ
- μΈμ 3κ°μΈ ν¨μ = μ΄ν΄νκΈ° μ΄λ ΅λ€.
- μμ, μ£ΌμΆ€, 무μ λ¬Έμ !
- μΈμ κ°μ²΄ νμ©νκΈ°
- λ
μμ μΈ ν΄λμ€ λ³μλ‘ μ μΈνμ.
- λ³μλ₯Ό λ¬Άμ΄μ μ΄λ¦μ λΆμμΌλ‘μ¨ κ°λ
μ νννλ€.
- μΈμ λͺ©λ‘μ΄ μλ ν¨μ β μ¬μ€μ μ΄ν ν¨μ.
- μΈμ κ°μκ° κ°λ³μ μΈ ν¨μκ° νμν λ.
- κ°λ³ μΈμλ 리μ€νΈν μΈμ νλλ‘ μ·¨κΈ κ°λ₯.
- μμλ μΌμ μμ€μ λμ΄μλ κ²½μ° λ¬Έμ κ° μμ.
- λμ¬μ ν€μλ
- λ¨ν ν¨μ: ν¨μμ μΈμκ° λμ¬/λͺ
μ¬ μμΌλ‘ μ΄λ€μΌ νλ€.
- ν¨μ μ΄λ¦μ ν€μλλ₯Ό μΆκ°νλ νμ: μΈμ μμλ₯Ό κΈ°μ΅ν νμκ° μλ€λ μ₯μ .
- λΆμ ν¨κ³Όλ₯Ό μΌμΌν€μ§ λ§λΌ!
- μκ°μ μΈ κ²°ν©
- νΉμ μν©μμλ§ νΈμΆ κ°λ₯ν λ΄μ©μ΄ ν¨μμ ν¬ν¨λ κ²½μ°.
- νμν κ²½μ°, ν¨μ μ΄λ¦μ λΆλͺ
ν λͺ
μνλ€.
- μμ μ’
μμ±
- μΆλ ₯ μΈμ
- μΈμ = ν¨μ μ
λ ₯
- μΈμλ₯Ό μΆλ ₯μΌλ‘ μ¬μ©νμ§ λ§μ.
- κ°μ²΄ μ§ν₯ μΈμ΄μμ μΆλ ₯ μΈμ μ¬μ© μ€κ³
- this νμ©.
appendFooter(s)
β report.appendFooter()
- λͺ
λ Ήκ³Ό μ‘°νλ₯Ό λΆλ¦¬νλΌ!
- ν¨μκ° νλ μΌ =
κ°μ²΄ μνλ₯Ό λ³κ²½
νκ±°λ, κ°μ²΄ μ 보λ₯Ό λ°ν
νκ±°λ. β ν¨μλ ν κ°μ§ μΌμ ν΄μΌ νλ€λ μ .
- λͺ
λ Ή ν¨μμ μ‘°ν ν¨μλ‘ λΆλ¦¬νμ.
- μ€λ₯ μ½λλ³΄λ€ μμΈλ₯Ό μ¬μ©νλΌ!
- μ€λ₯ μ½λλ λͺ
λ Ή/μ‘°ν κ·μΉμ λ―Έλ¬νκ² μλ°νλ€.
- μ€λ₯ μ½λλ λ°ννλ©΄ νΈμΆμκ° μ€λ₯ μ½λλ₯Ό 곧λ°λ‘ μ²λ¦¬ν΄μΌ νλ€.
- μμΈλ₯Ό μ¬μ©νμ.
- μ€λ₯ μ²λ¦¬ μ½λκ° λΆλ¦¬λλ€.
- Try/Catch λΈλ‘ λ½μλ΄κΈ°.
- λ³λ ν¨μλ‘ λ½μλ΄λ νΈμ΄ μ’λ€.
- μ μ λμκ³Ό μ€λ₯ μ²λ¦¬ λμμ λΆλ¦¬.
- μ€λ₯ μ²λ¦¬λ ν κ°μ§ μμ
μ΄λ€.
- μ€λ₯ μ²λ¦¬ ν¨μλ μ€λ₯ μ²λ¦¬λ§ ν΄μΌ νλ€.
- μμ‘΄μ± μμ
- μ€λ₯ μ½λλ₯Ό μ μν ν΄λμ€ or Enum or κΈ°ν μμ λ±λ±.
- μ μλ μ€λ₯ μ½λκ° λ³κ²½λλ©΄ μ°κ΄λ λͺ¨λ λΆλΆμ΄ λ³κ²½λμ΄μΌ νκ³ μ»΄νμΌ λ° μ¬λ°°μΉκ° λ°μνλ€.
- μμΈ μ¬μ©μΌλ‘ μλ‘μ΄ μμΈ ν΄λμ€ μΆκ°μ λμνλ κ² μΈμ λ€λ₯Έ λ³κ²½μ μ΄ μλ€. β OCP
- λ°λ³΅νμ§ λ§λΌ! DRY Donβt Repeat Yourself
- μ€λ³΅μ λ¬Έμ λ€. μ€λ³΅μ μ κ±°νλ€.
- ꡬ쑰μ νλ‘κ·Έλλ°
- ν¨μμ λν ꡬ쑰μ μ€κ³
- return λ¬Έμ νλ λΏμ΄λ€.
- ν¨μλ₯Ό μκ² λ§λ€λ©΄, λ³΄λ€ μ μ°ν ꡬ쑰μ νλ‘κ·Έλλ° κ°λ₯.
- μλλ₯Ό νννκΈ° μ¬μμ§λ€.
- ν¨μ μ λ§λλ λ°©λ²
- μ²μμλ κ·Έλ₯ μ½λλ₯Ό μμ±νλ€. κ·Έλ¦¬κ³ λΉ μ§μμ΄ ν
μ€νΈ νλ λ¨μ ν
μ€νΈ μΌμ΄μ€λ λ§λ λ€.
- μ½λλ₯Ό κ°μ νλ€.
- μ½λλ₯Ό λ€λ¬κ³
- ν¨μ λ§λ€κ³
- μ΄λ¦ λ°κΎΈκ³
- μ€λ³΅ μ κ±°νκ³
- λ©μλ μ€μ΄κ³
- μμ λ°κΎΈκ³
- ν΄λμ€ μͺΌκ°κΈ°
- νμ λ¨μ ν
μ€νΈλ₯Ό ν΅κ³Όνλ€.
κ²°λ‘
- λλ©μΈ νΉν μΈμ΄ DSL
- ν¨μλ λμ¬. ν΄λμ€λ λͺ
μ¬.