SOLID 5원칙

단일 책임 원칙 SRP

하나의 컴포넌트는 하나의 일만 수행해야 하며

그 컴포넌트의 모든 코드는 하나의 일을 수행하는데에 집중해야한다

하지만 정확히 말하면 컴포넌트를 변경 하는 이유는 하나여야된다 가 더욱 정확하다

이 원칙을 지키게 된다면 좋은 점은 컴포넌트의 책임 영역이 명확하기 때문에

한 기능을 수정했을 때 다른 기능도 수정해야하는 연쇄 작용을 일으키지 않는다.

그렇기 때문에 이 원칙을 지키면 가독성, 유지보수성을 챙길 수 있다

개방 폐쇄 원칙 OCP

확장에는 열려있고 수정에는 닫혀있어야한다

풀어말하면 확장을 할 때 기본 구성 요소를 변경하지 않아야 하고

수정을 할 때도 하나를 수정했을 때 다른 요소도 수정하는 연쇄 작용이 일어나지 않아야 한다

리스코프 치환 원칙 LSP

어느 한 함수의 매개변수가 있다고 할 때 그 매개변수의

상위 타입을 하위 타입으로 치환했을 때에도 잘 작동해야된다는 원칙

인터페이스 분리 원칙 ISP

클라이언트에서 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙이다

그니까 인터페이스를 이제 필요한 것만 만들어서 잘 구현해서 사용하자

의존성 역전 원칙 DIP