μ΄λ κ² κ΅¬ννλκ² λ§λκ±ΈκΉ? λΌκ³ μκ°νλ κ³ λ―Όμ΄ λ§μκ±΄λ° μμΉλ¦¬ μμ΄μ κ³ λ―Όνλ κ²½μ°κ° λ§μ΄ 보μ΄λκ² κ°μ
μμ μ κ°λ° μμΉμ μΈμ°λλ° μμ΄μ μ€μν μ°Έκ³ κ° λ μλ μλ κΈμ 곡μ ν¨
μ£Όμν μ μ λμμΈν¨ν΄μ λ°λ³΅λλ λ¬Έμ ν΄κ²°, μ μ°μ±, μμ¬μν΅μ μν΄ μ§λκ²μ
λ°λλ‘λ§νλ©΄ OOPλ₯Ό κ·Όλ³Έμ μΌλ‘ μ΄ν΄νμ§ λͺ»ν΄μ μ μΈκ°μ§μ€ νλλΌλ ν΄λΉλλ©΄ μ΄λκ° λμ¬κ° λΉ μ Έμλ€λκ²μ΄λΌ
μ λ§ν¬μ λ΄μ©μ€ μΌλΆλ₯Ό μΈμ©νλ©΄
βλμμΈ ν¨ν΄μ μ μ©ν λμλ λκ°κ° λ°λ₯΄κΈ° λ§λ ¨μΈλ°, ... μλ‘κ±°λ μ°Έμ νλ€λ μ΄μ λ§μΌλ‘ ν¨ν΄μ μ¬μ©νμ§λ λ§κ³ , νμν λλ§ μ¬μ©νμΈμ.β
κ·Έλ¦¬κ³ OOPλ₯Ό νλμ μ°λ μ΄μ λ λͺ»νλ νλ‘κ·Έλλ¨Έλ€μ΄ μ½λλ₯Ό μ§°μλ μ μ κ²μλ‘λ 컨νΈλ‘€ν μμλ? κ° μ£Ό μ΄μ μΈκ²μ λͺ
μ¬νμΌλ©΄ μ’κ² μ

