Kotlin ‐ 애너테이션 클래스[Effective Kotlin Item 16] - woojin-playground/Backend-PlayGround GitHub Wiki

애너테이션 클래스

  • 애너테이션은 스스로는 아무 일도 하지 않아서 코드 작동 방식에 아무런 영향을 주지 않는다.
  • 단지 정보만 담고 있을 뿐이다.

메타-애너테이션

  • 애너테이션 클래스에 추가되는 애너테이션을 메나-애너테이션이라고 한다.
  • @Target : 애너테이션의 대상이 될 수 있는 코드 요소의 종류를 가리킨다. 인수로는 AnnotationTarget 열거형 값을 받는다.
  • @Retention : 컴파일된 바이너리 결과에 애너테이션을 포함시킬지와 리플렉션으로 볼 수 있을지를 결정한다.
  • @Repeatable : 코드 요소 하나에 애너테이션이 두 번 이상 적용 가능한지 정한다.
  • @MustBeDocumented : 에너테이션이 공개 API인지 그래서 코드로부터 문서를 생성할 때, 애너테이션이 적용된 요소들의 설명에 애너테이션도 포함시킬지를 정한다.

Kotlin Annotations