본문 바로가기

개발일기/Spring

객체지향5원칙 SOLID

728x90
반응형

SOLID란?

 - > 객체지향 프로그래밍에서 SOLID 원칙은 소프트웨어 설계의 다섯 가지 기본 원칙을 나타냅니다. 이러한 원칙은 소프트웨어의 유연성, 확장성, 유지보수성을 향상시키고 코드의 재사용성을 높이는 데 도움이 됩니다.

 

  1. 단일 책임 원칙 (Single Responsibility Principle, SRP):
    • 클래스나 모듈은 단 하나의 책임을 가져야 합니다. 이것은 클래스가 변경되어야 하는 이유가 단 하나이어야 함을 의미합니다. 이를 통해 코드를 변경할 때 다른 부분에 영향을 미치지 않도록 하고, 코드의 이해와 유지보수를 쉽게 만듭니다.
  2. 개방-폐쇄 원칙 (Open-Closed Principle, OCP):
    • 소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 합니다. 즉, 새로운 기능이 추가되거나 요구사항이 변경될 때, 기존의 코드를 변경하지 않고도 새로운 기능을 추가할 수 있어야 합니다. 이는 주로 다형성, 추상화, 인터페이스 등을 통해 구현됩니다.
  3. 리스코프 치환 원칙 (Liskov Substitution Principle, LSP):
    • 자식 클래스는 부모 클래스의 기능을 대체할 수 있어야 합니다. 즉, 어떤 클래스의 인스턴스를 해당 클래스의 하위 클래스의 인스턴스로 대체해도 프로그램의 동작 방식은 변하지 않아야 합니다. 이는 상속과 다형성을 올바르게 사용하여 구현됩니다.
  4. 인터페이스 분리 원칙 (Interface Segregation Principle, ISP):
    • 클라이언트는 자신이 사용하지 않는 메서드에 의존하도록 강요받지 말아야 합니다. 큰 인터페이스를 여러 개의 작은 인터페이스로 분리함으로써 클라이언트는 자신이 필요로 하는 메서드만 사용할 수 있도록 합니다. 이는 클라이언트와 서버 간의 결합도를 낮추고 인터페이스의 응집도를 높이는 데 도움이 됩니다.
  5. 의존성 역전 원칙 (Dependency Inversion Principle, DIP):
    • 고수준 모듈은 저수준 모듈에 의존해서는 안 됩니다. 둘 다 추상화에 의존해야 합니다. 추상화는 구체적인 구현에 의존해서는 안 됩니다. 즉, 추상화(인터페이스, 추상 클래스 등)를 통해 의존성을 주입하고, 구체적인 구현은 이에 의존해야 합니다. 이를 통해 모듈 간의 결합도를 낮추고 유연성을 향상시킵니다.
728x90
반응형

'개발일기 > Spring' 카테고리의 다른 글

[Spring]싱글톤 컨테이너  (0) 2024.03.18
[Spring]BeanFactory , ApplicationContext  (0) 2024.03.18
[Spring] ApplicationContext  (0) 2024.03.15
IoC(제어의 역전)와 DI(의존성 주입)  (0) 2024.03.15
[Spring] Aop예제  (1) 2024.03.05