SOLID
SOLID μμΉμ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμ μννΈμ¨μ΄ μ€κ³μ μ μ°μ±κ³Ό μ μ§λ³΄μμ±μ λμ΄κ³ μ νλ 5κ°μ§ κΈ°λ³Έ μμΉμ μλ―Έν¨. μ΄ μμΉμ λ‘λ²νΈ λ§ν΄μ΄ μ μν μ€κ³ μ² νμΌλ‘, μννΈμ¨μ΄ μ€κ³μμ μμ‘΄μ± λ¬Έμ λ₯Ό μ€μ΄κ³ μ¬μ¬μ©μ±μ κ·Ήλννλ λ° μ΄μ μ λ§μΆ€.
1. S: λ¨μΌ μ±
μ μμΉ(Single Responsibility Principle, SRP)
μλ―Έ : ν΄λμ€λ λ¨ νλμ μ± μλ§ κ°μ ΈμΌ ν¨.
λͺ©ν : ν΄λμ€κ° νλμ λ³κ²½ μ΄μ λ§ κ°μ§λλ‘ λ§λ€μ΄ μ μ§λ³΄μλ₯Ό μ½κ²ν¨.
μμ:
μλͺ»λ μ€κ³ : νλμ ν΄λμ€κ° λ°μ΄ν°λ² μ΄μ€ μ²λ¦¬μ UI λ λλ§μ λͺ¨λ λ΄λΉ
μ¬λ°λ₯Έ μ€κ³ : λ°μ΄ν°λ² μ΄μ€ μ²λ¦¬μ UIλ λλ§μ λ³λμ ν΄λμ€λ‘ λΆλ¦¬
2. O: κ°λ°©-νμ μμΉ (Open/Closed Principle, OCP)
μλ―Έ : μννΈμ¨μ΄ μν°ν°(ν΄λμ€, λͺ¨λ, ν¨μ λ±)λ νμ₯μλ μ΄λ € μμ΄μΌ νμ§λ§ λ³κ²½μλ λ«νμμ΄μΌν¨.
λͺ©ν : κΈ°μ‘΄ μ½λλ₯Ό μμ νμ§ μκ³ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μ μλλ‘ μ€κ³ν¨.
μμ :
μλͺ»λ μ€κ³ : μλ‘μ΄ μꡬμ¬νμ΄ μκΈΈ λ κΈ°μ‘΄ ν΄λμ€μ μ½λλ₯Ό λ³κ²½
μ¬λ°λ₯Έ μ€κ³ : μΈν°νμ΄μ€λ μΆμ ν΄λμ€λ₯Ό ν΅ν΄ κΈ°λ₯μ νμ₯
3. L: 리μ€μ½ν μμΉ(Liskov Substitution Princilple, LSP)
μλ―Έ: μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ μν μ λ체ν μ μμ΄μΌ ν¨.
λͺ©ν : νλ‘κ·Έλ¨μ΄ λΆλͺ¨ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ¬μ©νλ κ²½μ°, μμ ν΄λμ€μ μΈμ€ν΄μ€λ‘ λ체ν΄λ λμμ λ¬Έμ κ° μμ΄μΌν¨.
μμ :
μλͺ»λ μ€κ³ : μμ ν΄λμ€κ° λΆλͺ¨ ν΄λ«μ λ©μλλ₯Ό 무ν¨ννκ±°λ μμΈλ₯Ό λ°μμν΄.
μ¬λ°λ₯Έ μ€κ³ : μμ ν΄λμ€κ° λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ¬λ°λ₯΄κ² μ¬μ μ
4. I: μΈν°νμ΄μ€ λΆλ¦¬ μμΉ(Interface Segregation Priciple, ISP)
μλ―Έ : νΉμ ν΄λΌμ΄μΈνΈκ° μ¬μ©νμ§ μλ λ©μλμ μμ‘΄νμ§ μλλ‘ μΈν°νμ΄μ€λ₯Ό λΆλ¦¬ν΄μΌν¨.
λͺ©ν : νμνμ§ μμ μΈν°νμ΄μ€μ λν μμ‘΄μ±μ μ€μ.
μμ :
μλͺ»λ μ€κ³ : νλμ μΈν°νμ΄μ€κ° λͺ¨λ λ©μλλ₯Ό ν¬ν¨νμ¬ νΉμ ꡬνμμ λΆνμν λ©μλκΉμ§ κ°μ
μ¬λ°λ₯Έ μ€κ³ : μν λ³λ‘ μΈν°νμ΄μ€λ₯Ό λΆλ¦¬νμ¬ κ° ν΄λΌμ΄μΈνΈκ° νμν λ©μλλ§ μ¬μ©.
5. D: μμ‘΄μ± μμ μμΉ(Dependency Inversion Principle, DIP)
μλ―Έ : κ³ μμ€ λͺ¨λμ΄ μ μμ€ λͺ¨λμ μμ‘΄ν΄μλ μλκ³ , λ λ€ μΆμνλ μΈν°νμ΄μ€μ μμ‘΄ν΄μΌ ν¨.
λͺ©ν : ꡬνμ΄ μλ μΆμνμ μμ‘΄ν¨μΌλ‘μ¨ λͺ¨λ κ° κ²°ν©λλ₯Ό μ€μ.
μμ :
μλͺ»λ μ€κ³ : μμ ν΄λμ€κ° νμ ν΄λμ€μ ꡬ체μ μΈ κ΅¬νμ μμ‘΄
μ¬λ°λ₯Έ μ€κ³ : μμ ν΄λμ€μ νμ ν΄λμ€ λͺ¨λ μΈν°νμ΄μ€λ μΆμ ν΄λμ€μ μμ‘΄
SOLID μμΉμ μ₯μ .
μ μ§λ³΄μμ± : μ½λλ₯Ό μμ νλλΌκ³ λ€λ₯Έ λΆλΆμ μν₯μ μ΅μν
μ¬μ¬μ©μ± : μ½λλ₯Ό λ€μν μν©μμ μ½κ² μ¬μ¬μ© κ°λ₯
νμ₯μ± : μλ‘μ΄ κΈ°λ₯ μΆκ°κ° μ©μ΄
κ°λ μ± : μ½λκ° λͺ ννκ³ μ§κ΄μ μΌλ‘ μμ±λ¨.
Last updated
Was this helpful?