SOLIDλ?
μμ€ν μ μλ‘μ΄ μꡬμ¬νμ΄λ λ³κ²½μ¬νμ΄ μμ λλ μ μ°νκ² λ체νκ³ νμ₯μ± μλ μμ€ν ꡬ쑰λ₯Ό λ§λλ κ²μ΄λ€.
SOLID μμ€ν μ μ μ©νλ€? = 리ν©ν λ§μ μμλλ μκ°μ μ€μ¬μ νλ‘μ νΈ κ°λ°μ μμ°μ±μ λμΌ μ μλ€.
S - λ¨μΌ μ± μ μμΉ
SPR, Single Responseibility Principle
"ν΄λμ€λ νλμ μ± μλ§ κ°μ ΈμΌ νλ€"
- ν ν΄λμ€λ νλμ μ± μλ§ κ°μ ΈμΌ νλ€. μ΄λ‘ μΈν΄ ν΄λμ€κ° λ³κ²½λμ΄μΌ νλ μ΄μ λ λ¨ νλλΏμ΄μ΄μΌ ν¨
- ν΄λμ€μ μν μ λͺ νν νμ¬ λ³κ²½μ λ°λ₯Έ νκΈ ν¨κ³Όλ₯Ό μ΅μνν μ μμ
O - κ°λ°©/νμ μμΉ
OCP, Open/Closed Principle
"νμ₯μλ μ΄λ € μμ΄μΌ νκ³ , λ³κ²½μλ λ«ν μμ΄μΌ νλ€"
- κΈ°μ‘΄ μ½λλ₯Ό μμ νμ§ μκ³ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μ μλλ‘ μ€κ³ν΄μΌ ν¨
- μΆμνμ λ€νμ±μ μ νμ©νμ¬ μ΄ μμΉμ μ§ν¬ μ μμ
L - 리μ€μ½ν μΉν μμΉ
LSP, Liskov Subsitution Principle
"μμ ν΄λμ€λ μΈμ λ λΆλͺ¨ ν΄λμ€μ μν μ λ체ν μ μμ΄μΌ νλ€"
- μμ λ§μ μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ μν μ λ체ν μ μμ΄μΌ ν¨
- λΆλͺ¨ ν΄λμ€μμ κΈ°λνλ λμμ κ·Έλλ‘ μνν΄μΌ νλ©°, λΆλͺ¨ ν΄λμ€μ λͺ¨λ κΈ°λ₯μ μ§μν΄μΌ ν¨
- ex: μΈν°νμ΄μ€λ₯Ό ꡬννλ νμ ν΄λμ€λ μΈν°νμ΄μ€μ κ·μ½μ λͺ¨λ μ€μν΄μΌ ν¨
I - μΈν°νμ΄μ€ λΆλ¦¬ μμΉ
ISP, Interface Segregation Principle
"ν΄λΌμ΄μΈνΈλ μμ μ΄ μ¬μ©νμ§ μλ λ©μλμ μμ‘΄νλ©΄ μ λλ€"
- νλμ 컀λ€λ μΈν°νμ΄μ€λ³΄λ€λ μν λ³λ‘ μκ² λλ μΈν°νμ΄μ€κ° μ’μ
D - μμ‘΄ μμ μμΉ
DIP, Dependency Inversion Principle
"μμ λͺ¨λμ νμ λͺ¨λμ μμ‘΄νλ©΄ μ λλ©°, λ λ€ μΆμνμ μμ‘΄ν΄μΌ νλ€"
- ꡬν ν΄λμ€κ° μλ μΈν°νμ΄μ€λ μΆμ ν΄λμ€μμ μμ‘΄ν¨μΌλ‘μ¨ μ μ°μ±μ ν보ν μ μμ