JAVA

어노테이션 (Annotation)

패잇 2023. 9. 18. 18:28

어노테이션은 메타데이터(metadata)라고 볼 수 있다.

애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보.

 

용도

  • 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 (대표적인 예 : @Override)
  • 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보 제공
  • 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공

 

어노테이션 타입 정의와 적용

public @interface AnnotationName {
	타입 elementName() [default 값];
}

- @interface를 사용하여 어노테이션을 정의한다.

- 어노테이션은 엘리먼트(element)를 멤버로 가질 수 있다. 

  각 엘리먼트는 타입, 이름으로 구성되며 디폴트 값을 가질 수 있다.

  엘리먼트의 이름 뒤에는 ()를 붙여야 한다.

public @interface AnnotationName{
    String elementName1();
    int elementName2() default 5;
}

이렇게 정의한 어노테이션을 코드에서 적용할 때는 다음과 같이 사용한다.

@AnnotationName(elementName1="값", elementName2=3);
또는 
@AnnotationName(elementName1="값");

어노테이션은 기본 엘리먼트인 value를 가질 수 있다. 

public @interface AnnotationName{
    String value();		// 기본 엘리먼트 선언
    int elementName() default 5;
}

Value 엘리먼트를 가진 어노테이션을 코드에서 적용할 때는 다음과 같이 값만 기술할 수 있다.

이 값은 기본 엘리먼트인 value 값으로 자동 설정된다.

@AnnotationName("값")
@AnnotationName(value="값", elementName=3);	// value 엘리먼트와 다른 엘리먼트를 동시에 준 경우