SRP 단일책임원칙 - 클래스는 하나의 역할만해라
OCP 개방폐쇄원칙 - 인터페이스 하나에 구현체 여러개 만들어서 갈아끼워라 확장할때는 기존코드 건들면 안된다 구현체를 새로만들어라
LSP 리스코프치환원칙 - 자식은 부모 말 잘들어야한다. 부모의 역할 범위는 넘지말아라 잘 안될거같으면 엄마 아빠 부모 만들어서 한사람 말만 들어라
ISP 인터페이스분리원칙 - 인터페이스에 역할 짬뽕 되어있으면 클래스들도 망한다(SRP) 인터페이스도 역할 분리해라
DIP 의존역전원칙 - 인터페이스에 의존해라 구현체ㄴㄴ 테스트할때 바꿀거 많다
추가
IOC 제어의역전 - 매개변수를 받으면 역전당한거다 외부에서 주입해주니까 스프링의 경우 컨테이너