MainApplication.java에 설정되어 있는 어노테이션으로, springboot에서 핵심적인 역할을 함

@bean 정으된 메소드들을 빈으로 등록하고 사용하는데 도움을 주는 역할. @SpringBootConfiguration 안쓰고 @bean만해도 되긴하는데 싱글턴 패턴 보장받지 못함.
@Controller와 같이 @Component가 달린 친구들을 application text에 빈으로 등록해주는 역할.
spring boot의 가장 편리한 기능. 기존 spring에서는 직접 xml파일을 작성해서 수많은 config를 설정해주어야 했지만, 스프링부트에서는 저 어노테이션 딸깍으로 자동설정이 가능함.