# IoC(Inversion Of control) 스프링에서는 객체의 생성을 개발자가 아닌 Spring Container에 맡긴다. 개발자 > 프레임워크로 제어의 객체 관리 권한이 넘어갔으므로 '제어의 역전'이라고 한다. # DI(Dependency Injection) 장점 - 의존성을 가진 특정 객체를 분리시켜 테스트할 수 있다. - Mock과 같은 기술을 통해 안정적인 테스트가 가능하다. 실제 배포해야만 테스트할 수 있는 부분을 DI를 통해 Mock 객체를 주입하여 테스트할 수 있도록 한다. - 필요한 개체를 외부에서 주입하기 때문에 나의 코드를 최대한 변경하지 않을 수 있다.(추상화) - 필요한 개체를 외부에서 주입하기 때문에 내가 나를 참조하는 순환참조를 막을 수 있다. # AOP(Aspect O..