공통로직을 외부 클래스로 분리하고, 해당 기능을 프로그램 코드에 명시적으로 표시하지 않고 선언적으로 처리해서 적용한다.
응집도가 높고 유지보수가 쉽다.
Java 코드에서 일반적으로 객체를 구성하는 방식을 스프링 프레임워크에서 그대로 사용할 수 있다.
각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결하는 것을 의미한다.
+Spring 프레임워크에서 지원하는 IoC의 형태로 클래스 사이의 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해준다.
IoC(제어의 역전)
은 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것으로 코드의 최종호출은 개발자가 제어하는 것이 아닌 프레임워크의 내부에서 결정된 대로 이루어진다.
c-s-r x r-s-c o
쉽게 말하면 용도에 맞게 필요한 객체를 가져다가 사용하는 것이다.