SOLID

김인범's avatar
Nov 14, 2024
SOLID
Contents
요약
  • SOLID란? 객체지향 설계의 5가지 원칙입니다. 이 원칙을 이행한다면 코드의 유연성, 확장성, 유지보수성이 높아집니다.
 

1. SRP (단일 책임 원칙)

  • 한 클래스는 하나의 책임만 가져야 한다!
코드의 가독성과 유지보수가 쉬워진다는 장점이 있습니다.
책임: 클래스가 수행해야하는 역할
notion image
 

2. OCP (개방-폐쇄 원칙)

  • 소프트웨어 엔티티는 확장에는 열려 있어야 하지만, 변경에는 닫혀있어야 한다!
기존 코드를 수정하지 않고도 기능을 확장할 수 있어야 한다는 것입니다. 인터페이스 or 추상 클래스를 활용하여 확장 가능성을 열어두고, 기능 구현은 별도의 클래스로 처리하는 방식이 자주 사용됩니다.
 
notion image
 

3. LSP(리스코프 치환 원칙)

  • 서브타입은 언제나 기반 타입으로 교체할 수 있어야 한다!
자식 클래스가 부모 클래스의 역할을 대체할 수 있어야 한다는 의미입니다.
자식 클래스는 부모 클래스가 작동하는 방식과 일관된 작동을 보장해야합니다.
 
notion image
 

4. ISP (인터페이스 분리 원칙)

  • 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 한다!
하나의 커다란 인터페이스가 아닌 여러 개의 작은 인터페이스들로 분리하여, 클라이언트가 필요한 기능만 선택적으로 구현하도록 해야합니다.
 
notion image
 

5. DIP (의존 역전 원칙)

  • 상위 모듈은 하위 모듈에 의존해서는 안됩니다. + 두 모듈 다 추상화에 의존해야합니다.
인터페이스 or 추상 클래스에 의존하게 하여 결합도를 낮추고 유연성을 높이는 것이 목적입니다.
 
notion image
 

요약

💡
SOLID의 특징
  1. 유연한 설계
  1. 유지보수성 증가
  1. 확장성 향상
 

참고 문헌

Share article

taker