[질문]
- 어노테이션은 메타데이터의 일종으로, 프로그래밍 언어나 프레임워크에서 코드에 부가적인 정보를 제공하는 메커니즘이다. 주석과는 달리 어노테이션은 컴파일러나 런타임 시스템이 처리할 수 있다. 어노테이션은 보통 @ 기호를 사용하여 작성된다.
- 코드 가독성 향상: 어노테이션은 코드에 의미 있는 정보를 추가하여 가독성을 높인다.
- 컴파일 타임 체크 : 코드를 분석하여 오류를 사전에 방지하고 안정성을 높인다.
- 런타임 동작 제어 : 런타임 시 동작을 변경하거나 확장할 수 있다.
- 메타프로그래밍 : 코드를 동적으로 생성하거나 변경하여 유연성을 확보한다.
@interface 선언 : 새로운 어노테이션을 만들기 위해 자바의 @interface 키워드를 사용한다. 이를 통해 어노테이션의 이름과 속성을 정의할 수 있다.
속성 정의 : 어노테이션에 필요한 속성을 정의한다. 각 속성은 기본값을 가질 수 있다.
적용 대상 지정(Optional) : 어노테이션을 사용할 수 있는 대상을 지정할 수 있다. 예를 들어, 메소드, 클래스, 필드 등에 적용할 수 있다.
어노테이션 사용 : 정의한 어노테이션을 사용하여 코드에 메타데이터를 추가한다.
import java.lang.annotation.*;
// 1. @interface 선언
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyCustomAnnotation {
// 2. 속성 정의
String value() default ""; // 기본값을 설정할 수 있다.
// 3. 적용 대상 지정 (Optional)
// 적용 대상을 지정하지 않으면 어노테이션을 모든 요소에 적용할 수 있다.
}
// 4. 어노테이션 사용
public class MyClass {
@MyCustomAnnotation("This is my custom annotation") // 어노테이션 사용
public void myMethod() {
// 메소드 내용
}
}