S : SRP(Single Reposibility Principle), λ¨μΌ μ± μ μμΉ
ν ν΄λμ€λ νλμ μ±
μλ§ κ°μ ΈμΌ νλ€.
μ€μν κΈ°μ€μ λ³κ²½μ΄λ€. λ³κ²½μ΄ λ°μν λ, νκΈν¨κ³Όκ° μ μΌλ©΄ λ¨μΌ μ± μ μμΉ, μ¦ SRP μμΉμ μ λ°λ₯Έ κ²μ΄λ€.
O : OCP(Open/Closed Principle), κ°λ°©·νμ μμΉ
νμ₯μλ μ΄λ €μμ΄μΌ νλ, λ³κ²½μλ λ«νμμ΄μΌ νλ€.
μλ‘μ΄ κΈ°λ₯μ μΆκ°νκ³ μΆμΌλ©΄, μμ νλ κ²μ΄ μλ, μΈν°νμ΄μ€λ₯Ό ꡬνν μλ‘μ΄ ν΄λμ€λ₯Ό νλ λ λ§λ€μ΄μ μλ‘μ΄ κΈ°λ₯μ ꡬννλ€.
ꡬν ν΄λμ€μ μ€νν΄λμ€λ₯Ό μ°κ²°ν΄μ£Όλ Config ν΄λμ€μ λ³κ²½λ§ μμΌλ©΄ λ³νλ₯Ό μ μ°νκ² ν μ μμΌλ©°, ꡬνν΄λμ€μμμ μ§μ μ μΈ μμ μ νμνμ§ μλ€.
L : LSP(Liskov Substitutuion Principle), 리μ€μ½ν μΉν λ²μΉ
νλ‘κ·Έλ¨μ κ°μ²΄λ, νλ‘κ·Έλ¨μ μ νμ±μ κΉ¨λ¨λ¦¬μ§ μμΌλ©΄μ νμ νμ μΈμ€ν΄μ€λ‘ λ°κΏ μ μμ΄μΌ νλ€.
λ€νμ±μμ νμν΄λμ€λ μΈν°νμ΄μ€ κ·μ½μ λ€ μ§μΌμΌ νλ€.
ex) μλμ°¨ μΈν°νμ΄μ€μ μμ μ μμΌλ‘ κ°λ₯ κΈ°λ₯μ΄λΌκ³ νμΌλ©΄, νμ ν΄λμ€μμ μμΌλ‘ κ°κ² ꡬνν΄μΌνμ§, λ€λ‘ κ°κ² ꡬννλ©΄ LSP μλ°
I : ISP(Interface Segregation Principle), μΈν°νμ΄μ€ λΆλ¦¬ λ²μΉ
ν΄λΌμ΄μΈνΈλ μμ μ΄ μ¬μ©νμ§ μλ λ©μλμ μμ‘΄κ΄κ³λ₯Ό λ§ΊμΌλ©΄ μλλ μμΉμ΄λ€.
λΉλν μΈν°νμ΄μ€λ³΄λ€ λ μκ³ κ΅¬μ²΄μ μΈ μΈν°νμ΄μ€λ‘ λΆλ¦¬ν΄μΌ νλ€.
μ¦, νΉμ ν΄λΌμ΄μΈνΈλ₯Ό μν μΈν°νμ΄μ€ μ¬λ¬κ°κ°, μ¬λ¬ κΈ°λ₯μ΄ ν©μ³μλ λ²μ© μΈν°νμ΄μ€ νλλ³΄λ€ λ«λ€.
D : DIP(Dependency Inversion Principle), μμ‘΄κ΄κ³ μμ μμΉ
ꡬν ν΄λμ€μ μμ‘΄νμ§ λ§κ³ , μΈν°νμ΄μ€(μν )μ μμ‘΄ν΄μΌνλ€.
κ·ΈλμΌ μ μ°νκ² κ΅¬ν체 λ³κ²½μ΄ κ°λ₯νλ€.
μΆμμ μΈ κ²μ μμ λ³΄λ€ κ΅¬μ²΄μ μΈ κ²μ μμ‘΄νμ§ μκ³ , λ³ννκΈ° μ¬μ΄ κ²μ μμ‘΄ν΄μλ μλλ€λ μμΉμ΄λ€.
ꡬν ν΄λμ€μλ ꡬνν΄λμ€κ° μμΌλ©΄ μλλ€. μ€μ§ μΆμνλ μΈν°νμ΄μ€λ§ μμ΄μΌ νλ©°, μ΄λ₯Ό μ°κ²°ν΄μ£Όλ Config ν΄λμ€λ₯Ό μ΄μ©νλ€.