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