ioc: 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리 결합도를 느슨히하여, 변경에 유연한 코드가 된다.
DI(의존성 주입): 외부에서 의존성을 주입하는 행위 의존성: 한 클래스가 바뀌면 다른 클래스도 바뀐다 (의존관게) 생성자 주입 예시(스프링)