κ°μ²΄μ§ν₯ 5λ μμΉ
π μ μ
SRP(Single Responsiblity Principle) λ¨μΌ μ± μ μμΉ
μννΈμ¨μ΄μ μ€κ³ λΆν(ν΄λμ€, ν¨μ λ±)μ λ¨ νλμ μ± μλ§μ κ°μ ΈμΌ νλ€.
μ± μμ κΈ°λ₯μΌλ‘ ν΄μνλ©΄ λλ€.
OCP(Open-Closed Pinciple) κ°λ°©-νμ μμΉ
κΈ°μ‘΄μ μ½λλ₯Ό λ³κ²½νμ§ μκ³ (Closed), κΈ°λ₯μ μμ νκ±°λ μΆκ°ν μ μλλ‘(Open) μ€κ³ν΄μΌ νλ€.
λ³κ²½λλ κ²μ΄ 무μμΈμ§ μ΄μ μ λ§μΆλ€. μ¦, μμ£Ό λ³κ²½λλ λ΄μ©μ μμ νκΈ° μ½κ² μ€κ³νκ³ , μμ£Ό λ³κ²½λμ§ μλ κ²μ μμ λλ λ΄μ©μ μν₯μ λ°μ§ μλ κ².μ΄λ₯Ό μν΄ μΈν°νμ΄μ€λ₯Ό μμ£Ό μ¬μ©νλ€.
LSP(Liskov Substitution Principle) 리μ€μ½ν μΉν μμΉ
μμν΄λμ€λ λΆλͺ¨ν΄λμ€μμ κ°λ₯ν νμλ₯Ό μνν μ μμ΄μΌ νλ€.
μμ κ΄κ³μμλ μΌλ°ν κ΄κ³(IS-A)κ° μ±λ¦½ν΄μΌ νλ€. μΌλ°ν κ΄κ³μ μλ€λ κ²μ μΌκ΄μ±μ΄ μλ€λ κ²μ΄λ€.
DIP(Dependency Inversion Principle) μμ‘΄ μμ μμΉ
μμ‘΄ κ΄κ³λ₯Ό λ§Ίμ λ, λ³ννκΈ° μ¬μ΄ κ²λ³΄λ¨ λ³ννκΈ° μ΄λ €μ΄ κ²μ μμ‘΄ν΄μΌ νλ€λ μμΉμ΄λ€.
DIPλ₯Ό λ§μ‘±νλ€λ κ²μ μμ‘΄κ΄κ³λ₯Ό λ§Ίμ λ, ꡬ체μ μΈ ν΄λμ€λ³΄λ€ μΈν°νμ΄μ€λ μΆμν΄λμ€μ κ΄κ³λ₯Ό λ§Ίλλ€λ κ²μ μλ―Ένλ€.
ISP(Interface Segregation Principle)
μΈν°νμ΄μ€ λΆλ¦¬ μμΉν ν΄λμ€λ μμ μ΄ μ¬μ©νμ§ μλ μΈν°νμ΄μ€λ ꡬννμ§ λ§μμΌ νλ€. νλμ μΌλ°μ μΈ μΈν°νμ΄μ€λ³΄λ€λ, μ¬λ¬ κ°μ ꡬ체μ μΈ μΈν°νμ΄μ€κ° λ«λ€.