λ°μν
What is Design Pattern?
- λμμΈ ν¨ν΄μ μννΈμ¨μ΄ 곡νμμ μΌλ°μ μΈ λ¬Έμ λ€μ λν λ°λ³΅μ μ΄κ³ μ¬μ¬μ© κ°λ₯ν ν΄κ²°μ± μ μ 곡νλ νμνλ λ°©λ²λ‘ μ λλ€.
- μ΄λ¬ν ν¨ν΄λ€μ κ°λ°μλ€μ΄ νΉμ μν©μ΄λ λ¬Έμ μ λν΄ ν¨κ³Όμ μΌλ‘ λμν μ μλλ‘ λμμ€λλ€.
- λμμΈ ν¨ν΄μ μ£Όλ‘ κ°μ²΄ μ§ν₯ μννΈμ¨μ΄ μ€κ³μ μ μ©λλ©°, μ½λμ μ¬μ¬μ©μ±, μ μ°μ±, νμ₯μ±μ λμ΄λ λ° λμμ΄ λ©λλ€.
λμμΈ ν¨ν΄μ κ·μΉμ΄ μλλ€.
- μΈμ΄ μ’ μμ μ΄μ§ μμ΅λλ€.
- νλ μ μν¬ κ°λ°μ μ μ©λ μ μμ΅λλ€.
- νΉμ μμμ μ’ μμ μ΄μ§ μκ³ μΌλ°μ μΌλ‘ νμ©ν μ μμ΅λλ€.
- μ’μ μ€κ³μ λν μ μμ΄κΈ°λ ν©λλ€.
λμμΈ ν¨ν΄μ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬κ° μλλ€.
- νλ‘κ·Έλλ° μΈμ΄(C++, Java, Python λ±)λ₯Ό μ¬μ©ν λ ν΄λμ€λ€μ΄ λͺ¨μΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ κ²μ μ΅μνμ¬ κ·Έλ¬ν μ’ λ₯λ‘ μ°©κ°ν μ μμ΅λλ€.
- κ·Έλ¬λ λμμΈ ν¨ν΄μ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬κ° μλλλ€.
- μλ₯Ό λ€μ΄μ νΉμ 곡μ°μμ κ·Έκ²μ λκ° μ°κΈ°? μν μ νλ μ¬λμ΄ λꡬμΈμ§λ μ΄μΌκΈ°μ μ€κ±°λ¦¬λ₯Ό μκΈ°ν λ νμ μ¬νμ μλλλ€.
- μ€μν건 μν κ°μ ‘κ΄κ³’λ₯Ό μ€λͺ νλκ²μ΄ λ μ€μν©λλ€.
κ·ΈλΌμλ λ°°μμΌ νλ μ΄μ
- κ°μ²΄ μ§ν₯μ μν λμμΈ ν¨ν΄μ SWμ μ€μν μμλ₯Ό ν₯μμν΅λλ€.
- resuse, flexibility, extensibiltiy, modularity
- λμμΈ ν¨ν΄μ μ¬μ©νλ©΄ SWκ°λ°μ Communicationμ λμμ΄ λ©λλ€.
- μ’μ μ€κ³λ μ’μ SW, μ€νμμ€μ λν΄ νμ΅νκ±°λ λ§μ κ²½ν, μ°μ΅μ μν΄ νλ ¨λ μ μκΈ° λλ¬Έμ λμμΈ ν¨ν΄μ 곡λΆν¨μΌλ‘μ μ΄λ―Έ μ¦λͺ λ μ€ν¬κ³Ό κ²½νμ λ°°μΈ μ μμ΅λλ€.
- λμ κ²°ν©λλ₯Ό κ°μ§κ±°λ μκ³ λ¦¬μ¦ μ’ μμ±, κ°μ²΄ ννμ΄λ ꡬνμ μ’ μμ μΌλ‘ ꡬνλ SWμ Refactoringμ΄ κ°λ₯ν©λλ€.
- κ²°κ΅ μ’μ μ€κ³λ₯Ό μ λνμ¬ SWμ μ μ§λ³΄μμ λ€μ΄κ°λ λΉμ©μ μ μ½ν μ μμ΅λλ€.
νλ‘κ·Έλ¨μ μμ±νμΌλ‘ λ³΄μ§ λ§μ
- Design Patternμ λͺ©νμ€ νλλ Programμ μ¬μ΄μ©μ κ°λ₯νκ² νλκ²μ λλ€.
- μ¦, Programμ μ΄λ»κ² ‘λΆν’μΌλ‘μ¨ μ¬μ΄μ©ν μ μλκ°λ₯Ό μκ°ν΄μΌ ν©λλ€.
- λ°λΌμ Programμ μλ₯Ό ‘μμ±ν’μΌλ‘ 보μ§λ§κ³ μμΌλ‘ ‘κΈ°λ₯μ νμ₯ν΄λκ°λ κ²’, ‘λ³κ²½ν μ μλ κ²’μΌλ‘ λ΄μΌν©λλ€.
νλ‘κ·Έλ¨μ μ€κ³ ν λ μκ°ν΄ λ΄μΌ νλ κ²λ€
- μ΄λ€ κΈ°λ₯μ΄ νμ₯λ κ°λ₯μ±μ΄ μλμ§?
- νμ₯ κΈ°λ₯μ μνν λ μμ μ΄ νμν ν΄λμ€λ 무μμΈκ°?
- μμ μ΄ λΆνμν ν΄λμ€λ 무μμΈκ°?
λ€μ΄μ΄κ·Έλ¨μ 보λ κ²μ΄ μλλΌ μ½λ κ²
- Design Patternμ μ€λͺ ν λ Diagramμ λ§μ΄ νμ©ν©λλ€.
- ν΄λμ€ Diagramκ³Ό Sequence Diagramμ μ¬μ©ν©λλ€.
- μ΄κ²μ λ¨μν κ·Έλ¦ΌμΌλ‘ μκ°νλ©΄ μλ©λλ€. → μ΄μ λ νλμ μ 체λ₯Ό λ³Ό μ μκΈ° λλ¬Έμ λλ€.
- Class Diagramμ 보면μ κ°κ°μ μ¬κ°νμ μ΄ν΄λ³΄κ³ , κ·Έ μμ μ°μ¬μλ Methodκ° μΌλ° MethodμΈμ§, μΆμ MethodμΈμ§ νμΈν΄μΌ ν©λλ€.
- ν΄λμ€κ° νμ΄νλ₯Ό νμΈ, κ·Έλ¦¬κ³ μ΄λ€κ²μ΄ λΆλͺ¨, μμ ν΄λμ€ μΈμ§ νμΈμ ν΄μΌ ν©λλ€.
- μ΄λ¬ν κ³Όμ μΌλ‘ κΌΌκΌΌνκ² λ°μ Έλ³΄λ©΄, Diagramμ μ 체μ μΈ μλ―Έλ₯Ό νμ ν μ μμ΅λλ€.
what is UML?
UMLμ Unified Modeling Languageμ μ½μλ‘, ν΅ν© λͺ¨λΈλ§ μΈμ΄λ₯Ό μλ―Έν©λλ€. μννΈμ¨μ΄ 곡νμμ μ¬μ©λλ νμ€νλ κ·Έλν½ μΈμ΄λ‘, μμ€ν λ° μννΈμ¨μ΄μ ꡬ쑰λ₯Ό μκ°μ μΌλ‘ νννλ λ° μ¬μ©λ©λλ€.
νλ² μ€μ€λ‘ μμ λ₯Ό λ§λ€μ΄ 보λ μ΅κ΄μ κΈ°λ₯΄κΈ°
- λ¨μν μμλ€μ μ½κΈ°λ§ νμ§ λ§κ³ μ€μ€λ‘ μμ λ₯Ό λ§λ€μ΄ λ΄μΌ μ€λ ₯μ΄ λ‘λλ€.
- μΈμ΄λ λ¬Έλ²μ 곡λΆνκ³ , λ§(speaking)μ ν΄λ³΄μ§ μμΌλ©΄ ννλ ₯μ΄ λμ§ μλ―μ΄ μ§μ μ€κ³νκ±°λ νλ‘κ·Έλ¨μ μμ±ν λ, Design Pattern μ μ©μ μλν΄ λ΄μΌ ν©λλ€.
λ°μν
'πΊοΈ Design Pattern' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Design Pattern] Factory Method Pattern - ν©ν 리 λ©μλ ν¨ν΄ (0) | 2024.04.08 |
---|---|
[Design Pattern] Factory Pattern - ν©ν 리 ν¨ν΄ (0) | 2024.04.08 |
[Design Pattern] Object-Oriented Programming (OOP) (0) | 2024.03.28 |
[Design Pattern] Unified Modeling Language (UML) (0) | 2024.03.28 |
[Design Pattern] Solid Principles (μ리λ μμΉ) (0) | 2024.03.28 |