[스터디할래 12] 애노테이션

이 글은 ‘백기선’ 개발자님과 함께하는 온라인 자바 스터디에 참여하여 준비/학습한 내용을 정리하는 글입니다.📚

정리는 Java Tutorials - Annotation를 기반으로 하였습니다.

애노테이션

애노테이션 사용하는 방법

애노테이션 정의하는 방법

Predifined Anotations

Java API에서는 미리 정의한 애노테이션을 제공한다. 특히, 미리 정의되어 다른 애노테이션을 도와주는 meta-annotations이라 한다. meta-annotations들은 다른 annotation type 정의에 함께 사용된다.

@Retention

annotation type을 정의할 때 애노테이션 코드를 어떻게 보관할 것인가를 정의한다.

@Target

정의한 annotion type이 어떤 때에 사용될 수 있는지 명시한다. @Target을 따로 명시하지 않은 애노테이션은 type parameter 선언을 제외하고는 모든 곳에 사용될 수 있다. 컴파일 후 ElementType enum으로 코드에 정의된다. 아래와 같은 타입으로 정의할 수 있다.

@Documented

Annotation type이 javadoc이나 다른 툴에 의해 문서화할 것인지를 표시한다. 클라이언트에게 애노테이션을 노출하는 public API의 경우에 문서화를 명시하는 것이 바람직하다.

애노테이션 프로세서

(애노테이션 프로세서는 자바 문서보다 개발자 블로그가 더 이해하기에 편하여 https://medium.com/@jason_kim/annotation-processing-101-%EB%B2%88%EC%97%AD-be333c7b913를 참고하였다.)