π‘ μ‘°μνΈλμ κ°μ²΄μ§ν₯μ μ¬μ€κ³Ό μ€ν΄λ₯Ό μ½κ³ μ 리νμμ΅λλ€
κΈ°μ΅μ λ¨λ 문ꡬ
- κ°μ²΄μ μΈκ³μμ νλ ₯μ΄λΌλ λ¬Έλ§₯μ΄ κ°μ²΄μ νλ λ°©μμ κ²°μ ν¨
- κ°μ²΄μ§ν₯ μ€κ³μ μ 체νμ§μ κ²°μ νλ κ²μ μ¬λ¬ κ°μ²΄λ€μ΄ λͺ¨μ¬ μ΄λ€λ΄λ νλ ₯μ νμ§
- μ΄λ€ νλ ₯μ μ°Έμ¬ νλμ§κ° κ°μ²΄μ νμν νλμ κ²°μ , νμν νλμ΄ κ°μ²΄μ μνλ₯Ό κ²°μ
- κ²°λ‘ : κ°μ²΄μ§ν₯ μ€κ³λ μ ν리μΌμ΄μ μ κΈ°λ₯μ ꡬννκΈ° μν νλ ₯ κ΄κ³λ₯Ό κ³ μνκ³ , νλ ₯μ νμν μν κ³Ό μ± μμ μλ³νλ€ μ΄λ₯Ό μνν μ μλ μ μ ν κ°μ²΄λ₯Ό μλ³ν΄ λκ°λ κ³Όμ
- κ°μ²΄μ§ν₯μ μΈκ³λ λμΌν λͺ©μ μ μ΄λ£¨κΈ°μν΄ νλ ₯νλ κ°μ²΄λ€μ 곡λ체
νλ ₯
- νλ ₯μ λ³Έμ§μ μμ²κ³Ό μλ΅μΌλ‘ μ°κ²°λλ μ¬λλ€μ λ€νΈμν¬
- νΉμ μμ²μ 보λλ€λ κ²μ ν΄λΉ κ°μ²΄κ° μμ²μ λν μ무λ₯Ό κ°μ§κ³ μκ³ μμ²μ νμν μ§μμ κ°μ§κ³ μμμ μλ―Έν¨
- νΉμ μμ²μ μλ΅μ νλ€λ κ²μ ν΄λΉ μμ²μ μλ΅ν μλ¬΄κ° μμΌλ©΄ μλ΅μ νμν μ§μμ κ°μ§κ³ μλ€λ κ²μ μλ―Έν¨
μ± μ
- κ°μ²΄μ§ν₯ κ°λ°μμ κ°μ₯ μ€μν λ₯λ ₯μ μ± μμ λ₯μνκ² μννΈμ¨μ΄ κ°μ²΄μ ν λΉνλ κ² - ν¬λ μ΄κ·Έ λΌλ§
- μ±
μμ λΆλ₯
- νλ κ²(doing) : κ°μ²΄κ° 무μμ ν μ μλκ°
- κ°μ²΄λ₯Ό μμ±νκ±°λ κ³μ°μ νλ λ±μ μ€μ€λ‘ νλ κ²
- λ€λ₯Έ κ°μ²΄μ νλμ μμμν€λ κ²
- λ€λ₯Έ κ°μ²΄μ νλμ μ μ΄νκ³ μ‘°μ νλ κ²
- μλ κ²(knowing) : κ°μ²΄κ° 무μμ μκ³ μλ κ°
- κ°μΈμ μΈ μ 보μ κ΄ν΄ μλ κ²
- κ΄λ ¨λ κ°μ²΄μ κ΄ν΄ μλ κ²
- μμ μ΄ μ λνκ±°λ κ³μ°ν μ μλ κ²μ κ΄ν΄ μλ κ²
- νλ κ²(doing) : κ°μ²΄κ° 무μμ ν μ μλκ°
- κ³΅μ© μΈν°νμ΄μ€
- κ°μ²΄μ μΈλΆμ μ κ³΅ν΄ μ€μμλ μ 보
- κ°ν μ μΈλΆμ μ κ³΅ν΄ μ€μ μλ μλΉμ€
- λ©μμ§
- κ°μ²΄κ° λ€λ₯Έ κ°μ²΄μκ² μ£Όμ΄μ§ μ± μμ μννλλ‘ μμ²μ 보λ΄λ κ² (λ©μΈμ§ μ μ‘)
- κ°μ²΄κ°μ νλ ₯μ΄ μ΄λ£¨μ΄μ§λ λ°©λ²
- νλ ₯μ μν΄ ν κ°μ²΄κ° λ€λ₯Έ κ°μ²΄λ‘ μ κ·Όν μ μλ μ μΌν λ°©λ²
μν
- μ΄λ€ κ°μ²΄κ° μννλ μ± μμ μ§ν©μ κ°μ²΄κ° νλ ₯ μμμ μννλ μν μ μμν¨
- μν μ μ¬μ¬μ©κ°λ₯νκ³ μ μ°ν κ°μ²΄μ§ν₯ μ€κ³λ₯Ό λ§λλ μ€μν κ΅¬μ± μμμ
- μ¬νμ΄λΌλ νλ ₯μμμ “ν쬔, “μ¦μΈ”μ΄λΌλ μν μ μ¬μ©ν μ μμ.
- μ΄λ€ κ°μ²΄κ° νμ¬ or μ¦μΈμ μν μ ν μ μλ€λ©΄ μ¬νμ΄λΌλ νλ ₯μ μ°Έμ¬ν μ μκ²λ¨
- μ΄λ€ κ°μ²΄κ° μν μ μννκΈ° μν΄μλ κ° μν μ΄ μμ ν μ μλ λ©μΈμ§λ₯Ό λμΌν λ°©μμΌλ‘ μ²λ¦¬ν μ μμ΄μΌν¨
- κ²°κ΅ λμΌν μν μ μνν μ μλ κ°μ²΄λ€μ λμΌν λ©μμ§λ₯Ό μμ ν μ μμ
- κ°μ²΄ μ§ν₯ μ€κ³μ λ¨μμ±, μ μ°μ±, μ¬μ¬μ©μ±μ λ·λ°μΉ¨νλ ν΅μ¬ κ°λ
- μν μ νλ ₯μ μΆμννμ¬ νλ ₯μ μμμ λ¨μν ν μ μμ
- μ¬νμ΄λΌλ νλ ₯μ μμ
- μ - μ ν - λͺ¨μμ₯μ : case 1 μ°Έμ¬μ
- μ¬μ - μ ν - μλ¦¬μ¬ : case 2 μ°Έμ¬μ
- νμ¬ - μ ν - μ¦μΈ ⇒ μ΄μ κ°μ΄ νλμ μΆμμ νλ ₯μΌλ‘ λ체ν μ μμ
- μ¬λ¬ μ’ λ₯μ κ°μ²΄λ€μ΄ λμΌν μ± μμ μνν μ μλ€λ©΄ νλ ₯μλ κ°μ²΄κ° μλλΌ μΆμμ μΈ μν λ‘ λ체λ μ μμ
κ°μ²΄μ λͺ¨μμ κ²°μ νλ νλ ₯
- νν μ€λ₯
- μμ€ν
μ νμν λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν΄ κ°μ²΄κ° μ‘΄μ¬νλ€?! no!!!
- κ°μ²΄κ° μνμ μΌλΆλ‘ λ°μ΄ν°λ₯Ό ν¬ν¨νμ§λ§ κ°μ²΄κ° νλ(μ± μμ λ€νκΈ° μν΄)μ νκΈ°μν΄ νμν λ°μ΄ν° μΌλΏ!!
- κ°μ²΄μ§ν₯μ΄ ν΄λμ€μ ν΄λμ€κ°μ κ΄κ³λ₯Ό νννλ μ μ μΈ‘λ©΄μ μ€μ μ λλ€?!
- μ€μν κ²μ μ μ μΈ ν΄λμ€κ° μλλΌ νλ ₯μ μ°Έμ¬νλ λμ μΈ κ°μ²΄
- ν΄λμ€λ λ¨μ§ μμ€ν μ νμν κ°μ²΄λ₯Ό νν, μμ±νκΈ° μν΄ νλ‘κ·Έλλ° μΈμ΄κ° μ 곡νλ ꡬν λ©μ»€λμ¦μΌ λΏ
- μ€μνκ²μ νλ ₯μμμ κ°μ²΄κ° μ΄λ€ μ± μκ³Ό μν μ μνν κ²μΈκ° μ!!
- κ³μ κ°μ‘°νλ κ²μ΄μ§λ§ κ°μ²΄λ₯Ό νλμ μ¬μΌλ‘ 보면 μλλ€!!
- μμ€ν
μ νμν λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν΄ κ°μ²΄κ° μ‘΄μ¬νλ€?! no!!!
- νλ ₯μ λ°λΌ νλ₯΄λ κ°μ²΄μ μ±
μ
- κ°μ²΄λ₯Ό μ€κ³ νκΈ°μ κ²¬κ³ νκ³ κΉλν νλ ₯μ μ€κ³ν΄μΌν¨!!
- μμ
- νλ ₯μ μ°Έμ¬νλ κ°μ²΄λ€μ΄ μ£Όκ³ λ°μ μμ²κ³Ό μλ΅μ νλ¦μ κ²°μ ν΄μΌν¨
- μ΄ μμ²κ³Ό μλ΅μ΄ κ°μ²΄κ° μννκ²λ μ± μμ΄ λ¨
- μ± μμ μΈλΆμ μ 곡νκ² λ νλμ΄ λ¨
- νλμ μννκΈ° μν λ°μ΄ν°λ₯Ό κ³ λ―Ό
- ν΄λμ€μ ꡬν λ°©λ² κ³ λ―Ό
- μμ
- κ°μ²΄λ₯Ό μ€κ³ νκΈ°μ κ²¬κ³ νκ³ κΉλν νλ ₯μ μ€κ³ν΄μΌν¨!!
κ°μ²΄μ§ν₯ μ€κ³ κΈ°λ²
- μν , μ±
μ, νλ ₯μ κ΄μ μμ μ ν리μΌμ΄μ
μ μ€κ³νλ μ μ©ν κΈ°λ²λ€
- μ±
μ-μ£Όλ μ€κ³(Responsibility-Driven Design)
- νλ ₯μ νμν μ±
μμ μλ³ ν μ ν©ν κ°μ²΄μ μ±
μμ ν λΉνλ λ°©λ²κ³Ό μ μ°¨λ₯Ό μ μ
- μμ€ν μ΄ μ¬μ©μμκ² μ 곡ν΄μΌνλ κΈ°λ₯μΈ μμ€ν μ± μμ νμ
- μμ€ν μ± μμ λ μμ μ± μμΌλ‘ λΆν
- λΆν λ μ± μμ μ μ ν κ°μ²΄ or μν μκ² λΆλ°°
- κ°μ²΄κ° μ± μμ μννλ λμ€ λ€λ₯Έ κ°μ²΄μ λμμ΄ νμνλ€λ©΄ μ΄λ₯Ό λμμ€ κ°μ²΄ λλ μν μ°ΎκΈ°
- μλ‘ νλ ₯νκ² λ§λ¬
- νλ ₯μ νμν μ±
μμ μλ³ ν μ ν©ν κ°μ²΄μ μ±
μμ ν λΉνλ λ°©λ²κ³Ό μ μ°¨λ₯Ό μ μ
- λμμΈ ν¨ν΄(Design Pattern)
- μ± μ μ£Όλ μ€κ³κ° λ°©λ²κ³Ό μ μ°¨λ₯Ό μ μ νμλ€λ©΄ λμμΈ ν¨ν΄μ μ± μ μ£Όλ μ€κ³μ κ²°κ³Όλ¬Όμ
- μ λ¬Έκ°λ€μ΄ λ°λ³΅μ μΌλ‘ μ¬μ©νλ ν΄κ²° λ°©λ²μ μ μν΄ λμ μ€κ³ ν
νλ¦Ώ
- ν¨ν΄
- νΉμ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ΄λ―Έ μλ³ν΄ λμ μν , μ± μ, νλ ₯μ λͺ¨μ
- ν¨ν΄μ μλ©΄ λ°ν΄λ₯Ό λ°λ³΅μ μΌλ‘ λ°λͺ ν νμκ° μμ
- ν¨ν΄
- λ°λ³΅μ μΌλ‘ λ°μνλ λ¬Έμ - λ¬Έμ ν΄λ²μΌλ‘ ꡬμ±
- ν
μ€νΈ-μ£Όλ κ°λ°(Test-Driven Development)
- ν μ€νΈλ₯Ό λ¨Όμ μμ±νκ³ ν μ€νΈλ₯Ό ν΅κ³Όνλ ꡬ체μ μΈ μ½λλ₯Ό μΆκ°νλ©΄μ μ ν리μΌμ΄μ κ°λ°μ μμ±ν΄ λκ°
- μ€κ³λ₯Ό μ νκΈ° μν΄ ν μ€νΈλ₯Ό νλ€!
- λͺ©μ
- μ½λλ₯Ό μμ±νλ©΄μ μν , μ± μ, νλ ₯μ μλ³νκ³ μλ³λ μν , μ± μ, νλ ₯μ΄ μ ν©νμ§ νΌλλ°±μ λ°μΌλ©΄μ μ€κ³λ₯Ό νκΈ° μν¨
- μ΄λ₯Ό ν΅ν΄ μ»μ΄μ§λ ν μ€νΈ μ½λλ 보λμ€ κ°μ κ².
- μ± μ μ£Όλ κ°λ° μ€κ³ λ° λμμΈ ν¨ν΄μ λν λ§μ κ²½νκ³Ό κΉμ μ΄ν΄κ° μμ΄μΌ ν μ€νΈλ₯Ό μ μμ±ν μ μμ…..
- μ±
μ-μ£Όλ μ€κ³(Responsibility-Driven Design)
'Computer Science > Object-oriented' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ€λΈμ νΈ] - μ€κ³ νμ§κ³Ό νΈλ μ΄λμ€ν (0) | 2024.03.20 |
---|---|
[μ€λΈμ νΈ] - μν , μ± μ, νλ ₯ (0) | 2024.03.13 |
[μ€λΈμ νΈ] - κ°μ²΄, μ€κ³ (1) | 2024.02.25 |
κ°μ²΄μ§ν₯μ μ¬μ€κ³Ό μ€ν΄ - chap 6 κ°μ²΄ μ§λ (0) | 2023.10.19 |
κ°μ²΄μ§ν₯μ μ¬μ€κ³Ό μ€ν΄ - chap5 μ± μκ³Ό λ©μΈμ§ (0) | 2023.10.16 |