어노테이션이란?

어노테이션(Annotation)은 프로그래밍 언어나 마크업 언어에서 메타데이터를 나타내는 방법 중 하나다. 주석과 비슷한 역할을 하지만, 주석이 프로그램 실행에 영향을 미치지 않고 소스 코드의 설명이나 문서화를 위해 사용되는 반면, 어노테이션은 소스 코드에 메타정보를 첨부하여 컴파일러나 런타임 환경에서 특정 동작이나 처리를 수행하도록 지시할 수 있습니다.

어노테이션은 "@" 기호를 사용하여 표시하며, 클래스, 메서드, 필드 등에 적용할 수 있습니다. 어노테이션을 정의하거나 사용할 때, 특정 기능을 활성화하거나 설정을 변경할 수 있습니다. 예를 들어, 자바 프로그래밍에서는 @Override 어노테이션을 사용하여 상위 클래스의 메서드를 오버라이드한다고 명시하거나, @Deprecated 어노테이션을 사용하여 해당 요소가 더 이상 권장되지 않는다고 표시할 수 있습니다.


어노테이션을 사용하는 이유(효과)는 무엇일까?

어노테이션은 주로 자동화된 코드 생성, 런타임 동작 제어, 문서화 등 다양한 목적으로 활용됩니다. 어노테이션을 사용하면 프로그램의 가독성을 높이고, 코드의 의도나 정보를 명확하게 전달할 수 있습니다.


나만의 어노테이션은 어떻게 만들 수 있을까?

  1. 어노테이션 정의하기: 먼저 새로운 어노테이션을 정의합니다. 이를 위해서는 @interface 키워드를 사용합니다. 내부적으로는 인터페이스를 정의하는 것과 유사합니다.
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Log {
    String value() default ""; // 어노테이션 속성 정의
}
  1. 어노테이션 속성 정의하기 (선택 사항): 어노테이션에 필요한 속성이 있다면 정의할 수 있습니다. 이 속성은 어노테이션의 메소드 형태로 선언됩니다.
  2. 어노테이션 사용하기: 정의한 어노테이션을 사용하고자 하는 곳에서 @ 기호를 이용하여 해당 어노테이션을 사용합니다.
public class Example {
    @Log("This method is performing some important action")
    public void performAction() {
        // 메소드 내용
    }
}