SRP (Single Responsibility Principle) 단일 책임 원칙
- 어떤 클래스를 변겨앻야 하는 이유는 오직 하나뿐이어야 한다.
- 클래스가 다수의 책임을 가지게 되면 ㅋ드의 이해도가 저하되고 유지보수가 어려워 진다.
OCP (Open-Closed Principle) 개방 폐쇄 원칙
- 자신의 확장에는 개방돼 있고, 주변의 변화에 대해서는 폐쇄돼 있어야 한다.
- 기존의 코드를 변경하지 않으면서 기능을 확장할 수 있어야 한다.
LSP (Liskov Substitution Principle) 리스코프 치환 원칙
- 서브 타입은 언제나 자신의 상위 타입으로 교체할 수 있어야 한다.
- 상위 클래스가 요구하는 인터페이스를 모두 만족해야 합니다.
ISP (Interface Segregation Principle) 인터페이스 분리 원칙
- 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 된다.
- 인터페이스는 클라이언트에 필요한 기능만 제공해야 한다.
DIP (Dependency Inversion Principle) 의존 역전 원칙
- 추상화된 것은 구체적인 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다.
- 부모 클래스는 자식 또는 구체화된 클래스에 의존하면 안 된다는 의미입니다.