[java] 애노테이션을 활용한 특정 동작 구현하기

애노테이션(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 메소드를 통해 애노테이션에 정의된 동작을 수행하는 예제입니다.

애노테이션을 활용하여 특정 동작을 구현하는 방법에 대해 간략히 살펴봤습니다. 애노테이션을 사용함으로써 코드의 가독성과 유지보수성을 높일 수 있으며, 런타임에 동적인 동작을 추가하는 유연성을 제공합니다.


참고 문헌: