
어노테이션은 자바에서 메타데이터를 코드에 추가하는 문법입니다. 컴파일러나 런타임 프로세서가 추가적인 처리를 할 수 있도록 정보를 제공하기 위해 사용합니다. Spring은 이 어노테이션을 기반으로 DI, AOP, 트랜잭션 관리 등 다양한 기능을 제공하여 생산성을 높입니다.
어노테이션의 경우 @interface 키워드를 사용해 선언할 수 있습니다.
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value();
int level() default 1;
}
@Retention과 @Target은 생존 범위와 적용 위치를 지정하기 위한 어노테이션입니다.