SOLID μμΉ
SOLID μμΉ μκ°
SOLIDλ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°κ³Ό μ€κ³μ μ μ©λλ λ€μ― κ°μ§ κΈ°λ³Έ μμΉμ λνλ λλ€. μ΄λ¬ν μμΉλ€μ λ‘λ²νΈ λ§ν΄κ³Ό λ§μ΄ν΄ νλμ€μ μν΄ μκ°λμμΌλ©°, μννΈμ¨μ΄ μμ€ν μ λ ν¨μ¨μ μ΄κ³ μ μ§λ³΄μ κ°λ₯νκ² λ§λ€κΈ° μν λͺ©μ μ κ°μ§κ³ μμ΅λλ€.
1. SRP(Single Responsibility Principle) - λ¨μΌ μ± μ μμΉ
κ° ν΄λμ€λ λ¨ νλμ μ± μκ³Ό κΈ°λ₯μ κ°μ ΈμΌ ν©λλ€. μ΄κ²μ ν΄λμ€κ° λ³κ²½λμ΄μΌ νλ μ΄μ κ° νλ, μ¦ νλμ λ³νμλ§ μμ‘΄ν΄μΌ ν¨μ μλ―Έν©λλ€.
2. OCP(Open Closed Principle) - κ°λ°© νμ μμΉ
μννΈμ¨μ΄μ ꡬμ±μμλ νμ₯μλ κ°λ°©λμ΄ μμ΄μΌ νκ³ , μμ μ λν΄μλ νμλμ΄μΌ ν©λλ€. κΈ°μ‘΄ μ½λλ₯Ό μμ νμ§ μκ³ λ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μ μμ΄μΌ ν©λλ€.
3. LSP(Liskov Substitution Principle) - 리μ€μ½ν μΉν λ²μΉ
νμ ν΄λμ€λ μμ ν΄λμ€λ‘ λ체λ μ μμ΄μΌ ν©λλ€. μ΄λ μμ κ΄κ³μμ νμ ν΄λμ€λ μμ ν΄λμ€μ κΈ°λ₯μ λ³κ²½νμ§ μκ³ νμ₯ν μ μμ΄μΌ ν¨μ μλ―Έν©λλ€.
4. ISP(Interface Segregation Principle) - μΈν°νμ΄μ€ λΆλ¦¬ μμΉ
ν΄λΌμ΄μΈνΈλ μμ μ΄ μ¬μ©νμ§ μλ μΈν°νμ΄μ€μ μμ‘΄ν΄μλ μ λ©λλ€. μ¬λ¬ κΈ°λ₯μ΄ ν΅ν©λ νλμ μΈν°νμ΄μ€λ³΄λ€λ κ° κΈ°λ₯λ³λ‘ λΆλ¦¬λ μΈν°νμ΄μ€κ° λ λμμ μλ―Έν©λλ€.
5. DIP(Dependency Inversion Principle) - μμ‘΄μ± μμ λ²μΉ
μΆμνμ μμ‘΄ν΄μΌ νλ©°, ꡬ체νμ μμ‘΄ν΄μλ μ λ©λλ€. μμ ν΄λμ€λ νμ ν΄λμ€μ μ’ μλμ§ μμμΌ ν©λλ€.
SOLID μμΉ μ μ© μμ
1. SRP(Single Responsibility Principle) - λ¨μΌ μ± μ μμΉ
νλμ ν΄λμ€λ ν κ°μ§ μν λ§ μννλλ‘ μ€κ³λμ΄μΌ ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ μ μ§λ³΄μμ±μ΄ ν₯μλκ³ ν΄λμ€μ μν μ΄ λͺ νν΄μ§λλ€.
2. OCP(Open Closed Principle) - κ°λ°© νμ μμΉ
μ½λλ μμ μ λν΄μλ νμλμ΄ μκ³ , μλ‘μ΄ κΈ°λ₯ μΆκ°μλ κ°λ°©λμ΄ μμ΄μΌ ν©λλ€. μ΄λ₯Ό μν΄ μΈν°νμ΄μ€μ μΆμ ν΄λμ€λ₯Ό μ μ ν νμ©νμ¬ κΈ°λ₯μ νμ₯ν μ μλλ‘ ν©λλ€.
3. LSP(Liskov Substitution Principle) - 리μ€μ½ν μΉν λ²μΉ
μμ ν΄λμ€μ νμ ν΄λμ€ κ°μ μμ κ΄κ³μμ νμ ν΄λμ€λ μμ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λ©νκ±°λ λ³κ²½νμ§ μκ³ νμ₯ν μ μμ΄μΌ ν©λλ€.
4. ISP(Interface Segregation Principle) - μΈν°νμ΄μ€ λΆλ¦¬ μμΉ
μΈν°νμ΄μ€λ ν΄λΌμ΄μΈνΈκ° μ¬μ©νμ§ μλ λ©μλλ₯Ό ν¬ν¨νμ§ μμμΌ ν©λλ€. κ° ν΄λΌμ΄μΈνΈμ νμν κΈ°λ₯μ μ 곡νλ μμ μΈν°νμ΄μ€λ‘ λΆλ¦¬ν©λλ€.
5. DIP(Dependency Inversion Principle) - μμ‘΄μ± μμ λ²μΉ
μμ‘΄μ±μ μΆμνμ μμ‘΄ν΄μΌ ν©λλ€. μμ μμ€ λͺ¨λμ νμ μμ€ λͺ¨λμ μμ‘΄νμ§ μκ³ , λ λͺ¨λ μΆμνμ μμ‘΄ν΄μΌ ν©λλ€.
μ΄λ¬ν SOLID μμΉμ μ μ©ν¨μΌλ‘μ¨ μ½λμ κ°λ μ±, μ¬μ¬μ©μ±, μ μ§λ³΄μμ±μ΄ ν₯μλκ³ , μμ€ν μ΄ λ³νμ λμνκΈ° μ¬μμ§λλ€.
μ°Έκ³ μλ£:
'IT' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°μ΄ν° ꡬ쑰] μ°κ²° 리μ€νΈ(Linked lists) (0) | 2022.11.03 |
---|---|
[DATABASE] νΈλμμ μ 격리 μμ€μ΄λ? (0) | 2022.11.03 |
[Github] SSH λ₯Ό νμ©νμ¬ μ¬λ¬ κ³μ κ΄λ¦¬ λ°©λ² (0) | 2022.11.03 |
[λ°μ΄ν° ꡬ쑰] μ¬κ·(recursive) λ? (0) | 2022.11.03 |
[Linux] How to install NVIDIA Driver on Centos 8 (0) | 2022.11.03 |
λκΈ