_

Always be tactful

개인 학습/자바 스프링

[Spring] OOP: SOLID 원칙

funczun 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 클래스를 직접 사용하지 않고, 인터페이스를 만들어 구현 클래스를 주입