<aside>

</aside>


🌟 챕터 μ†Œκ°œ

μ•ˆλ…•ν•˜μ„Έμš”, μ—¬λŸ¬λΆ„! 😊 μ˜€λŠ˜μ€ λΆ€λΆ„(part)κ³Ό 전체(whole)λ₯Ό λ™μΌν•œ λ°©μ‹μœΌλ‘œ λ‹€λ£¨κ²Œ ν•΄μ£ΌλŠ” **μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern)**에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ»΄ν“¨ν„°μ˜ 파일 μ‹œμŠ€ν…œμ„ μƒκ°ν•΄λ³΄μ„Έμš”. 폴더 μ•ˆμ—λŠ” νŒŒμΌλ„ 있고, 또 λ‹€λ₯Έ 폴더도 있죠. ν•˜μ§€λ§Œ μš°λ¦¬λŠ” 폴더든 νŒŒμΌμ΄λ“  '크기λ₯Ό λ³Έλ‹€'λŠ” λ™μΌν•œ μž‘μ—…μ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이처럼 **κ°œλ³„μ μΈ μš”μ†Œ(잎, Leaf)**와 κ·Έ **μš”μ†Œλ“€μ„ λ‹΄λŠ” κ·Έλ£Ή(κ°€μ§€, Composite)**을 κ΅¬λ³„ν•˜μ§€ μ•Šκ³  λ™μΌν•œ μΈν„°νŽ˜μ΄μŠ€λ‘œ μ²˜λ¦¬ν•˜κ³  싢을 λ•Œ, μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄μ΄ μ•„μ£Ό μœ μš©ν•©λ‹ˆλ‹€. κ°œλ³„ λΆ€ν’ˆκ³Ό 전체 μ‘°λ¦½ν’ˆμ„ μ–΄λ–»κ²Œ μΌκ΄€λ˜κ²Œ λ‹€λ£¨λŠ”μ§€ ν•¨κ»˜ μ•Œμ•„λ΄…μ‹œλ‹€! 🎁


🎯 챕터 λͺ©ν‘œ

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

  1. μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄μ˜ μ˜λ„(객체듀을 트리 ꡬ쑰둜 κ΅¬μ„±ν•˜μ—¬, κ°œλ³„ 객체와 볡합 객체λ₯Ό λ™μΌν•˜κ²Œ 처리)λ₯Ό μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. 이 νŒ¨ν„΄μ΄ ν•΄κ²°ν•˜λŠ” 문제(λΆ€λΆ„-전체 계측 ꡬ쑰λ₯Ό 일관성 없이 λ‹€λ£¨λŠ” 문제)λ₯Ό 식별할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μ£Όμš” μ°Έμ—¬μž(Component, Leaf, Composite, Client)와 각자의 역할을 μ΄ν•΄ν•©λ‹ˆλ‹€.
  4. μž¬κ·€μ μΈ ꡬ쑰와 μž‘μ—… μœ„μž„μ„ μ–΄λ–»κ²Œ ν™œμš©ν•˜λŠ”μ§€ μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  5. Pythonμ—μ„œ μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄μ„ κ΅¬ν˜„ν•˜κ³  ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  6. μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄μ˜ 이점(ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œ λ‹¨μˆœν™”, μƒˆλ‘œμš΄ μ»΄ν¬λ„ŒνŠΈ μΆ”κ°€ μš©μ΄μ„±)을 μ΄ν•΄ν•©λ‹ˆλ‹€.

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

온라인 μƒμ μ˜ μƒν’ˆκ³Ό 묢음 μƒν’ˆ 예제λ₯Ό 톡해 κ°œλ³„ μƒν’ˆ(Leaf)κ³Ό 묢음 μƒν’ˆ(Composite)의 가격을 λ™μΌν•œ λ°©μ‹μœΌλ‘œ κ³„μ‚°ν•˜λŠ” 과정을 λ³΄μ—¬λ“œλ¦½λ‹ˆλ‹€. λͺ¨λ“  μ½”λ“œλŠ” composite_example.py 파일 ν•˜λ‚˜μ— λ‹΄κ² μŠ΅λ‹ˆλ‹€.