π μ€λμ νμ΅ ν€μλ
- SOLID
π₯ SOLID(κ°μ²΄μ§ν₯ μ€κ³μμΉ)
- λ¨μΌ μ± μ μμΉ (Single Responsibiity Principle - SRP)
- κ°λ°©-νμ μμΉ (Open/Closed Principle - OCP)
- 리μ€μ½ν μΉν μμΉ (Liskov Substitution Principle - LSP)
- μΈν°νμ΄μ€ λΆλ¦¬ μμΉ (Interface Segregaion Principle - ISP)
- μμ‘΄ μμ μμΉ (Dependency Inversion Principle - DIP)
π₯ λ¨μΌ μ± μ μμΉ (SRP)
: μ΄ μμΉμ ν΄λμ€λ λͺ¨λμ νλμ μ± μλ§ κ°μ ΈμΌ νλ€λ κ²μ κ°μ‘°ν©λλ€.
: μ¦, ν΄λμ€κ° λ³κ²½λμ΄μΌ νλ μ΄μ λ ν΄λΉ ν΄λμ€κ° λ΄λΉνλ μ± μ λλ¬Έμ΄μ΄μΌ ν©λλ€.
: μ΄λ μ½λμ μμ§μ±μ λμ΄κ³ μ μ§λ³΄μλ₯Ό μ½κ² λ§λ€μ΄μ€λλ€.
π₯ κ°λ°©-νμ μμΉ (OCP)
: μννΈμ¨μ΄ μν°ν°λ νμ₯μ λν΄ μ΄λ € μμ΄μΌ νκ³ , λ³κ²½μ λν΄μλ λ«ν μμ΄μΌ ν©λλ€.
: μ΄λ μλ‘μ΄ κΈ°λ₯μ΄ μΆκ°λλλΌλ κΈ°μ‘΄μ μ½λλ₯Ό λ³κ²½νμ§ μκ³ νμ₯ν μ μλλ‘ νλ μμΉμ λλ€.
: μ£Όλ‘ μΈν°νμ΄μ€μ μΆμνλ₯Ό ν΅ν΄ μ΄λ₯Ό λ¬μ±ν©λλ€.
π₯ 리μ€μ½ν μΉν μμΉ (LSP)
: μ΄ μμΉμ μμ κ΄κ³μμ νμ ν΄λμ€λ μμ ν΄λμ€λ₯Ό λ체ν μ μμ΄μΌ νλ€λ κ²μ κ°μ‘°ν©λλ€.
: μ¦, μ½λμμ λΆλͺ¨ ν΄λμ€λ₯Ό μ¬μ©νλ κ³³μ μμ ν΄λμ€λ₯Ό λμ μ¬μ©ν΄λ λ¬Έμ κ° μμ΄μΌ νλ€λ κ²μ λλ€.
π₯ μΈν°νμ΄μ€ λΆλ¦¬ μμΉ (ISP)
: ν΄λΌμ΄μΈνΈλ μμ μ΄ μ¬μ©νμ§ μλ λ©μλμ μμ‘΄νμ§ μμμΌ ν©λλ€.
: ν° μΈν°νμ΄μ€λ μ¬λ¬ ν΄λΌμ΄μΈνΈλ€μ΄ λ€μν κΈ°λ₯μ μμ‘΄νκ² λ§λ€κΈ°λ³΄λ€,
: μμ μΈν°νμ΄μ€λ₯Ό λλμ΄ κ° ν΄λΌμ΄μΈνΈκ° νμλ‘ νλ λΆλΆλ§ μ¬μ©νλλ‘ νλ κ²μ΄ μ΄ μμΉμ ν΅μ¬μ λλ€.
π₯ μμ‘΄ μμ μμΉ (DIP)
: κ³ μμ€ λͺ¨λμ μ μμ€ λͺ¨λμ μμ‘΄ν΄μλ μλλ©°, μμͺ½ λͺ¨λ μΆμνμ μμ‘΄ν΄μΌ ν©λλ€.
: μ΄λ μμ‘΄μ± μ£Όμ κ³Ό κ΄λ ¨μ΄ μμΌλ©°, κ°μ²΄ κ°μ κ²°ν©μ μ€μ¬ μμ€ν μ λ μ μ°νκ³ νμ₯ κ°λ₯νκ² λ§λλλ€.
π μ€λμ νκ³
SOLID μμΉ λΏμ λ²λ €
'TIL' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
03/13(μ) λ΄μΌλ°°μμΊ ν Java 55μΌμ°¨ TIL - Spring AOP (0) | 2024.03.13 |
---|---|
03/12(ν) λ΄μΌλ°°μμΊ ν Java 54μΌμ°¨ TIL - QueryDSL (0) | 2024.03.12 |
03/08(κΈ) λ΄μΌλ°°μμΊ ν Java 52μΌμ°¨ TIL - @OneToOne (0) | 2024.03.08 |
03/07(λͺ©) λ΄μΌλ°°μμΊ ν Java 51μΌμ°¨ TIL - Cascade, orphanRemoval (0) | 2024.03.07 |
03/06(μ) λ΄μΌλ°°μμΊ ν Java 50μΌμ°¨ TIL - ORM (0) | 2024.03.06 |