코드에서 @로 작성되는 요소를 Annotation이라고한다.
흔히 설정정보라고 하는데 이 어노테이션은 세가지 시점에 다라 어떻게 처리해야 하는지 알려준다.
- 컴파일시 사용하는 정보 전달( @Override, @lombok)
@Override 코드는 컴파일시 컴파일러에게 메서드를 오버라이딩이 잘 되었는지 확인해주는 설정정보를 전달한다.- 빌드 시 빌트 툴이 코드를 자동 생성할때 사용하는 정보 전달
빌드 툴은 애노테이션을 사용하여 코드를 자동으로 생성하거나 특정한 작업을 수행할 수 있습니다. 예를 들어, Lombok 라이브러리를 사용하여 자동으로 getter, setter 메소드를 생성가능 (컴파일시, 빌드 시 둘다 사용가능)- 실행 시 특정 기능을 처리할 때 사용하는 정보 전달
런타임 시스템에게 @Component, @Autowired 등의 애노테이션을 사용하여 빈 관리나 의존성 주입에 관한 설정정보 전달


@conponentscan은 @springBootApplication안에 들어가 있다.

