<aside>

</aside>


🌟 챕터 μ†Œκ°œ

μ•ˆλ…•ν•˜μ„Έμš”, μ—¬λŸ¬λΆ„! 😊 μ˜€λŠ˜μ€ 생성 νŒ¨ν„΄μ˜ λ§ˆμ§€λ§‰ 주자, **ν”„λ‘œν† νƒ€μž… νŒ¨ν„΄(Prototype Pattern)**에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ³΅μ‚¬κΈ°μ²˜λŸΌ, ν”„λ‘œν† νƒ€μž… νŒ¨ν„΄μ€ 이미 μ‘΄μž¬ν•˜λŠ” 객체(원본, ν”„λ‘œν† νƒ€μž…)λ₯Ό λ³΅μ‚¬ν•΄μ„œ μƒˆλ‘œμš΄ 객체λ₯Ό λ§Œλ“œλŠ” νŒ¨ν„΄μž…λ‹ˆλ‹€. πŸ–¨οΈ 객체 생성 λΉ„μš©μ΄ λΉ„μ‹Έκ±°λ‚˜ λ³΅μž‘ν•œ μ΄ˆκΈ°ν™” 과정이 ν•„μš”ν•  λ•Œ, 원본을 λ³΅μ‚¬ν•΄μ„œ ν•„μš”ν•œ λΆ€λΆ„λ§Œ μˆ˜μ •ν•˜λ©΄ 훨씬 효율적이죠. μ–΄λ–»κ²Œ 객체λ₯Ό '볡제'ν•΄μ„œ λΉ λ₯΄κ³  효율적으둜 λ§Œλ“œλŠ”μ§€, ν•¨κ»˜ μ•Œμ•„λ³ΌκΉŒμš”? ✨


🎯 챕터 λͺ©ν‘œ

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

  1. ν”„λ‘œν† νƒ€μž… νŒ¨ν„΄μ˜ μ˜λ„(κΈ°μ‘΄ 객체 λ³΅μ‚¬λ‘œ μƒˆ 객체 생성)λ₯Ό μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. 이 νŒ¨ν„΄μ΄ ν•΄κ²°ν•˜λŠ” 문제(λΉ„μ‹Ό 생성 λΉ„μš©, λ³΅μž‘ν•œ μ΄ˆκΈ°ν™”)λ₯Ό 식별할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μ£Όμš” μ°Έμ—¬μž(Prototype, ConcretePrototype, Client)와 각자의 역할을 μ΄ν•΄ν•©λ‹ˆλ‹€.
  4. Pythonμ—μ„œ **얕은 볡사(shallow copy)**와 **κΉŠμ€ 볡사(deep copy)**λ₯Ό μ΄ν•΄ν•˜κ³  ν™œμš©ν•©λ‹ˆλ‹€.
  5. ν”„λ‘œν† νƒ€μž… νŒ¨ν„΄μ˜ 이점(μ„±λŠ₯ ν–₯상, μœ μ—°μ„±)을 μ΄ν•΄ν•©λ‹ˆλ‹€.
  6. λ‹€λ₯Έ 생성 νŒ¨ν„΄κ³Όμ˜ 차이점을 μ΄ν•΄ν•©λ‹ˆλ‹€.

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

κ²Œμž„ 캐릭터 슀폰 예제λ₯Ό 톡해, λ™μΌν•œ 적 캐릭터λ₯Ό μ—¬λŸ¬ 마리 μƒμ„±ν•˜λŠ” 상황에 ν”„λ‘œν† νƒ€μž… νŒ¨ν„΄μ„ μ μš©ν•΄ λ΄…λ‹ˆλ‹€. λͺ¨λ“  μ½”λ“œλŠ” prototype_example.py 파일 ν•˜λ‚˜μ— λ‹΄κ² μŠ΅λ‹ˆλ‹€.