POJO(Plain Old Java Object) : Java로 생성하는 순수한 객체
스프링과 POJO 와의 관계
제어의 역전(Inversion of Control)
메서드나 객체의 호출작업이 개발자가 결정하는 것이 아닌, 외부에서 결정되는 것
객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성함으로써 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있음
의존성 주입(Dependency Injection)
class A {
B b = new B();
}
class B {}
하지만 위와 같은 방식은 객체 간의 높은 결합도를 가지게 되어 유지보수에 어려움이 존재하게 됨
(만약 클래스 B가 아닌 D로 설정해야 할 경우, 코드를 일일이 뜯어 고쳐야 함)
따라서 Spring에서는 객체 간의 관계 설정을 클래스 내부에서 하는 것이 아닌, Spring container 를 통해 외부에서 객체를 생성한 뒤 주입해주는 방식을 채택하였고, 이를 의존성 주입(IoC)이라고 한다.