관점 지향 프로그래밍객체 지향 프로그래밍의 단점을 해소하기 위해 등장Object Oriented Programming모든 변수 선언시 new를 통해 객체를 선언객체를 재사용 한다는 측면에서 효율적이었으나, 공통된 부가기능에 대한 코드가 중복,반복된다는 단점AAAA,BB
구현(implementation)부에서 추상(abstraction)층을 분리하여 각자 독립적으로 변형이 가능하고 확장이 가능하도록 설계기능과 구현에 대해서 두개의 별도 클래스로 구현커플링(결합)은 약화시키며 협력은 가능하도록 하는 패턴클래스Abstraction: Imp
프로그램의 제어권을 framework가 가져가는 것IoC 개념을 채용한 프레임워크는 스프링 외에 많지만, 대표적인 것이 Spring이므로 Spring 기준으로 설명하겠다개발자가 비즈니스 로직 관련 코드를 작성하면 프레임 워크의 컨테이너가 자동으로 객체의 라이프사이클 관
외부에서 두 객체간의 관계를 결정해주는 디자인 패턴인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임시 관계를 동적으로 주입유연성을 확보하고 결합도를 낮춤두 클래스가 강하게 결합되어 있음Store에서 Pencil이 아닌 Book을 팔고자