<aside>

</aside>


🌟 챕터 μ†Œκ°œ

μ•ˆλ…•ν•˜μ„Έμš”, μ—¬λŸ¬λΆ„! 😊 μ˜€λŠ˜μ€ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ 획기적으둜 μ€„μ΄λŠ” 비법, **ν”ŒλΌμ΄μ›¨μ΄νŠΈ νŒ¨ν„΄(Flyweight Pattern)**에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 'Flyweight'λŠ” ꢌ투의 κ²½λŸ‰κΈ‰μ„ μ˜λ―Έν•˜μ£ ? πŸ₯Š 이 νŒ¨ν„΄μ€ 말 κ·ΈλŒ€λ‘œ 객체λ₯Ό μ•„μ£Ό κ°€λ³κ²Œ λ§Œλ“€μ–΄ μ‚¬μš©ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

κ²Œμž„μ—μ„œ 수천 그루의 λ‚˜λ¬΄λ₯Ό κ·Έλ¦¬κ±°λ‚˜, μ›Œλ“œ ν”„λ‘œμ„Έμ„œμ—μ„œ μˆ˜μ‹­λ§Œ 개의 κΈ€μžλ₯Ό ν‘œν˜„ν•  λ•Œ, 각 μš”μ†Œλ₯Ό λͺ¨λ‘ 독립적인 객체둜 λ§Œλ“€λ©΄ μ–΄λ§ˆμ–΄λ§ˆν•œ λ©”λͺ¨λ¦¬κ°€ ν•„μš”ν•  κ±°μ˜ˆμš”. 🀯 ν”ŒλΌμ΄μ›¨μ΄νŠΈ νŒ¨ν„΄μ€ 이럴 λ•Œ, λΉ„μŠ·ν•œ 객체듀이 κ³΅μœ ν•  수 μžˆλŠ” 정보λ₯Ό μ΅œλŒ€ν•œ κ³΅μœ ν•˜μ—¬ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ 크게 μ€„μ΄λŠ” μ˜λ¦¬ν•œ 방법을 μ œκ³΅ν•©λ‹ˆλ‹€! ✨


🎯 챕터 λͺ©ν‘œ

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

  1. ν”ŒλΌμ΄μ›¨μ΄νŠΈ νŒ¨ν„΄μ˜ μ˜λ„(곡유λ₯Ό 톡해 λ§Žμ€ 수의 μž‘μ€ 객체듀을 효율적으둜 지원)λ₯Ό μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. 이 νŒ¨ν„΄μ΄ ν•΄κ²°ν•˜λŠ” 문제(μˆ˜λ§Žμ€ μœ μ‚¬ 객체둜 μΈν•œ κ³Όλ„ν•œ λ©”λͺ¨λ¦¬ μ‚¬μš©)λ₯Ό 식별할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 객체의 μƒνƒœλ₯Ό **λ‚΄μž¬μ  μƒνƒœ(Intrinsic State)**와 **μ™Έμž¬μ  μƒνƒœ(Extrinsic State)**둜 κ΅¬λΆ„ν•˜κ³  μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. μ£Όμš” μ°Έμ—¬μž(Flyweight, FlyweightFactory λ“±)와 각자의 역할을 μ΄ν•΄ν•©λ‹ˆλ‹€.
  5. ν”ŒλΌμ΄μ›¨μ΄νŠΈ νŒ©ν† λ¦¬κ°€ 객체 곡유λ₯Ό μ–΄λ–»κ²Œ 보μž₯ν•˜λŠ”μ§€ μ΄ν•΄ν•©λ‹ˆλ‹€.
  6. Pythonμ—μ„œ ν”ŒλΌμ΄μ›¨μ΄νŠΈ νŒ¨ν„΄μ„ κ΅¬ν˜„ν•˜κ³  ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  7. ν”ŒλΌμ΄μ›¨μ΄νŠΈ νŒ¨ν„΄μ˜ μž₯점(λ©”λͺ¨λ¦¬ μ ˆμ•½)κ³Ό 단점(μ½”λ“œ λ³΅μž‘μ„± 증가)을 μ΄ν•΄ν•©λ‹ˆλ‹€.

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

κ²Œμž„ μ•„μ΄ν…œ 예제λ₯Ό 톡해, μ•„μ΄ν…œμ˜ 곡톡 μ •λ³΄λŠ” κ³΅μœ ν•˜κ³  고유 μ •λ³΄λ§Œ κ°œλ³„ κ΄€λ¦¬ν•˜μ—¬ λ©”λͺ¨λ¦¬λ₯Ό μ ˆμ•½ν•˜λŠ” 방법을 λ³΄μ—¬λ“œλ¦½λ‹ˆλ‹€. λͺ¨λ“  μ½”λ“œλŠ” flyweight_example.py 파일 ν•˜λ‚˜μ— λ‹΄κ² μŠ΅λ‹ˆλ‹€.