SOLID μμΉμ΄λ?
ν΄λ¦° μ½λ
μ μμΈ λ‘λ²νΈ λ§ν΄μ΄ μ 리ν κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μμΉ. μ’μ κ°μ²΄ μ§ν₯ μ€κ³λ₯Ό μν΄μ μ΄ μμΉλ€μ λ°λΌμΌ νλ€.
1. SRP(Single Responsiblity Principle) : λ¨μΌ μ± μ μμΉ
- νλμ ν΄λμ€λ νλμ μ± μμ λ°λΌμΌ νλ€ (ν΄λμ€μ κ΄μ¬μ¬κ° νλμΈ κ²)
- λ³κ²½μ΄ μΌμ΄λ¬μ λ λ³κ²½μ΄ μΌμ΄λ λΆλΆλ§ λ°λμ΄μΌ νλ€ (νκΈ ν¨κ³Όκ° μ μ΄μΌ νλ€)
2. OCP(Open/Closed Principle) : κ°λ°©-νμ μμΉ
- νμ₯μλ μ΄λ €μμ§λ§ λ³κ²½μλ λ«νμμ΄μΌ νλ€. - λ€νμ±
- μν κ³Ό ꡬνμ λΆλ¦¬νλ κ²μΌλ‘ μκ°νλ©΄ λλ€. (ꡬνμΌλ‘ νμ₯μ΄ κ°λ₯νμ§λ§, μΈν°νμ΄μ€κ° λ³νμ§ μλ ν λ€λ₯Έ κ³³μ λ³κ²½μ μμ)
- ꡬν κ°μ²΄λ₯Ό μμ±νκ³ μ°κ΄κ΄κ³λ₯Ό λ§Ίμ΄μ£Όλ λ³λμ 쑰립, μ€μ μκ° λμ νμνκ² λλ€.
3. LSP(Liskov Substitution Principle) : 리μ€μ½ν μΉν μμΉ
- κ°μ²΄λ νλ‘κ·Έλ¨μ μ νμ±μ κΉ¨λ¨λ¦¬μ§ μμΌλ©΄μ νμ νμ μ μΈμ€ν΄μ€λ‘ λ°κΏ μ μμ΄μΌ νλ€.
- λ€νμ±μμ μΈν°νμ΄μ€λ₯Ό ꡬνν ꡬν체λ μΈν°νμ΄μ€μ κ·μ½μ λ€ μ§μΌμΌ νλ€λ μλ―Έμ΄λ€.
4. ISP(Interface Segregation Principle): μΈν°νμ΄μ€ λΆλ¦¬ μμΉ
- λ²μ© μΈν°νμ΄μ€ νλ λ³΄λ€ νΉμ ν΄λΌμ΄μΈνΈλ₯Ό μν μΈν°νμ΄μ€ μ¬λ¬ κ°κ° λ«λ€.
- λΆλ¦¬νλ©΄ μΈν°νμ΄μ€κ° λͺ νν΄μ§κ³ , λ체 κ°λ₯μ±μ΄ λμμ§λ€.
5. DIP(Dependency Inverstion Principle): μμ‘΄κ΄κ³ μμ μμΉ
- ꡬν ν΄λμ€μ μμ‘΄νμ§ λ§κ³ μΈν°νμ΄μ€μ μμ‘΄ν΄μΌ νλκ².
- ꡬν체μ μμ‘΄νλ©΄ λ³κ²½μ΄ μ΄λ €μμ§κ² λλ€.
μμ‘΄μ± μ£Όμ
μ μ΄ μμΉμ λ°λ₯΄λ λ°©λ² μ€ νλ. μΆμνμΈ μΈν°νμ΄μ€μ μμ‘΄νλ―λ‘, μμ±μλ‘ κ΅¬ν체λ₯Ό κ°μλΌμΈ μ μλ€.