less than 1 minute read

📖 어노테이션 (Annotation)

사전상으로는 단순히 주석이란 뜻이다.
하지만 Annotation은 단순히 주석의 기능이 아니라, 자바 프로그래밍 언어에서 소스 코드에 추가하여 컴파일러나 런타임에서 사용될 수 있는 메타데이터의 형태를 가진 것이다.
어노테이션은 컴파일러나 런타임에서 사용되는 정보를 제공하기 때문에, 코드의 가독성과 유지보수성을 높여주는 역할을 한다.
@Override와 같이 @ 기호를 사용하여 정의한다.

🍄 @retention

어노테이션을 정의할때 값을 언제까지 유지시킬수 있을지 정의하며, source의 경우에는 일반 주석에 해당한다.

  • CLASS
  • RUNTIME
  • SOURCE


🍄 @target

어노테이션이 적용 가능한 대상을 지정하는데 사용된다.
메소드, 타입, 필드, 생성자, 클래스등 어떤 종류에 사용하는지 직접 지정이 가능하다.
단순히 1개만 지정한 것이 아니라 아래와 같이 여러개를 지정할 수도 있다.

image


🍄 @documented

어노테이션 정보가 javadoc으로 작성된 문서에 포함된다.


🍄 애노테이션 프로세서

어노테이션을 프로세싱하는 기술이다.
특히, 스프링에서 @Data를 지정하면 자동으로 @Setter, @Getter가 지정되는 것처럼, 이를 사용하여 다른 어노테이션을 붙여줄 수 있다.
관련된 어노테이션을 런타임때가 아닌 컴파일 할때, 붙여주는 방법이다.



개인 공부 기록용 블로그입니다.
틀리거나 오류가 있을 경우 제보해주시면 감사하겠습니다.😁