MAIN/Java & Spring
[Spring] OOP: SOLID μμΉ
ννΈ
2025. 3. 26. 03:26
Object-Oriented Programming
π κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μν λ€μ― κ°μ§ μ€μν μ€κ³ μμΉμ SOLID μμΉμ΄λΌκ³ νλ€.
*λ보기λ κ΄λ ¨ μμμ
1. Single Responsibility Principle (λ¨μΌ μ± μ μμΉ)
- νλμ ν΄λμ€λ λ¨ νλμ μ± μλ§ κ°μ ΈμΌ νλ€.
- μ¦, μ¬λ¬ κΈ°λ₯μ ν ν΄λμ€μμ μ²λ¦¬νμ§ μλλ€.
λ보기
β μ 보 μ μ₯ κΈ°λ₯κ³Ό μ 보 μΆλ ₯ κΈ°λ₯μ λ³λμ ν΄λμ€λ‘ λΆλ¦¬
2. Open/Closed Principle (κ°λ°©-νμ μμΉ)
- νμ₯μλ μ΄λ € μκ³ , μμ μλ λ«ν μμ΄μΌ νλ€.
- μ¦, κΈ°μ‘΄ μ½λλ₯Ό λ³κ²½νμ§ μκ³ μλ‘μ΄ κΈ°λ₯μ μΆκ°ν μ μλλ‘ μ€κ³νλ€.
λ보기
β 쑰건문 λμ , μΈν°νμ΄μ€λ μΆμ ν΄λμ€λ₯Ό μ¬μ©νμ¬ μλ‘μ΄ κΈ°λ₯μ νμ₯
3. Liskov Substitution Principle (리μ€μ½ν μΉν μμΉ)
- μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€λ₯Ό λ체ν μ μμ΄μΌ νλ€.
- μ¦, λΆλͺ¨ ν΄λμ€λ₯Ό μ¬μ©νλ κ³³μμ μμ ν΄λμ€λ₯Ό λ£μ μ μκ² νλ€.
λ보기
β Rectangleμ μμν Squareκ° λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ μμ μΌλ‘ λμνλλ‘ λ³΄μ₯
4. Interface Segregation Principle (μΈν°νμ΄μ€ λΆλ¦¬ μμΉ)
- ν΄λΌμ΄μΈνΈκ° μμ μ΄ μ¬μ©νμ§ μλ μΈν°νμ΄μ€μ μμ‘΄νμ§ μλλ‘ νλ€.
- μ¦, ν° μΈν°νμ΄μ€λ₯Ό μ¬λ¬ κ°μ μμ μΈν°νμ΄μ€λ‘ λλλ€.
λ보기
β Animal μΈν°νμ΄μ€μ fly() λ©μλλ₯Ό λ£μ§ μκ³ , Bird μΈν°νμ΄μ€μμλ§ fly()λ₯Ό μ μ
5. Dependency Inversion Principle (μμ‘΄ μμ μμΉ)
- κ³ μμ€ λͺ¨λ(λΉμ¦λμ€ λ‘μ§)μ΄ μ μμ€ λͺ¨λ(λ°μ΄ν°λ² μ΄μ€)μ μμ‘΄νμ§ μλλ‘ νλ€.
- μ¦, μΆμν(μΈν°νμ΄μ€)μ μμ‘΄ν΄μΌ νκ³ , ꡬ체μ μΈ κ΅¬ν체μ μμ‘΄νμ§ μλλ€.
λ보기
β Database ν΄λμ€λ₯Ό μ§μ μ¬μ©νμ§ μκ³ , μΈν°νμ΄μ€λ₯Ό λ§λ€μ΄ ꡬν ν΄λμ€λ₯Ό μ£Όμ