## Defendency Injection *IOC는 다양한 방법으로 만들 수 있습니다. 전략패턴, 서비스 로케이터 패턴, 팩토리 패턴, 의존관계 주입 패턴들이 있습니다. *객체를 주입받는 패턴을 생성자 주입 패턴이라고 부릅니다. 그 외에도 스프링은 세터 기반의 의존 관계 주입도 지원합니다. ### 순환참조를 조심하자. *A > B / B > A 를 참조할 경우 순환 의존관계가 형성되면서 *BeanCurrentlyCreationException 예외가 발생할 수 있습니다. ### 컴포넌트 스캔으로 빈 등록하기 *컴포넌트 스캔은 스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능입니다. 설정 클래스에 빈으로 직접 등록하지 않아도 원하는 클래스를 빈으로 등록할 수 있습니다. *그렇다면 스프링은 어떻게 자동으로 등록될 빈을 찾을 수 있을까요? *바로 스테레오타입 애노테이션을 이용하면 스캔대상을 지정할 수 있습니다. ### 스테레오타입? *스테레오타입을 번역하면 고정관념인데 사실 이 용어는 UML에서 온거라고 볼 수 있습니다. *그림에서 보는 것 처럼 UML다이어그램을 확장시켜주는 도구로서 특정 요소를 상황이나 도메인에 맞게 분류해주는 것입니다.