01. νλ ₯νλ κ°μ²΄λ€μ 곡λ체 / 02. μ΄μν λλΌμ κ°μ²΄
κ°μ²΄μ νΉμ§
- μ¬λ¬ κ°μ²΄κ° λμΌν μν μ μνν μ μλ€.
- μν μ λ체 κ°λ₯μ±μ μλ―Ένλ€.
- κ° κ°μ²΄λ μ±
μμ μννλ λ°©λ²μ μμ¨μ μΌλ‘ μ νν μ μλ€.
- νλμ κ°μ²΄κ° λμμ μ¬λ¬ μν μ μνν μ μλ€.
- κ°μ²΄λ μνλ₯Ό κ°μ§λ©° μνλ λ³κ²½ κ°λ₯νλ€.
- κ°μ²΄μ μνλ₯Ό λ³κ²½μν€λ κ²μ κ°μ²΄μ νλμ΄λ€.
- νλμ κ²°κ³Όλ μνμ μμ‘΄μ μ΄λ©° μνλ₯Ό μ΄μ©ν΄ μμ ν μ μλ€.
- νλμ μμκ° μ€ν κ²°κ³Όμ μν₯μ λ―ΈμΉλ€.
- κ°μ²΄λ μ΄λ€ μνμ μλλΌλ μ μΌνκ² μλ³ κ°λ₯νλ€.
κ°μ²΄μ§ν₯μ λ³Έμ§
- κ°μ²΄μ§ν₯μ΄λ μμ€ν
μ μνΈμμ©νλ μμ¨μ μΈ κ°μ²΄λ€μ 곡λμ²΄λ‘ λ°λΌλ³΄κ³ κ°μ²΄λ₯Ό μ΄μ©ν΄ μμ€ν
μ λΆν νλ λ°©λ²
- μμ¨μ μΈ κ°μ²΄λ μνμ νμλ₯Ό ν¨κ» μ§λλ©° μ€μ€λ‘ μκΈ° μμ μ μ±
μμ§λ κ°μ²΄λ₯Ό μλ―Έ
- κ°μ²΄λ μμ€ν
μ νμλ₯Ό ꡬννκΈ° μν΄ λ€λ₯Έ κ°μ²΄μ νλ ₯
- κ° κ°μ²΄λ νλ ₯ λ΄μμ μ ν΄μ§ μν μ μννλ©° μν μ κ΄λ ¨λ μ±
μμ μ§ν©
- κ°μ²΄λ λ€λ₯Έ κ°μ²΄μ νλ ₯νκΈ° μν΄ λ©μμ§λ₯Ό μ μ‘νκ³ , λ©μμ§λ₯Ό μμ ν κ°μ²΄λ λ©μμ§λ₯Ό μ²λ¦¬νλ λ° μ ν©ν λ©μλλ₯Ό μμ¨μ μΌλ‘ μ ν
μν
- νΉμ μμ μ κ°μ²΄κ° κ°μ§κ³ μλ μ 보μ μ§ν©μΌλ‘ κ°μ²΄μ ꡬ쑰μ νΉμ§μ νννλ€.
- κ°μ²΄μ μνλ κ°μ²΄μ μ‘΄μ¬νλ μ μ μΈ νλ‘νΌν°μ λμ μΈ νλ‘νΌν°μ κ°μΌλ‘ ꡬμ±λλ€.
- κ°μ²΄μ νλ‘νΌν°λ λ¨μν κ°κ³Ό λ€λ₯Έ κ°μ²΄λ₯Ό μ°Έμ‘°νλ λ§ν¬λ‘ ꡬλΆλλ€.
νλ
- μΈλΆμ μμ² λλ μμ λ λ©μμ§μ μλ΅νκΈ° μν΄ λμνκ³ λ°μνλ νλ
- νλμ κ²°κ³Όλ‘ κ°μ²΄λ μνλ₯Ό λ³κ²½νκ±°λ λ€λ₯Έ κ°μ²΄μκ² λ©μμ§λ₯Ό μ λ¬ν μ μλ€.
- κ°μ²΄λ νλμ ν΅ν΄ λ€λ₯Έ κ°μ²΄μμ νλ ₯μ μ°Έμ¬νλ―λ‘ νλμ μΈλΆμ κ°μμ μ΄λ€.
μνμ νλ
- κ°μ²΄μ νλμ μνμ μν₯μ λ°λλ€.
- κ°μ²΄μ νλμ μνλ₯Ό λ³κ²½μν¨λ€.
03. νμ
κ³Ό μΆμν
- μ§μ ν μλ―Έμ μΆμν
νμ€μμ μΆλ°νλ λΆνμν λΆλΆμ λλ €λ΄κ°λ©΄μ μ¬λ¬Όμ λλΌμ΄ λ³Έμ§μ λλ¬λκ² νλ κ³Όμ μ΄λ€. λΆνμν λΆλΆμ 무μν¨μΌλ‘μ¨ νμ€μ μ‘΄μ¬νλ 볡μ‘μ±μ 극볡νκ³ , 볡μ‘ν νμ€μ λ¨μννκΈ° μν΄ μ¬μ©νλ μΈκ°μ κ°μ₯ κΈ°λ³Έμ μΈ μΈμ§ μλ¨
"μΆμνμ μμ€, μ΄μ΅, κ°μΉλ λͺ©μ μ μμ‘΄μ μ΄λ€.
νμμ 볡μ‘νλ€. λ²μΉμ λ¨μνλ€. λ²λ¦΄ κ² λ¬΄μμΈμ§ μμλ΄λΌ."
μ΄λ€ μμ, μΈλΆ μ¬ν, ꡬ쑰λ₯Ό μ’ λ λͺ
ννκ² μ΄ν΄νκΈ° μν΄ νΉμ μ μ°¨λ 물체λ₯Ό μλμ μΌλ‘ μλ΅νκ±°λ κ°μΆ€μΌλ‘μ¨ λ³΅μ‘λλ₯Ό 극볡νλ λ°©λ²μ΄λ€.
λκ°μ§ μ°¨μ
- ꡬ체μ μΈ μ¬λ¬Όλ€ κ°μ 곡ν΅μ μ μ·¨νκ³ μ°¨μ΄μ μ λ²λ¦¬λ μΌλ°νλ₯Ό ν΅ν΄ λ¨μνκ² λ§λλ κ²
- μ€μν λΆλΆμ κ°μ‘°νκΈ° μν΄ λΆνμν μΈλΆ μ¬νμ μ κ±°ν¨μΌλ‘μ¨ λ¨μνκ² λ§λλ κ²
κ°λ
(concept)
- 곡ν΅μ μ κΈ°λ°μΌλ‘ κ°μ²΄λ€μ λ¬ΆκΈ° μν κ·Έλ¦
- μΌλ°μ μΌλ‘ μ°λ¦¬κ° μΈμνκ³ μλ λ€μν μ¬λ¬Όμ΄λ κ°μ²΄μ μ μ©ν μ μλ μμ΄λμ΄λ κ΄λ
- κ°μ²΄λ€μ 볡μ‘μ±μ 극볡νκΈ° μν μΆμν λꡬ
- κ°λ
μ μ΄μ©νλ©΄ κ°μ²΄λ₯Ό μ¬λ¬ κ·Έλ£ΉμΌλ‘ λΆλ₯(classification)ν μ μλ€. (μΆμνμ λκ°μ§ μ°¨μμ λͺ¨λ μ¬μ©)
- κ°μ²΄μ μ΄λ€ κ°λ
μ μ μ©νμ¬ κ°λ
κ·Έλ£Ήμ μΌμμ΄ λ λ κ°μ²΄λ₯Ό κ·Έ κ°λ
μ μΈμ€ν΄μ€(instance)λΌκ³ νλ€.
λΆλ₯(classification)
- κ°μ²΄μ νΉμ ν κ°λ
μ μ μ©νλ μμ
μ΄λ€.
- κ°μ²΄μ νΉμ ν κ°λ
μ μ μ©νκΈ°λ‘ κ²°μ¬νμ λ μ°λ¦¬λ κ·Έ κ°μ²΄λ₯Ό νΉμ ν μ§ν©μ λ©€λ²λ‘ λΆλ₯νκ³ μλ κ²μ΄λ€.
κ°λ
μ μΈκ°μ§ κ΄μ
- νΉμ ν κ°μ²΄κ° μ΄λ€ κ·Έλ£Ήμ μν κ²μΈμ§λ₯Ό κ²°μ νλ€. κ°μ²΄λ₯Ό λΆλ₯νκΈ° μν ν.
μ¬λ³Ό(symbol): κ°λ
μ κ°λ¦¬ν€λ κ°λ΅ν μ΄λ¦μ΄λ λͺ
μΉ
λ΄μ°(intension): κ°λ
μ μμ ν μ μλ₯Ό λνλ΄λ©° λ΄μ°μ μλ―Έλ₯Ό μ΄μ©ν΄ κ°μ²΄κ° κ°λ
μ μνλμ§ μ¬λΆλ₯Ό νμΈν μ μλ€.
μΈμ°(extension): κ°λ
μ μνλ λͺ¨λ κ°μ²΄μ μ§ν© (set)
νμ
νμ
μ λ°μ΄ν°κ° μ΄λ»κ² μ¬μ©λλλμ κ΄ν κ²μ΄λ€.
νμ
μ μν λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μ΄λ»κ² νννλμ§λ μΈλΆλ‘λΆν° μ² μ νκ² κ°μΆ°μ§λ€.
- μ΄λ€ κ°μ²΄κ° μ΄λ€ νμ
μ μνλμ§λ₯Ό κ²°μ νλ κ²μ κ°μ²΄κ° μννλ νλμ΄λ€. κ°μ²΄κ° μ΄λ€ νλμ νλμ λ°λΌ κ°μ²΄μ νμ
μ΄ κ²°μ λλ€.
- κ°μ²΄μ λ΄λΆμ μΈ ννμ μΈλΆλ‘λΆν° μ² μ νκ² κ°μΆ°μ§λ€.
κ°μ²΄μ νμ
μ κ°μ²΄μ λ΄λΆ ννκ³Όλ μλ¬΄λ° μκ΄μ΄ μκΈ°μ κ°μ²΄μ λ΄λΆ νν λ°©μμ΄ λ€λ₯΄λλΌλ μ΄λ€ κ°μ²΄λ€μ΄ λμΌν νλμ μννλ€λ©΄ κ·Έ κ°μ²΄λ€μ λμΌν νμ
μ μνλ€.
"κ°μ²΄μ νμ
μ κ²°μ νλ κ²μ κ°μ²΄μ νλλΏμ΄λ€. κ°μ²΄κ° μ΄λ€ λ°μ΄ν°λ₯Ό 보μ νκ³ μλμ§λ νμ
μ κ²°μ νλλ° μλ¬΄λ° μν₯λ λ―ΈμΉμ§ μλλ€."
λμΌν νμ
μ μν κ°μ²΄λ λ΄λΆμ λ°μ΄ν° νν λ°©μμ΄ λ€λ₯΄λλΌλ λμΌν λ©μμ§λ₯Ό μμ νκ³ μ΄λ₯Ό μ²λ¦¬ν μ μλ€. λ€λ§ λ΄λΆμ νν λ°©μμ΄ λ€λ₯΄κΈ° λλ¬Έμ λμΌν λ©μμ§λ₯Ό μ²λ¦¬νλ λ°©μμ μλ‘ λ€λ₯Ό μ λ°μ μλ€.
λμΌν μμ²μ λν΄ μλ‘ λ€λ₯Έ λ°©μμΌλ‘ μλ΅ν μ μλ λ₯λ ₯μ΄λ€. λ€νμ μΈ κ°μ²΄λ€μ λμΌν λ©μμ§λ₯Ό μλ‘ λ€λ₯Έ λ°©μμΌλ‘ μ²λ¦¬νκΈ° μν΄μ λμΌν νμ
μ μνκ² λλ€.
λ°μ΄ν°μ λ΄λΆ νν λ°©μκ³Ό 무κ΄νκ² νλλ§μ΄ κ³ λ € λμμ΄λΌλ μ¬μ€μ μΈλΆμ λ°μ΄ν°λ₯Ό κ°μΆ°μΌ νλ€λ κ²μ μλ―Ένλ€.
μ±
μ-μ£Όλ μ€κ³(Responsibility-Driven Design)
- κ°μ²΄μ§ν₯ μ€κ³ λ°©λ²
κ°μ²΄κ° μΈλΆμ μ 곡ν΄μΌ νλ μ±
μμ λ¨Όμ κ²°μ νκ³ κ·Έ μ±
μμ μννλ λ° μ ν©ν λ°μ΄ν°λ₯Ό λμ€μ κ²°μ ν ν, λ°μ΄ν°λ₯Ό μ±
μμ μννλλ° νμν μΈλΆ μΈν°νμ΄μ€ λ€λ‘ μΊ‘μν ν΄μΌνλ€.
μΌλ°ν/νΉμν(generalization/specialization) κ΄κ³
μ΄ κ΄κ³λ₯Ό κ²°μ νλ κ²μ κ°μ²΄μ νλ
μ΄λ€.
μΌλ°μ μΈ νμ
: νΉμν νμ
μ΄ κ°μ§ λͺ¨λ νλλ€ μ€μμ μΌλΆ νλλ§μ κ°μ§λ νμ
νΉμν νμ
: μΌλ°μ μΈ νμ
μ΄ κ°μ§ λͺ¨λ νλμ ν¬ν¨νμ§λ§ κ±°κΈ°μ λν΄ μμ λ§μ νλμ μΆκ°νλ νμ
- μΌλ°μ μΈ νμ
μ νΉμν νμ
λ³΄λ€ λ μ μ μμ νλμ κ°μ§μ§λ§, λ ν° ν¬κΈ°μ μΈμ° μ§ν©μ κ°μ§λ€.
μνΌνμ
/μλΈνμ
μΌλ°μ μΈ νμ
== μνΌνμ
νΉμν νμ
== μλΈνμ
- μ΄λ€ νμ
μ΄ λ€λ₯Έ νμ
μ μλΈ νμ
μ΄ λκΈ° μν΄μλ νμμ νΈνμ±μ λ§μ‘±μμΌμΌ νλ€.
- μΌλ°μ μΌλ‘ μλΈνμ
μ μνΌνμ
μ νμμ νΈνλκΈ° λλ¬Έμ μνΌνμ
μ λ체ν μ μμ΄μΌ νλ€.
λμ λͺ¨λΈ/μ μ λͺ¨λΈ
μ€λ
μ· == κ°μ²΄ λ€μ΄μ΄κ·Έλ¨ == λμ λͺ¨λΈ(dynamic model)
νμ
λͺ¨λΈ == μ μ λͺ¨λΈ(static model)
ν΄λμ€
νμ
μ 'ꡬννλ' κ°μ₯ 보νΈμ μΈ λ°©λ²μ΄λ€.
νμ
μ ꡬνν μ μλ μ¬λ¬ ꡬν λ©μ»€λμ¦ μ€ νλμΌ λΏ