<aside>

</aside>


🌟 챕터 μ†Œκ°œ

μ•ˆλ…•ν•˜μ„Έμš”, μ—¬λŸ¬λΆ„! 😊 μ˜€λŠ˜μ€ ꡬ쑰 자체의 μœ μ—°μ„±μ„ κ·ΉλŒ€ν™”ν•˜λŠ” **λΈŒλ¦¬μ§€ νŒ¨ν„΄(Bridge Pattern)**에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 이 νŒ¨ν„΄μ€ μ΄λ¦„μ²˜λŸΌ, μ„œλ‘œ λ‹€λ₯Έ 두 μ˜μ—­ 사이에 **'닀리(Bridge)'**λ₯Ό λ†“μ•„μ£ΌλŠ” 역할을 ν•΄μš”.

λ‹€μ–‘ν•œ λ„ν˜•(원, μ‚¬κ°ν˜•)κ³Ό, 이 λ„ν˜•λ“€μ„ κ·Έλ¦¬λŠ” 방식(벑터, λž˜μŠ€ν„°)이 μžˆλ‹€λ©΄ μ–΄λ–¨κΉŒμš”? μƒμ†λ§ŒμœΌλ‘œ μ²˜λ¦¬ν•˜λ©΄ '벑터 원', 'λž˜μŠ€ν„° 원', '벑터 μ‚¬κ°ν˜•'... 🀯 클래슀 μˆ˜κ°€ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ λŠ˜μ–΄λ‚  κ²λ‹ˆλ‹€.

λΈŒλ¦¬μ§€ νŒ¨ν„΄μ€ λ°”λ‘œ 이런 **'λ…λ¦½μ μœΌλ‘œ λ³€ν•  수 μžˆλŠ” 두 차원'**을 μš°μ•„ν•˜κ²Œ λΆ„λ¦¬ν•˜μ—¬, 각각이 μ„œλ‘œμ—κ²Œ 큰 영ν–₯을 μ£Όμ§€ μ•Šκ³  λ…λ¦½μ μœΌλ‘œ λ°œμ „ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” κ°•λ ₯ν•œ νŒ¨ν„΄μž…λ‹ˆλ‹€. ν•¨κ»˜ 닀리λ₯Ό κ±΄λ„ˆλ΄…μ‹œλ‹€! πŸš€


🎯 챕터 λͺ©ν‘œ

이번 κ°•μ˜μ˜ λͺ©ν‘œμž…λ‹ˆλ‹€.

  1. λΈŒλ¦¬μ§€ νŒ¨ν„΄μ˜ μ˜λ„(좔상화와 κ΅¬ν˜„μ„ λΆ„λ¦¬ν•˜μ—¬ λ…λ¦½μ μœΌλ‘œ λ³€ν™”ν•˜κ²Œ 함)λ₯Ό μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. 이 νŒ¨ν„΄μ΄ ν•΄κ²°ν•˜λŠ” 문제(클래슀 개수의 쑰합적 폭발)λ₯Ό 식별할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μ£Όμš” μ°Έμ—¬μž(Abstraction, Implementor λ“±)와 각자의 역할을 μ΄ν•΄ν•©λ‹ˆλ‹€.
  4. **ν•©μ„±(Composition)**을 μ‚¬μš©ν•˜μ—¬ 좔상화와 κ΅¬ν˜„μ„ λΆ„λ¦¬ν•˜λŠ” 방법을 μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  5. Pythonμ—μ„œ λΈŒλ¦¬μ§€ νŒ¨ν„΄μ„ κ΅¬ν˜„ν•˜κ³  ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  6. λΈŒλ¦¬μ§€ νŒ¨ν„΄μ˜ 이점(독립적인 ν™•μž₯μ„±, μœ μ—°μ„± μ¦λŒ€)을 μ΄ν•΄ν•©λ‹ˆλ‹€.

πŸ’» κ°•μ˜μ—μ„œ μ‚¬μš©λ˜λŠ” 전체 μ½”λ“œ 및 ν”„λ‘œμ νŠΈ ꡬ쑰

λ„ν˜•(Shape)κ³Ό λ Œλ”λ§ 방식(Renderer) 예제λ₯Ό 톡해 좔상적인 λ„ν˜• κ°œλ…κ³Ό ꡬ체적인 그리기 κ΅¬ν˜„μ„ λΆ„λ¦¬ν•˜λŠ” 과정을 λ³΄μ—¬λ“œλ¦½λ‹ˆλ‹€. λͺ¨λ“  μ½”λ“œλŠ” bridge_example.py 파일 ν•˜λ‚˜μ— λ‹΄κ² μŠ΅λ‹ˆλ‹€.