UML μ΄λ?
μννΈ μ곡μ¬κ° μμ λ€μ΄ μ§μΌλ €λ μννΈλ₯Ό λ§μ μ¬λλ€μκ² λ³΄μ¬μ£Όλ € λͺ¨λΈ νμ°μ€λ₯Ό μ§λ κ²μ²λΌ, μννΈμ¨μ΄ κ°λ°μμλ κ°λ° μ΄μ μ λͺ¨λΈμ λ§λ λ€. μ΄λ μ¬μ©λλ κ²μ΄ UMLμ΄κ³ , μ΄λ μννΈμ¨μ΄ 곡νμμ μ¬μ©λλ νμ€νλ λ²μ© λͺ¨λΈλ§ μΈμ΄λΌλ λ»μ΄λ€. μ½κ² λ§ν΄ λͺ¨λΈμ λ§λλ νμ€μΈμ΄λΌλ λ»μ΄λ€.
κ·Έλ λ€λ©΄ UMLμ μμ±νλ©΄ μ’μ μ μ΄ λ¬΄μμ΄ μμκΉ?
- νννκ² κ΅¬ν λ λͺ¨λΈμ μ’μ μν€ν μ²μ κΈ°λ°μ΄ λλ€.
- νλ‘μ νΈ νμλ€κ°μ μμ¬μν΅μ μννκ² λμμ€λ€.
- νλ²μ μ΄ν΄νκΈ° νλ μμ€ν μ μκ°μ μΌλ‘ ꡬννμ¬ μ΄ν΄λ₯Ό λμμ€λ€.
Class DIagram
ν΄λμ€ λ€μ΄μ΄κ·Έλ¨μ κ°μ²΄μ§ν₯ν μμ€ν μ€κ³μμ, μμ€ν μ λ Όλ¦¬ μ€κ³λ₯Ό μν ν΄λμ€λ€μ μ‘΄μ¬μ κ·Έλ€μ κ΄κ³λ₯Ό λμν ν κ²μ΄λ€.
κ΄κ³μ μ’ λ₯
- Association, μ°κ΄ κ΄κ³
- Inheritance, Generalization, μμ κ΄κ³, μΌλ°ν κ΄κ³
- Implementation, Realization, ꡬν κ΄κ³, μ€μ²΄ν κ΄κ³
- Dependency, μμ‘΄ κ΄κ³
- Aggregation, μ§ν© κ΄κ³
- Composition, ν©μ± κ΄κ³
Association, μ°κ΄ κ΄κ³
μ°κ΄ κ΄κ³λ λ³΄ν΅ κ°μ²΄μ μ°Έμ‘°λ₯Ό κ°μ§λ νλλ₯Ό μλ―Ένλ€.
(μ μ₯ νλ‘νΌν°μ νμ
μΌλ‘ λ€λ₯Έ ν΄λμ€λ₯Ό μ°Έμ‘° ν λ)
class Tottenham {
let mvpPlayer: Sonny
}
class Sonny {
}
ν νΈλ ν΄λμ€κ° μλν΄λμ€ μ°Έμ‘°, μ΄ κ²½μ° λ°©ν₯μ±μ΄ μλ μ°κ΄μ΄κΈ° λλ¬Έμ μΌλ° μ€μ μ΄ μλ νμ΄νλ₯Ό μ¬μ©ν΄ μ€ μ μμ
Inheritance, Generalization, μμ κ΄κ³, μΌλ°ν κ΄κ³
μΌλ°ν κ΄κ³λ μνΌν΄λμ€μ μλΈν΄λμ€κ°μ μμκ΄κ³λ₯Ό λνλΈλ€.
class Epl {
}
class Tottenham: EPL {
}
Implementation, Realization, ꡬν κ΄κ³, μ€μ²΄ν κ΄κ³
μΈν°νμ΄μ€μ ꡬνμ λνλ΄λ κ΄κ³
(μ€μννΈμμλ νλ‘ν μ½ μ±νμ΄ λνμ μΈ μ)
protocol FootballPlayer {
}
class Sonny: FootballPlayer {
}
Dependency, μμ‘΄ κ΄κ³
μΌλ°μ μΌλ‘ μ μΌ λ§μ΄ μ¬μ©λλ κ΄κ³, 맀μλ λ΄μμ λμ ν΄λμ€μ κ°μ²΄ μμ±, κ°μ²΄ μ¬μ©, λ©μλ νΈμΆ, κ°μ²΄ 리ν΄, 맀κ°λ³μλ‘ ν΄λΉ κ°μ²΄λ₯Ό λ°λ κ²μ λ§νλ€.
class Football {
func game() {
}
}
class Person {
func watchFootball() -> Football {
Football()
}
func playFootball(play: Football) {
football.game()
}
}
Aggregation, μ§ν© κ΄κ³
κ°λ μ΄ λͺ ννμ§ μκ³ , μ°κ΄κ΄κ³μ μ½λμ μ°¨μ΄μ μ΄ μ‘΄μ¬ νμ§ μμ
- κ°μΈμ μΌλ‘λ μ΅λν μ¬μ©μ νμ§ μμΌλ € ν¨...
Composition, ν©μ± κ΄κ³
Aggregationμ λΉμ·ν κ°λ μ΄λ, λ κ°μ²΄μ Life Cycleμ΄ λμΌνμ¬ μ‘°κΈ λ κ°λ ₯ν μ§ν©μ μλ―Έ νλ€.
class FruitStore {
}
class JuiceMaker {
let fruitStore: FruitStore = FruitStore()
}
'π etc' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
SOLID μμΉ (0) | 2022.05.19 |
---|---|
[UML] μνμ€ λ€μ΄μ΄κ·Έλ¨ (Sequense Diagram) (0) | 2022.05.18 |
μμ£Όμ°λ git λͺ λ Ήμ΄ (0) | 2022.04.12 |
Git κ°λ / μ©μ΄ μ 리 (0) | 2022.04.11 |