좋은 도구가 있어도 올바르게 사용하지 않으면 요리를 만든느 작업은 고될 수밖에 없다.
즉, 객체지향 언어를 이용해 객체지향 프로그램을 올바르게 설계해 나가는 방법이나 원칙을 SOLID.
SOLID
- SRP (Single Responsibility Priciple) : 단일 책임 원칙
- 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐
- OCP (Open Close Principle) : 개방 폐쇄 원칙
- 자신의 확장엔 열려 있고, 주변의 변화에 대해선 닫혀 있다.
- LSP (Liskov Substitution Principle) : 리스코프 치환 원칙
- 서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다.
- ISP (Interface Segregation Principle) : 인터페이스 분리 원칙
- 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 된다.
- DIP(Dependency Inversion Principle) : 의존 역전 원칙
- 자신보다 변하기 쉬운 것에 의존하지 마라.
SOLID는 객체 지향 4대 특성(캡!상추다) 특성을 발판으로 하고 있으며, 디자인 패턴의 뼈대이며, 스프링 프레임워크의 근간이다.
<aside>
👉 좋은 소프트웨어 설계란 무엇일까?
- 결합도는 낮추고 응집도를 높이는 것은 좋은 sw 설계다.
- 결합도가 낮으면 모듈 간의 상호 의존성이 줄어들어 객체의 재사용이나 수정, 유지보수가 용이하다.
- 응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져 재사용이나 기능의 수정, 유지보수가 용이하다.
</aside>
SOLID 정리
https://www.nextree.co.kr/p6960/
SRP - 단일 책임 원칙