기술면접때 의존성 역전(IoC)에 대해 설명해달라는 질문을 받았는데 대답을 못했었다. 근데 대답을 못하는 내가 좀 당황스러웠음. 이런 기초적인 것도 설명을 못한다고...? 스스로 너무 어이가 없었음. 암튼 그래서 정리.IoC란?Inversion of Control (IoC)는 객체의 생성과 제어를 개발자가 직접 하지 않고, 객체의 생성과 의존성 관리 책임을 외부로 넘겨, 코드의 결합도를 낮추고 유연성을 높이는 소프트웨어 설계 원칙이다. 객체지향 프로그래밍을 지향하는 프로그램에서 객체는 다른 객체와 협력하여 동작한다. 가령, 클래스A가 클래스B의 기능을 필요로 하면, A는 B를 생성하여 사용한다. 그러나 이 과정에서 A가 B에 의존을 하게되어 결합도가 높아진다. Spring 같은 많은 프레임워크는 A가 직..