개발

커스텀 어노테이션 만들기와 활용 팁

닉네임 입니다 2024. 11. 16. 15:56
728x90
반응형

자바 커스텀 어노테이션 만들기

안녕하세요! 프로그래밍의 매력을 느끼는 여러분, 오늘은 자바를 활용하여 커스텀 어노테이션을 만들어보는 시간을 가져보겠습니다. 어노테이션은 코드에 메타데이터를 추가하여 다양한 기능을 제공하는 강력한 도구인데요. 이 포스트에서는 어노테이션의 기본 개념과 함께, 어떻게 나만의 어노테이션을 만들고 활용할 수 있는지 살펴보겠습니다.

들어가며

자바에서 어노테이션은 코드에서 특정 정보를 제공하는 방법입니다. 예를 들어, @Override 어노테이션은 메소드가 오버라이드 되었는지를 검증하는 역할을 합니다. 이렇게 기본적으로 제공되는 어노테이션 외에도, 실제로 여러분의 프로그램에 맞는 커스텀 어노테이션을 만들 수 있습니다. 이러한 어노테이션은 코드의 가독성을 높이고, 유지보수를 쉽게 만드는데 큰 역할을 합니다.

어노테이션 이해하기

자바에서 기본적으로 제공하는 몇 가지 어노테이션을 살펴보겠습니다.

  1. @Override: 메소드가 오버라이드 되었는지 검증합니다.
  2. @Deprecated: 더 이상 사용하지 말라는 경고를 나타냅니다.
  3. @SuppressWarnings: 컴파일 경고를 무시합니다.

이외에도 다양한 어노테이션이 존재하며, 우리가 직접 만들어 사용할 수 있습니다.

META ANNOTATIONS

커스텀 어노테이션을 만들기 위해서는 몇 가지 메타 어노테이션을 사용해야 합니다. 주요 메타 어노테이션은 다음과 같습니다.

  • @Retention: 어노테이션의 유지 정책을 정의합니다.
  • @Documented: 문서화에 어노테이션 정보를 포함합니다.
  • @Target: 어노테이션이 적용될 대상을 정의합니다.
  • @Inherited: 부모 클래스에서 어노테이션을 상속 받을 수 있습니다.

어노테이션 생성하기

이제 커스텀 어노테이션을 만들어보겠습니다. 아래의 코드처럼 간단하게 생성할 수 있습니다.

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno {
    public String value();
}

위 코드에서 @Target을 통해 MyAnno가 메소드에만 적용될 수 있도록 했습니다. 또한, @Retention을 통해 런타임 동안 사용할 수 있도록 설정했습니다.

어노테이션 적용하기

어노테이션을 생성한 후에는 실제 클래스에 적용할 수 있습니다.

public class Target {
    @MyAnno(value = "연습입니다.")
    public void sub() {
        System.out.println("Target");
    }
}

Target 클래스의 sub 메소드에 MyAnno를 적용했습니다. 이를 통해 sub 메소드가 특별한 의미를 가지게 됩니다.

실제 어노테이션 처리하기

커스텀 어노테이션을 사용하는 방법은 자바 리플렉션을 활용하는 것입니다. 아래 코드를 통해 어노테이션을 동적으로 처리해 보겠습니다.

public class MainClass {
    public static void main(String[] args) throws Exception {
        Method method = Target.class.getMethod("sub");
        Annotation[] annotations = method.getDeclaredAnnotations();

        for (Annotation anno : annotations) {
            MyAnno myAnno = (MyAnno) anno;
            System.out.println(myAnno.value());
        }
    }
}

위 코드는 Target 클래스의 sub 메소드에서 MyAnno 어노테이션의 값을 출력합니다.

마무리하며

이번 포스트에서는 자바를 통해 커스텀 어노테이션을 만드는 방법과 활용에 대해 알아보았습니다. 어노테이션은 코드의 의미를 명확하게 하고, 유지보수성을 높여주는 유용한 도구입니다. 여러분도 다양한 상황에 맞춰 어노테이션을 만들어 적용해보시길 추천드립니다!

프로그램 개발에 있어 도움이 되셨길 바라며, 궁금한 점이 있으시면 댓글로 질문해 주세요! 다음 포스트에서 또 만나요!

728x90
반응형