⭐다시 스프링으로 스프링은 다음 기술로 다형성 + OCP / DIP를 가능하게 지원 DI(Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 클라이언트 코드의 변경 없이 기능 확장 쉽게 부품을 교체하듯이 개발 모든 설계에 역활과 구현을 분리 애플리케이션 설계도 공연을 설계 하듯 배역만 만들어두고, 배우는 언제든지 유연하게 변경할 수 있게 만드는 것이 좋은 객체 지향 설계이다. 이상적으로는 모든 설계에 인터페이스를 부여하는 것 어떤 DB를 쓸지 정해지지 않았더라도 인터페이스를 사용하면 구현만 하여 교체할 수 있다. 하부 구현 기술들에 대한 선택을 최대한 미룰 수 있는 장점이 있다. ex) 할인 정책들이 정해지지 않았다고 판매 로직에 대한 개발이 중단되면 안된다. 인터페이스..