[java] 애노테이션의 종류

내장 애노테이션(Built-in Annotations)

내장 애노테이션은 자바에서 기본적으로 제공되는 애노테이션으로, 주로 프레임워크와 라이브러리에 의해 사용됩니다.

  1. @Override: 메소드가 부모 클래스에서 오버라이딩되었음을 나타내는 애노테이션.
  2. @Deprecated: 해당 요소가 더 이상 사용되지 않으며, 향후 버전에서 제거될 수 있음을 나타내는 애노테이션.
  3. @SuppressWarnings: 특정 경고 메시지를 무시하도록 하는데 사용되는 애노테이션.

메타 애노테이션(Meta Annotations)

메타 애노테이션은 다른 애노테이션을 위한 애노테이션으로 사용되며, 애노테이션 정의에 부가적 정보를 제공합니다.

  1. @Retention: 애노테이션의 유지 정책을 지정하기 위해 사용되는 애노테이션.
  2. @Target: 애노테이션이 적용될 대상을 지정하기 위해 사용되는 애노테이션.
  3. @Documented: 애노테이션 정보가 javadoc에 포함되도록 하는 애노테이션.

사용자 정의 애노테이션(User-defined Annotations)

사용자는 필요에 따라 자신만의 애노테이션을 작성할 수 있으며, 이를 사용자 정의 애노테이션이라고 합니다. 사용자 정의 애노테이션을 작성하려면 @interface 키워드를 사용합니다.

@interface MyAnnotation {
    String value();
    int count() default 1;
}

위의 예시에서 MyAnnotation은 사용자가 직접 정의한 애노테이션으로, valuecount 라는 요소를 가지고 있습니다.

애노테이션은 자바 프로그래밍에서 메타데이터를 추가하고, 컴파일러, 런타임 라이브러리, 개발 도구 등과의 상호 작용을 강화하는데 중요한 도구로 활용됩니다.

이러한 다양한 애노테이션을 잘 활용하여 프로그래밍 작업을 보다 효과적으로 수행할 수 있습니다.

참고 문헌: https://docs.oracle.com/javase/tutorial/java/annotations/