1 Annotation
- 어노테이션은 자바 프로그래밍에서 메타데이터를 표현하는 방법입니다.
- 메타데이터란 애플리케이션이 처리해야 할 데이터가 아닌, 컴파일 과정과 실행 과정에서 코드를 어떻게 처리할 것인지를 나타내는 정보입니다.
1.1 어노테이션의 용도
어노테이션은 다음 세가지 용도로 사용됩니다.
- 컴파일러에게 코드 문법 에러 체크하도록 정보를 제공합니다.
- 대표적인 예는 @Override 어노테이션 입니다.
- 예를 들어서 부모클래스의 메소드를 재정의하여 사용할때 컴파일 시 상위타입(부모클래스, 인터페이스)에 해당 메소드가 존재하는지 확인하고 만약 존재하지 않는다면 컴파일 에러를 발생시킵니다.
- 소프트웨어 개발 툴이나 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공합니다.
- 실행 시 특정 기능을 실행하도록 정보를 제공합니다.
2 어노테이션 타입 정의
- 어노테이션 타입을 정의하는 방법은 인터페이스를 정의하는 것과 유사합니다.
- 어노테이션은 엘리먼트를 멤버로 가질 수 있습니다.
- 엘레먼트 타입은
int나double과 같은 기본 데이터 타입이나String, 열거 타입, Class 타입 그리고 이들의 배열 타입을 사용할 수 있습니다. - 아래는 String 타입의 엘리먼트와 int 타입의 엘리먼트를 선언한 예시입니다.
public @interface AnnotationName{
String elementName1();
int elementName2() default 5;
}
사용 예시
elementName2는 default 값이 있으므로 생략가능
@AnnotationName(elementName1 = "값", elementName2 = 3)
@AnnotationName(elementName1 = "값")