[Java] 자바 어노테이션(Annotation) 만들기 & 활용법

어노테이션(Annotation)이란?

자바에서 어노테이션은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종을 말합니다. 보통 @기호를 앞에 붙여서 사용하며 JDK 1.5 버전 이상에서부터 사용이 가능합니다. 자바 어노테이션은 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동합니다. 어노테이션은 메타데이터라고 볼 수도 있습니다. 메타데이터란 어플리케이션이 처리해야 할 데이터가 아니라 ,컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할것인지를 알려주는 정보입니다.

 

어노테이션의 사용처
1. 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공
2. 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공
3. 실행 시 특정 기능을 실행하도록 정보를 제공

 

커스텀 어노테이션(Annotation) 생성

커스텀 어노테이션

프로젝트 생성 -> New에서 어노테이션을 생성할 수 있습니다.

 

public @interface AnnotationName{...}

 커스텀 어노테이션을 생성하려면 @interface [어노테이션 명]이라는 형태로 어노테이션을 만들면 됩니다.

 

public @interface ExAnnotation {
    //타입 요소명() default 값;
    String value(); //String형 기본 엘리멘트
    int value2() default 5; //int형 엘리멘트 초기값 5
}

위 예제와 같이 어노테이션은 멤버를 가질 수 있으며 타입과 이름, 디폴트값을 설정할 수 있습니다. 디폴트값을 따로 지정해주지 않으면 기본 엘리멘트가 됩니다.

※ 엘리멘트 뒤에는 ( ) 괄호를 붙여야 합니다.

 

커스텀 어노테이션(Annotation) 사용

 @ExAnotation(value = "Hello", value2 = 1);
 @ExAnotation("Hello"); //value2는 default값이 있으므로 생략이 가능합니다.

생성한 어노테이션을 사용하려면 @어노테이션명으로 호출을 하면 됩니다. 어노테이션 안에 있는 엘리멘트의 defualt값이 있다면 값을 설정해주지 않아도 되지만 엘리멘트의 값이 없다면 값을 설정해주어야 합니다. 기본 엘리멘트만 있다면 엘리멘트의명을 지정해주지 않아도 자동 설정됩니다.

댓글

Designed by JB FACTORY