애노테이션(annotation)은 자바 소스 코드에 추가 정보를 제공하는 메커니즘으로, 런타임에 특정 동작을 추가할 수 있습니다. 애노테이션을 활용하여 특정한 기능을 구현하는 방법에 대해 알아보겠습니다.
1. 애노테이션 정의하기
먼저, 특정 동작을 구현하기 위한 애노테이션을 정의해야 합니다. 다음은 간단한 애노테이션의 예제입니다.
public @interface CustomAnnotation {
String value();
}
위 예제에서 @interface
키워드를 사용하여 애노테이션을 정의하고, 필요한 속성을 정의할 수 있습니다. 이 예제에서는 value
라는 이름의 속성을 포함한 애노테이션을 정의했습니다.
2. 애노테이션 활용하기
정의한 애노테이션을 활용하여 특정 동작을 구현할 수 있습니다. 예를 들어, 커스텀한 애노테이션을 사용하여 메소드 실행 전 후에 로깅을 추가하는 작업을 해보겠습니다.
public class MyClass {
@CustomAnnotation("logging")
public void myMethod() {
// 메소드 동작 구현
}
}
애노테이션을 @CustomAnnotation("logging")
과 같이 메소드에 적용하여 특정 동작을 추가할 수 있습니다.
3. 애노테이션 처리하기
마지막으로, 애노테이션을 처리하여 특정 동작을 구현해야 합니다. 이를 위해 리플렉션(reflection)을 활용하여 애노테이션을 분석하고, 해당 애노테이션에 정의된 동작을 수행할 수 있습니다.
public class MyAnnotationProcessor {
public void processAnnotations(Class<?> clazz) {
for (Method method : clazz.getDeclaredMethods()) {
if (method.isAnnotationPresent(CustomAnnotation.class)) {
CustomAnnotation annotation = method.getAnnotation(CustomAnnotation.class);
// 애노테이션에 정의된 동작 수행
System.out.println("Performing " + annotation.value() + " before executing " + method.getName());
}
}
}
}
위 예제에서 MyAnnotationProcessor
는 애노테이션을 처리하는 클래스로, processAnnotations
메소드를 통해 애노테이션에 정의된 동작을 수행하는 예제입니다.
애노테이션을 활용하여 특정 동작을 구현하는 방법에 대해 간략히 살펴봤습니다. 애노테이션을 사용함으로써 코드의 가독성과 유지보수성을 높일 수 있으며, 런타임에 동적인 동작을 추가하는 유연성을 제공합니다.
참고 문헌:
- Oracle. “Annotations” https://docs.oracle.com/javase/tutorial/java/annotations/index.html