스프링 IoC 컨테이너가 관리하는 객체
빈이라는 것은 ApplicationContext가 알고 있는 객체들이다.
어노테이션 프로세서 중,
@Component가 붙은 클래스를 찾아서 그 클래스의 인스턴스를 빈으로 등록하는 일을 하는 어노테이션 처리기가 있다.
@SpringBootApplication 어노테이션에는 @ComponentScan 어노테이션이 붙어있는데,

이 어노테이션이 붙은 위치부터 모든 하위 패키지의 모든 하위 클래스를 훑어보며 @Component를 찾아서 빈으로 등록해준다.
리포지토리는 다른 형태로 빈으로 등록되는데,
Spring Data JPA가 제공해주는 기능에 의해 빈으로 등록된다.
어노테이션이 없더라도 특정 인터페이스를 상속받은 경우,
인터페이스 구현체를 만들어서 빈으로 등록해준다.
XML이나 자바 설정 파일에 직접 등록할 수 있다.
