목표 public class GridExamConsole implements ExamConsole { private Exam exam; public GridExamConsole() { } public GridExamConsole(Exam exam) { this.exam = exam; } @Override public void setExam(Exam exam) { this.exam=exam; } } 위 코드에서 볼 수 있듯이, Exam 클래스는 GridExamConsole이라는 클래스에 종속되어 있다. 이 때, Spring을 쓰지 않았을 경우와 썻을 경우 어떻게 DI를 수행하는지 살펴보자. 그리고 IoC 컨테이너에서 DI한 객체를 사용해보자. Spring을 쓰지 않은 DI 방식 public class Pr..
IOC
DI(Dependency Injection)란? 종속성 주입으로, 사용자가 원하는 객체 내부의 값(객체 등)을 Setter나 생성자를 통해 설정해주는 것이다. Composition has a (일체형) class A { private B b; public A(){ b = new B(); } } B가 A 내부에서 정해진다. Association has a (조립형) class A { private B b; public A(){ } public void setB(B b){ this.b=b; } } B를 A 외부에서 setter를 통해 가져와 정한다. 이 때 조립형에서 DI를 설명할 수 있는데 B b = new B(); // Dependency - 부품 A a = new A(); a.setB(b); // In..