[κ°μ²΄μ§ν₯μ μ¬μ€κ³Ό μ€ν΄ - 2] μ΄μν λλΌμ κ°μ²΄
π λͺ©μ°¨.
2. μ΄μν λλΌμ κ°μ²΄
.κ°μ²΄μ§ν₯κ³Ό μΈμ§ λ₯λ ₯
.κ°μ²΄, κ·Έλ¦¬κ³ μ΄μν λλΌ
.κ°μ²΄, κ·Έλ¦¬κ³ μννΈμ¨μ΄ λλΌ
.κΈ°κ³λ‘μμ κ°μ²΄
.νλμ΄ μνλ₯Ό κ²°μ νλ€
.μμ μ κ°μ²΄
βοΈ λ΄μ©.
2. μ΄μν λλΌμ κ°μ²΄
κ°μ²΄μ§ν₯ ν¨λ¬λ€μμ μ§μμ μΆμννκ³ μΆμνν μ§μμ κ°μ²΄ μμ μΊ‘μνν¨μΌλ‘μ¨ μ€μΈκ³ λ¬Έμ μ λ΄μ¬λλ 볡μ‘μ±μ κ΄λ¦¬νλ €κ³ νλ€. κ°μ²΄λ₯Ό λ°κ²¬νκ³ μ°½μ‘°νλ κ²μ μ§μκ³Ό νλμ ꡬ쑰ννλ λ¬Έμ λ€.
- λ λ² μΉ΄ μνμ€λΈλ‘
.κ°μ²΄μ§ν₯κ³Ό μΈμ§ λ₯λ ₯
- μΈκ°μ΄ μ§μ μ μΌλ‘ μ§κ°ν μ μλ λλΆλΆμ κ°μ²΄λ 물리μ μΈ κ²½κ³λ₯Ό μ§λ ꡬ체μ μΈ μ¬λ¬Όμ΄λ€.
.κ°μ²΄, κ·Έλ¦¬κ³ μ΄μν λλΌ
- κ°μ²΄μ νΉμ§
1. κ°μ²΄λ μνλ₯Ό κ°μ§λ©° μνλ λ³κ²½ κ°λ₯νλ€.
2. κ°μ²΄μ μνλ₯Ό λ³κ²½μν€λ κ²μ κ°μ²΄μ νλμ΄λ€.
2-1) νλμ κ²°κ³Όλ μνμ μμ‘΄μ μ΄λ©° μνλ₯Ό μ΄μ©ν΄ μμ ν μ μλ€.
2-2) νλμ μμκ° κ²°κ³Όμ μν₯μ λ―ΈμΉλ€.
3. κ°μ²΄λ μ΄λ€ μνμ μλλΌλ μ μΌνκ² μλ³ κ°λ₯νλ€.
.κ°μ²΄, κ·Έλ¦¬κ³ μννΈμ¨μ΄ λλΌ
- κ°μ²΄λ μν(state), νλ(behavior), μλ³μ(identity)λ₯Ό μ§λ μ€μ²΄μ΄λ€.
- λͺ¨λ κ°μ²΄μ μνλ λ¨μν κ°κ³Ό κ°μ²΄μ μ‘°ν©μΌλ‘ ννν μ μλ€.
κ°μ²΄μ μνλ₯Ό ꡬμ±νλ λͺ¨λ νΉμ§μ ν΅νμ΄ κ°μ²΄μ νλ‘νΌν°(property, κ°μ²΄μ νμ )λΌκ³ νλ€.
κ°μ²΄μ κ°μ²΄ μ¬μ΄μ μλ―Έ μλ μ°κ²°μ λ§ν¬(link)λΌ νλ€.
κ°μ²΄λ₯Ό ꡬμ±νλ λ¨μν κ°μ μμ±(attribute, κ°μ²΄μ κ°)μ΄λΌ νλ€.
κ°μ²΄μ νλ‘νΌν°λ λ¨μν κ°μΈ μμ±κ³Ό λ€λ₯Έ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ λ§ν¬λΌλ λ κ°μ§ μ’ λ₯μ μ‘°ν©μΌλ‘ ννν μ μλ€.
- μνμ νλ
κ°μ²΄μ μνλ μ μ λ‘ λ³κ²½λμ§ μλλ€. κ°μ²΄μ μνλ₯Ό λ³κ²½νλ κ²μ κ°μ²΄μ μλ°μ μΈ νλλΏμ΄λ€.
1. κ°μ²΄μ νλμ μνμ μν₯μ λ°λλ€. -> μνΈμμ©μ΄ νμ¬μ μνμ μ΄λ€ λ°©μμΌλ‘ μμ‘΄νλκ°.
2. κ°μ²΄μ νλμ μνλ₯Ό λ³κ²½μν¨λ€. -> μνΈμμ©μ΄ μ΄λ»κ² νμ¬μ μνλ₯Ό λ³κ²½μν€λκ°
- νλ ₯κ³Ό νλ
κ°μ²΄κ° λ€λ₯Έ κ°μ²΄μ νλ ₯νλ μ μΌν λ°©λ²μ λ€λ₯Έ κ°μ²΄μκ² μμ²μ 보λ΄λ κ²μ΄λ€. μ€λ‘μ§ λ©μμ§λ₯Ό ν΅ν΄μλ§ μμ¬μν΅ν μ μλ€.
- μλ³μ
κ°μ²΄λ μΈκ°μ μΈμ§ λ₯λ ₯μ μ΄μ©ν΄ μλ³ κ°λ₯ν κ²½κ³λ₯Ό κ°μ§ λͺ¨λ μ¬λ¬Όμ μλ―Ένλ€. κ°μ²΄κ° μλ³ κ°λ₯νλ€λ κ²μ κ°μ²΄λ₯Ό μλ‘ κ΅¬λ³ν μ μλ νΉμ ν νλ‘νΌν°κ° κ°μ²΄ μμ μ‘΄μ¬νλ€λ κ²μ μλ―Ένλ€. μ΄ νλ‘νΌν°λ₯Ό μλ³μλΌκ³ νλ€. λͺ¨λ κ°μ²΄λ μλ³μλ₯Ό κ°μ§λ©° μλ³μλ₯Ό μ΄μ©ν΄ κ°μ²΄λ₯Ό ꡬλ³ν μ μλ€.
λͺ¨λ κ°μ²΄κ° μλ³μλ₯Ό κ°μ§λ€λ κ²κ³Ό λ°λλ‘ κ°μ²΄κ° μλ λ¨μν κ°μ μλ³μλ₯Ό κ°μ§μ§ μλλ€.
λ¨μν κ°μ μ«μ, λ¬Έμμ΄ λ± λ³νμ§ μλ μμ λͺ¨λΈλ§νλ€.
κ°μ κ²½μ° λ μΈμ€ν΄μ€μ μνκ° κ°λ€λ©΄ κ°μ κ²μΌλ‘ νλ¨νλ€. μ΄μ²λΌ μνλ₯Ό μ΄μ©ν΄ λ κ°μ΄ κ°μμ§ νλ¨ν μ μλ μ±μ§μ λλ±μ±(equality)μ΄λΌκ³ νλ€.
κ°μ²΄μ κ²½μ° μκ°μ λ°λΌ λ³κ²½λλ μνλ₯Ό ν¬ν¨νλ©°, νλμ ν΅ν΄ μνλ₯Ό λ³κ²½νλ€. λ°λΌμ κ°λ³ μνλ₯Ό κ°μ§λ€.
μ΄ λλ λ κ°μ²΄μ μλ³μλ₯Ό κ°μ§κ³ νλ¨νκ² λλλ° λ κ°μ²΄μ μνκ° λ€λ₯΄λλΌλ κ°μ²΄μ μλ³μκ° κ°λ€λ©΄ κ°μ κ°μ²΄λ‘ νλ¨ν μ μλ€. μ΄μ²λΌ μλ³μλ₯Ό κΈ°λ°μΌλ‘ κ°μ²΄κ° κ°μμ§λ₯Ό νλ¨ν μ μλ μ±μ§μ λμΌμ±(identical)μ΄λΌκ³ νλ€.
.κΈ°κ³λ‘μμ κ°μ²΄
κ°μ²΄λ₯Ό κΈ°κ³λ‘μ λ°λΌλ³΄λ κ΄μ μ μν, νλ, μλ³μμ λν μκ°μ μΈ μ΄λ―Έμ§λ₯Ό μ 곡νκ³ μΊ‘μνμ λ©μμ§λ₯Ό ν΅ν νλ ₯ κ΄κ³λ₯Ό λ§€μ° ν¨κ³Όμ μΌλ‘ μ€λͺ νλ€.
.νλμ΄ μνλ₯Ό κ²°μ νλ€.
κ°μ²΄μ§ν₯μ κ° μ λ¬Έν μ¬λλ€μ΄ κ°μ₯ μ½κ² λΉ μ§λ ν¨μ μ μνλ₯Ό μ€μ¬μΌλ‘ κ°μ²΄λ₯Ό λ°λΌλ³΄λ κ²μ΄λ€. μ΄λ³΄μ λ€μ λ¨Όμ κ°μ²΄μ νμν μνκ° λ¬΄μμΈμ§λ₯Ό κ²°μ νκ³ κ·Έ μνμ νμν νλμ κ²°μ νλ€. μνκΉκ²λ μ΄λ¬ν λ°©λ²μ μ€κ³μ λμ μν₯μ λΌμΉλ€.
1. μνλ₯Ό λ¨Όμ κ²°μ ν κ²½μ° μΊ‘μνκ° μ ν΄λλ€.
μνμ μ΄μ μ λ§μΆ κ²½μ° μνκ° κ°μ²΄ λ΄λΆλ‘ κΉλνκ² μΊ‘μνλμ§ λͺ»νκ³ κ³΅μ© μΈν°νμ΄μ€μ κ·Έλλ‘ λ ΈμΆλΌλ²λ¦΄ νλ₯ μ΄ λμμ§λ€.
2. κ°μ²΄λ₯Ό νλ ₯μκ° μλ κ³ λ¦½λ μ¬μΌλ‘ λ§λ λ€.
κ°μ²΄κ° νμν μ΄μ λ μ ν리μΌμ΄μ λ¬Έλ§₯ λ΄μμ λ€λ₯Έ κ°μ²΄μ νλ ₯νκΈ° μν΄μμ΄λ€. λΆννκ²λ μνλ₯Ό λ¨Όμ κ³ λ €νλ λ°©μμ νλ ₯μ΄λΌλ λ¬Έλ§₯μμ λ©λ¦¬ λ²μ΄λ μ± κ°μ²΄λ₯Ό μ€κ³νκ² ν¨μΌλ‘μ¨ μμ°μ€λ½κ² νλ ₯μ μ ν©νμ§ λͺ»ν κ°μ²΄λ₯Ό μ°½μ‘°νκ² λλ€.
3. κ°μ²΄μ μ¬μ¬μ©μ±μ΄ μ νλλ€. κ°μ²΄μ μ¬μ¬μ©μ±μ λ€μν νλ ₯μ μ°Έμ¬ν μ μλ λ₯λ ₯μμ λμ¨λ€. μνμ μ΄μ μ λ§μΆ κ°μ²΄λ λ€μν νλ ₯μ μ°Έμ¬νκΈ° μ΄λ ΅κΈ° λλ¬Έμ μ¬μ¬μ©μ±μ΄ μ νλ μλ°μ μλ€.
νλ ₯μ μ°Έμ¬νλ νλ₯ν κ°μ²΄λ₯Ό λ§λ€κΈ° μν κ°μ₯ μ€μν λλͺ©μ μνκ° μλλΌ νλμ μ΄μ μ λ§μΆλ κ²μ΄λ€.
κ°μ²΄μ μ ν©μ±μ κ²°μ νλ κ²μ κ°μ²΄μ νλμ΄λ€.
νλ ₯ μμμ κ°μ²΄μ νλμ κ²°κ΅ κ°μ²΄κ° νλ ₯μ μ°Έμ¬νλ©΄μ μμν΄μΌ νλ μ± μμ μλ―Ένλ€. λ°λΌμ μ΄λ€ μ± μμ΄ νμνκ°λ₯Ό κ²°μ νλ κ³Όμ μ΄ μ 체 μ€κ³λ₯Ό μ£Όλν΄μΌ νλ€. μ± μ-μ£Όλ μ€κ³(Responsibility-Driven Design, RDD)λ νλ ₯μ΄λΌλ λ¬Έλ§₯ μμμ κ°μ²΄μ νλμ μκ°νλλ‘ λμμΌλ‘μ¨ μμ§λ λκ³ μ¬μ¬μ© κ°λ₯ν κ°μ²΄λ₯Ό λ§λ€ μ μκ² νλ€.
νλμ΄ μνλ₯Ό κ²°μ νλ€. μ΄ μ₯μμ κ°μ₯ μ€μν λ¬Έμ₯μ΄λ€.
.μμ μ κ°μ²΄
κ°μ²΄μ§ν₯μ΄λ νμ€μΈκ³μ λͺ¨λ°©μ΄ μλλ€. μ μ§μ λ₯ν μ‘΄μ¬λ‘μ νμ€μ κ°μ²΄λ³΄λ€ λ λ§μ μΌμ ν μ μλ€. μ΄ νΉμ§μ μμΈνλΌκ³ λΆλ₯Έλ€.
νμ€ μΈκ³μ κ°μ²΄μ§ν₯ μΈκ³ μ¬μ΄μ κ΄κ³λ₯Ό μ’ λ μ ννκ² μ€λͺ ν μ μλ λ¨μ΄λ μμ μ΄λ€.
π λλμ .
. νλμ΄ μνλ₯Ό κ²°μ νλ€.