메타 애너테이션(Meta-annotation)이란 다른 애너테이션에 적용되는 애너테이션을 말합니다. 메타 애너테이션은 애너테이션 선언에 사용되며, 그 애너테이션의 동작 방식을 정의합니다.
Java에는 다음과 같은 메타 애너테이션이 포함되어 있습니다:
@Retention: 애너테이션이 유지되는 시점을 지정합니다. RetentionPolicy.SOURCE는 컴파일 이후에는 제거되며, RetentionPolicy.CLASS는 컴파일러가 클래스 파일에 기록하지만 JVM이 무시하며, RetentionPolicy.RUNTIME은 JVM이 클래스를 메모리에 로드할 때까지 유지되므로 런타임 환경에서도 해당 애너테이션을 읽을 수 있습니다.
@Target: 애너테이션이 적용될 수 있는 Java 요소의 종류를 지정합니다. 예를 들어, ElementType.METHOD는 이 애너테이션을 메소드에 적용할 수 있음을 나타냅니다.
@Documented: 이 애너테이션이 사용된 요소를 Javadoc(공식문서)과 같은 문서에 포함시키도록 지시합니다.
@Inherited: 이 애너테이션을 가진 클래스를 상속하는 클래스가 애너테이션을 상속받을 수 있도록 합니다.
@Repeatable: 이 애너테이션이 동일한 요소에 여러 번 적용될 수 있도록 합니다. Java 8 이후에 도입되었습니다.
메타 애너테이션을 이용하여 애너테이션의 동작을 조정할 수 있습니다.
'Java' 카테고리의 다른 글
[Java] 참조와 접근 (0) | 2023.07.08 |
---|---|
[Java] Validation (0) | 2023.07.06 |
[Java Spring] HttpServletResponse (0) | 2023.07.02 |
[Java] split 메서드 (0) | 2023.06.17 |
[Java] substring 메서드 (0) | 2023.06.17 |