Contents
요약- SOLID란? 객체지향 설계의 5가지 원칙입니다. 이 원칙을 이행한다면 코드의 유연성, 확장성, 유지보수성이 높아집니다.
1. SRP (단일 책임 원칙)
- 한 클래스는 하나의 책임만 가져야 한다!
코드의 가독성과 유지보수가 쉬워진다는 장점이 있습니다.
*책임: 클래스가 수행해야하는 역할

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

3. LSP(리스코프 치환 원칙)
- 서브타입은 언제나 기반 타입으로 교체할 수 있어야 한다!
자식 클래스가 부모 클래스의 역할을 대체할 수 있어야 한다는 의미입니다.
자식 클래스는 부모 클래스가 작동하는 방식과 일관된 작동을 보장해야합니다.

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

5. DIP (의존 역전 원칙)
- 상위 모듈은 하위 모듈에 의존해서는 안됩니다. + 두 모듈 다 추상화에 의존해야합니다.
인터페이스 or 추상 클래스에 의존하게 하여 결합도를 낮추고 유연성을 높이는 것이 목적입니다.

요약
SOLID의 특징
- 유연한 설계
- 유지보수성 증가
- 확장성 향상
참고 문헌
Share article