λ””μžμΈ νŒ¨ν„΄(Design Pattern)

2020. 5. 16. 14:09Β·πŸ“ Computer Science/✏ Design Pattern

λ””μžμΈ νŒ¨ν„΄(Design Pattern)

  • μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό 섀계할 λ•Œ νŠΉμ • λ§₯λ½μ—μ„œ 자주 λ°œμƒν•˜λŠ” 고질적인 λ¬Έμ œλ“€μ΄ 또 λ°œμƒν–ˆμ„ λ•Œ μž¬μ‚¬μš©ν•  ν•  수 μžˆλŠ” ν›Œλ₯­ν•œ 해결책이닀.
  • 각기 λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄ λͺ¨λ“ˆμ΄λ‚˜ κΈ°λŠ₯을 κ°€μ§„ λ‹€μ–‘ν•œ μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œλ“€μ„ κ°œλ°œν•  λ•Œλ„ μ„œλ‘œ 간에 κ³΅ν†΅λ˜λŠ” 섀계 λ¬Έμ œκ°€ μ‘΄μž¬ν•˜λ©° 이λ₯Ό μ²˜λ¦¬ν•˜λŠ” ν•΄κ²°μ±… 사이에도 곡톡점이 μžˆλ‹€. μ΄λŸ¬ν•œ μœ μ‚¬μ μ„ νŒ¨ν„΄μ΄λΌ ν•œλ‹€.
  • νŒ¨ν„΄μ€ κ³΅ν†΅μ˜ μ–Έμ–΄λ₯Ό λ§Œλ“€μ–΄μ£Όλ©° νŒ€μ› μ‚¬μ΄μ˜ μ˜μ‚¬μ†Œν†΅μ„ μ›ν™œν•˜κ²Œ ν•΄μ£ΌλŠ” μ•„μ£Ό μ€‘μš”ν•œ 역할을 ν•œλ‹€.

 

GoF λ””μžμΈ νŒ¨ν„΄

23κ°€μ§€μ˜ λ””μžμΈ νŒ¨ν„΄μ„ μ •λ¦¬ν•˜κ³  각각의 λ””μžμΈ νŒ¨ν„΄μ„ 생성, ꡬ쑰, ν–‰μœ„ 3κ°€μ§€λ‘œ κ΅¬λΆ„ν–ˆλ‹€.

 

  • 생성 νŒ¨ν„΄: 객체 생성에 κ΄€λ ¨λœ νŒ¨ν„΄μœΌλ‘œ 객체의 μƒμ„±κ³Ό μ‘°ν•©μ„ μΊ‘μŠν™”ν•΄ νŠΉμ • κ°μ²΄κ°€ μƒμ„±λ˜κ±°λ‚˜ λ³€κ²½λ˜μ–΄λ„ ν”„λ‘œκ·Έλž¨ κ΅¬μ‘°μ— μ˜ν–₯을 ν¬κ²Œ λ°›μ§€ μ•Šλ„둝 μœ μ—°μ„±μ„ μ œκ³΅ν•œλ‹€.
  • ꡬ쑰 νŒ¨ν„΄: ν΄λž˜μŠ€λ‚˜ 객체λ₯Ό μ‘°ν•©ν•΄ 더 큰 ꡬ쑰λ₯Ό λ§Œλ“œλŠ” νŒ¨ν„΄μœΌλ‘œ μ„œλ‘œ λ‹€λ₯Έ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ§€λ‹Œ 2개의 객체λ₯Ό λ¬Άμ–΄ 단일 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜κ±°λ‚˜ 객체듀을 μ„œλ‘œ λ¬Άμ–΄ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” νŒ¨ν„΄μ΄λ‹€.
  • ν–‰μœ„ νŒ¨ν„΄: κ°μ²΄λ‚˜ 클래슀 μ‚¬μ΄μ˜ μ•Œκ³ λ¦¬μ¦˜μ΄λ‚˜ μ±…μž„ 뢄배에 κ΄€λ ¨λœ νŒ¨ν„΄μœΌλ‘œ ν•œ 객체가 혼자 μˆ˜ν–‰ν•  수 μ—†λŠ” μž‘μ—…μ„ μ—¬λŸ¬ 개의 객체둜 μ–΄λ–»κ²Œ λΆ„λ°°ν•˜λŠ”μ§€, 또 κ·Έλ ‡κ²Œ ν•˜λ©΄μ„œλ„ 객체 μ‚¬μ΄μ˜ 결합도λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” 것에 쀑점을 λ‘”λ‹€.

GoF λ””μžμΈ νŒ¨ν„΄ λΆ„λ₯˜

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Computer Science/✏ Design Pattern' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ 루프 νŒ¨ν„΄(Game Loop Pattern)
  • μ˜΅μ €λ²„ νŒ¨ν„΄(Observer Pattern)
  • MVC νŒ¨ν„΄
  • 싱글톀 νŒ¨ν„΄(Singleton Pattern)
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
λ””μžμΈ νŒ¨ν„΄(Design Pattern)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”