π 1. λμμΈ ν¨ν΄(Design Pattern)μ΄λ?
λμμΈ ν¨ν΄μ λλ체 무μμΈκ°?
κ°λ°μ λν΄ κΉμ κ΄μ¬μ κ°λ€λ³΄λ©΄, λꡬλ ν λ²μ―€μ 'λμμΈ ν¨ν΄'μ΄λΌλ λ§μ λ€μ΄λ΄€μ κ²μ λλ€.
λλ체 λμμΈ ν¨ν΄μ΄λ 무μμ΄κ³ , μ΄λ₯Ό νμ΅νλ©΄ μ΄λ€ μ₯μ μ΄ μμκΉμ?
λμμΈ ν¨ν΄μ "μμ£Ό μ¬μ©νλ μ€κ³ ν¨ν΄μ μ νν ν΄μ μ΄λ₯Ό μ νλ³λ‘ κ°μ₯ μ΅μ μ λ°©λ²μΌλ‘ κ°λ°μ ν μ μλλ‘ μ ν΄λ μ€κ³ μκ³ λ¦¬μ¦"κ³Ό λΉμ·ν©λλ€.
μκ³ λ¦¬μ¦μ λͺ ννκ² κ°μ₯ λΉ λ₯΄κ³ ν¨μ¨μ μΈ λ΅μ μ°Ύλ μ λ΅μ΄ μλ ννμ΄μ§λ§, λμμΈ ν¨ν΄μ λͺ νν μ λ΅μ΄ μλ ννλ μλμ§λ§, νλ‘μ νΈμ μν©μ λ§μΆ° μ μ©μ΄ κ°λ₯ν©λλ€.
μννΈμ¨μ΄λ₯Ό μ€κ³ν λλ κΈ°μ‘΄μ κ²½νμ΄ κ΅μ₯ν μ€μνμ§λ§, λ΄λΉλ μ΄λ¬ν κ²½νμ΄ μμ΅λλ€. μ΄λ¬ν κ²½νμ 곡μ νκ³ μ λμ¨ κ²μ΄ GoF λμμΈ ν¨ν΄μ΄λ©°, μ΄ 23κ°μ§μ ν¨ν΄μ΄ μμ΅λλ€.
κ°μ²΄ μ§ν₯ μ€κ³ κ°λ μ λ°λ₯Έ μ€κ³ μ€μ μ¬μ¬μ©ν κ²½μ°, μ μ©ν μ€κ³λ₯Ό λμμΈ ν¨ν΄μΌλ‘μ¨ μ μν΄λ κ²μ΄ λ°λ‘ GoF λμμΈ ν¨ν΄μΈ κ²μ΄μ£ .
μ΄λ₯Ό νμ΅ν¨μΌλ‘μ¨ κ²½νμ΄ λΆμ‘±ν λ΄λΉ κ°λ°μλΌλ μ’μ μννΈμ¨μ΄ μ€κ³κ° κ°λ₯μΌ ν©λλ€.
λͺ¨λ λμμΈ ν¨ν΄μ μκΈ°λ μ΄λ ΅μ§λ§, μ΄μ€μ λ§μ΄ μ¬μ©νλ ν¨ν΄ λ° μ€νλ§μμ μμ£Ό μ¬μ©νλ ν¨ν΄μ μ΅νλ€λ©΄ λμμ΄ λμ§ μμκΉ νλ λ§μμ μ 리λ₯Ό ν΄λ³΄λ € ν©λλ€.
<λμμΈ ν¨ν΄μ μ₯μ >
- κ°μ΄ νμ νλ κ°λ°μκ° λμμΈ ν¨ν΄μ λν λ΄μ©μ μμ§νκ³ μλ€λ©΄, κ°λ°μκ°μ μνν μν΅μ΄ κ°λ₯ν©λλ€.
- μννΈμ¨μ΄ ꡬ쑰 νμ μ΄ μ½κ³ , μ¬μ¬μ©μ ν΅ν κ°λ° μκ°μ λ¨μΆν μ μμ΅λλ€.
- μ€κ³ λ³κ²½ μμ²μ λν μ μ°ν λμ²κ° κ°λ₯ν©λλ€.
- μν°νλΌμ΄μ¦ μμ€ν μ΄ νμ₯λ λ μ©μ΄νκ³ , κ°λ° μμ μκ° λ° μ μ§λ³΄μ μκ° λ¨μΆμ΄ κ°λ₯ν©λλ€.
<λμμΈ ν¨ν΄μ λ¨μ >
- λμμΈ ν¨ν΄μ λν΄ μμ§νκΈ° μν μ΄κΈ° ν¬μ λΉμ©μ λΆλ΄μ΄ λ°λμ νμν©λλ€.
- κ°μ²΄ μ§ν₯ μ€κ³ λ° κ΅¬νμ΄ νμνλ―λ‘, κ°μ²΄ μ§ν₯μ κ°λ μ λν μ΄ν΄κ° λ°λμ νμν©λλ€.
π 2. λμμΈ ν¨ν΄(Design Pattern)μ μ’ λ₯
πͺ λμμΈ ν¨ν΄μ ν¬κ² μΈ κ°μ§ μΉ΄ν κ³ λ¦¬λ‘ λΆλ₯ν μ μμ΅λλ€.
> 2-1. μμ± ν¨ν΄
κ°μ²΄λ₯Ό μμ±νλ κ²κ³Ό κ΄λ ¨λ ν¨ν΄μΌλ‘, κ°μ²΄μ μμ±κ³Ό λ³κ²½μ΄ μ 체 μμ€ν μ λ―ΈμΉλ μν₯μ μ΅μν νκ³ , μ½λμ μ μ°μ±μ λμ¬μ€λλ€.
- ν©ν 리 λ©μλ
- μ±κΈν΄
- νλ‘ν νμ
- λΉλ
- μΆμ ν©ν 리
- 체μ΄λ (GoF ν¨ν΄μ μλ, Lombokμ ν΅ν΄ μ¬μ©)
> 2-2. ꡬ쑰 ν¨ν΄
νλ‘κ·Έλ¨ λ΄μ μλ£κ΅¬μ‘°λ μΈν°νμ΄μ€ ꡬ쑰 λ± νλ‘κ·Έλ¨μ ꡬ쑰λ₯Ό μ€κ³νλ λ°μ νμ©λ μ μλ ν¨ν΄μ μλ―Έν©λλ€.
ν΄λμ€, κ°μ²΄λ€μ ꡬμ±μ ν΅ν΄μ λ ν° κ΅¬μ‘°λ₯Ό λ§λ€ μ μκ² ν©λλ€. ν° κ·λͺ¨μ μμ€ν μμλ λ§μ ν΄λμ€λ€μ΄ μλ‘ μμ‘΄μ±μ κ°μ§κ² λλλ°, μ΄λ° 볡μ‘ν ꡬ쑰λ₯Ό κ°λ°νκΈ° μ©μ΄νκ² λ§λ€κ³ μ μ§λ³΄μλ₯Ό λμ± λ κ°νΈνκ² λ§λ€μ΄ μ£Όλ κ²μ΄ λ°λ‘ μ΄ 'ꡬ쑰 ν¨ν΄'μ ν΄λΉνλ κ²λ€μ λλ€.
- μ΄λν° ν¨ν΄
- μ»΄ν¬μ§μ ν¨ν΄
- λΈλ¦Ώμ§ ν¨ν΄
- λ°μ½λ μ΄ν° ν¨ν΄
- νΌμ¬λ ν¨ν΄
- νλΌμ΄ μ¨μ΄νΈ ν¨ν΄
- νλ‘μ ν¨ν΄
> 2-3. νμ ν¨ν΄
λ°λ³΅μ μΌλ‘ μ¬μ©λλ κ°μ²΄λ€μ μνΈμμ©μ ν¨ν΄ν μν¨ κ²μ λλ€. ν΄λμ€λ κ°μ²΄λ€μ΄ μνΈμμ©νλ λ°©λ²κ³Ό μ± μμ λΆμ°νλ λ°©λ²μ μ 곡ν©λλ€. νμ ν¨ν΄μ νμ κ΄λ ¨ ν¨ν΄μ μ¬μ©ν΄μ λ 립μ μΌλ‘ μΌμ μ²λ¦¬νκ³ μ ν λ μ¬μ©νκ² λ©λλ€.
- ν νλ¦Ώ λ©μλ
- μΈν°ν리ν°
- μμ΄ν°λ μ΄ν°
- μ΅μ λ²
- μ λ΅
- λΉμ§ν°
- μ± μμ 체μΈ
- λͺ λ Ή
- λ©λν μ΄ν°
- μν
- λ©λ©ν