[java] 애노테이션의 리플렉션 사용하기
애노테이션(Annotation)은 자바 프로그래밍 언어에서 코드에 메타데이터를 추가하는 방법입니다. 리플렉션(Reflection)은 런타임 시점에 클래스의 메타데이터를 분석하고 조작하는 기술입니다. 이번 글에서는 애노테이션을 사용하여 리플렉션을 어떻게 활용할 수 있는지 알아보겠습니다.
애노테이션과 리플렉션 개요
애노테이션은 주석과 비슷한 형식으로 작성되며, 클래스, 메서드, 변수 등에 부가 정보를 붙일 수 있습니다. 리플렉션은 클래스의 구조를 런타임에 분석하고 수정할 수 있는 기능을 제공합니다.
애노테이션 정의하기
애노테이션을 정의할 때에는 @interface
키워드를 사용합니다. 아래는 @MyAnnotation
이라는 애노테이션을 정의한 예시입니다.
public @interface MyAnnotation {
String value();
}
애노테이션 적용하기
애노테이션은 @
기호를 사용하여 적용할 수 있습니다. 아래는 애노테이션을 메서드에 적용한 예시입니다.
public class MyService {
@MyAnnotation("SomeValue")
public void myMethod() {
// 메서드 내용
}
}
리플렉션을 사용한 애노테이션 정보 얻기
리플렉션을 사용하여 애노테이션 정보를 얻기 위해서는 java.lang.reflect
패키지를 활용합니다. 아래는 메서드에 적용된 애노테이션 정보를 얻는 예시입니다.
public class MyReflectionExample {
public static void main(String[] args) {
Method method = MyService.class.getMethod("myMethod");
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
String value = annotation.value();
System.out.println(value); // 출력: "SomeValue"
}
}
결론
애노테이션을 리플렉션과 함께 사용하면 런타임에 동적으로 메타데이터를 활용할 수 있습니다. 이를 통해 보다 유연하고 강력한 프로그래밍이 가능해집니다.