λμμΈ ν¨ν΄/OOPλ³΄λ€ μ€μν κ²μ SOLIDλΌ μκ°
OOPμ μμΉμ΄ μ리λμ
@κΈμ΄ Indie(222.107) μ ννκ²λ OODμ μμΉμ΄ SOLIDκ³ SOLIDκ° μ μλ μλ¬Έμλ OOPλΌλ κ°λ μ΄ μκΈ΄ ν©λλ€
@tazo λ‘ κΈ°μ΅νκ³ μμ΄μ(ν΄λ¦° μλ¦¬μ¦ μμ μ λμ΄, SOLIDμ°½μμκ° μ) κ²μν΄λ³΄λ OOPμ μμΉμ΄λΌκ³ μ€λͺ νλ κΈλ λ§μ΄ μλ€μ
SOLIDμμ κ°μ₯ μ€μν 첫 λ²μ§Έ μμΉμ SRP(λ¨μΌ μ± μ μμΉ)λ‘, λͺ¨λ, ν΄λμ€ λλ ν¨μκ° μ€μ§ ν κ°μ§λ§ μ± μμ§λ©° λ‘μ§μ νΉμ λΆλΆλ§ μΊ‘μνν κ²μ λͺ μν©λλ€. μ λ§ν¬μ μλ λ΄μ© μ€μ λμ¨ λ΄μ©μΈλ° κ°μ₯ μ€μνμ§λ μκ³ , μ μλ μ ννκ²λ λ³κ²½μ μ΄μ λ νλμ¬μΌλ§ νλ€ -> νμ΄μ μ°λ©΄(λμ€μ μ°½μμκ° μ€ν΄κ° λ§λ€κ³ μ¬μ μν¨) νλμ μ‘ν°λ§μ΄ κ·Έ μ½λλ₯Ό λ³κ²½νλλ‘ μꡬν΄μΌ νλ€ μ λλ€
μ λν° μ¬λ΄μμ ν΄μνκ³ μ μ©νκ³ μλ건 λ€λ₯Έκ°λ΄ μ μ΄μ λλΆλΆμ κ°λ μ΄ κ³μ μ¬μ μλλκ² λ¨μΌ μ± μ μμΉμ μ΅μ’ μ μΌλ‘ μ μ λ΄λ¦°κ² κ°μ μ΄μ λ‘ λ°λλ μ½λλ νλλ‘ λͺ¨μΌκ³ λ€λ₯Έ μ΄μ λ‘ λ°λλ μ½λλ λλλΌκ³ νκ³ μ¬μ€ μ΄λ§μ λ λͺ¨νΈνκ³ μλ©ν μμΉμ νμ¬λ κ°μΈμ΄ κ°λ°ν λ μμΉμΈμ°λκ² λ μ€μνκ±°λΌ μ΄λ€ μμΉμ΄λ λ³ΈμΈλ€μ΄ μλ€λ₯΄κ³ λ€λ€λ₯Έ μ½λ μ§κ³ μλ μ¬λμ΄ ν νΈλμ΄κΈ°μ μ κΈμ κ·Έλ°μ¬λλ€μ μν κΈμ
μ¬μ§μ΄ μμμ체λ OOPμ ν΅μ¬ κ°λ μ€ νλμΈλ°λ νλ OOPμμλ μμμ μ΅λν μνλκ² μ’λ€λκ² μ£Όλ₯ μ견μ΄λΌ κ΅μ₯ν κ³ λ―Όν΄μ μμν΄μΌ νλκ² μμΉμΈλ° νλ μΈμ΄μμ μμμ 쑰건μ΄λ μ νμ΄ λ무 μμ΄μ μ΄λ³΄λ 무μ§μ±μΌλ‘ μμλ°κΈ° μΌμ€μΈλ° μ¬μ€ μμμ체λ₯Ό μμ μμ°κ² νλκ² μ€νλ € λ μ’μ μ½λκ° λμ€κΈ°λν¨
@κΈμ΄ Indie(222.107) μ μλ μ λͺ¨λ₯΄κ² ꡬ.. νμλ ν΅μ¬ κ°λ μ λ§μ§λ§ κ·Έλ λ€κ³ μμμ ν΄λΌλ μλλΌμ κ·Έλ μ΅λλ€ μμλ³΄λ¨ κ΅¬μ±(Composition), ꡬν(interface implement)μ΄ λλΆλΆμ κ²½μ° λμκ²λ λ§μμ κ²°κ΅ μ¬κΈ°μ 곡ν΅μ μ μμ‘΄μ±μ
SOLIDλ₯Ό λ νμλ©΄.. κ²°κ΅ κ΅¬μ²΄μ μ΄κ³ μμ£Ό λ³νλ κ²(=λΆμμ μ )μ μμ‘΄νμ§ λ§κ³ , μΆμμ μ΄κ³ λ³νμ§ μλ κ²(=μμ μ )μ μμ‘΄νλΌλ‘ μ€μΌ μ μμ΅λλ€ κ·Έλ¦¬κ³ μμ κ°λ° μ² νμ λ€μ λ§νμλ©΄ OOPκ° μλλΌ(κ°μ²΄μ§ν₯ μΈμ΄κ° μλμ΄λ μ μ© λ¨) λ μμ λ¨κ³μΈ ν΄λ¦° μννΈμ¨μ΄ μ΄λ‘ μ΄μμ
(ν΄λ¦° μννΈμ¨μ΄λΌλκ² μ§μ§ ν΄λ¦°(=κΉ¨λν) μννΈμ¨μ΄λΌλκ² μλλΌ.. SOLID μ°½μμ μ·¨ν₯μΌλ‘ μ΄μμ μ΄κ³ μ’λ€λ μ·¨μ§λ‘ cleanμ λΆμΈ κ²)
μ΄λ€ μλλ‘ λ³΄μλμ§ λͺ¨λ₯΄κ² λλ° μ°Έκ³ ν κ±°λ©΄ μ λν° κ³΅μκΈμ μ°Έκ³ νκ³ λ΄κ° κΈμ΄ λ³Έλ¬Έ μλλ OOP μ΄ν΄λκ° λΆμ‘±νμ¬λμ μ λν°κ° λ°μλ리λ μ리λ μμΉμ μ°Έκ³ νλΌλ μλλ‘ μ¬λ¦°κ²μ λ§ν¬κ° OOP λΌκ³ μΈκΈνμ λ μμ