[Spring] IoC, DI, 컨테이너
이번 포스팅에서는 스프링의 IoC, DI, 컨테이너에 대한 용어에 대해 알아보자. 이 용어들은 스프링에만 국한된 단어는 아니다. IoC(Inversion of Control) : 제어의 역전 단순하게는 제어권이 뒤바뀐다 해서 제어의 역전이라 부르고, 여러 곳에서 이 용어가 나온다. 기존 코드(전통적인 프로그래밍)는 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성, 연결, 실행했다(예를 들어, MemberService 관련된 구현체가 MemoryMemberRepository를 직접 생성하는 것). 필요한 것을 직접 생성하고 호출하고, 또 필요한 것이 생기면 다시 생성하고 호출하고... 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 제어했다. 어떻게 보면 자연스러운 흐름이다. 하지만 앞서 ..