Java & Spring
의존이 복잡하게 얽힌 Bean들은 어떻게 생성될까?
new A(new B(new C())) 위와 같이 A, B, C가 의존관계에 있고 셋 모두 스프링 빈에 등록되어야 할 대상일 때, 스프링 컨테이너에서는 어떻게 인스턴스를 만들까요? 실제 구현 내용을 모른다면, 직접 구현한다면 어떻게 구현하실지 말씀해주시겠어요? 위 질문은 얼마 전 진행됐던 레벨 인터뷰에서 브라운이 인터뷰이에게 했던 질문입니다. 옵저버로서 해당 인터뷰를 관찰하면서도, 뜻밖에 질문에 저 또한 속으로 대답을 떠올려보고 있었습니다. 제 속에 떠올랐던 대답은 "현재 생성할 수 있는 인스턴스를 생성하는 사이클을 반복한다" 였습니다. 아래처럼요. 1) A는 B가 아직 생성 안되었기에 넘어가고, B도 마찬가지입니다. 그러면 C를 생성하고 mark 합니다. 2) A는 여전히 B가 없으니 넘어가고, B는 ..