본문 바로가기

프로그래밍/Java

어노테이션

어노테이션

어노테이션이라는 말 자체는 주석이라는 뜻을 가지고 있다.
어노테이션은 JDK1.5부터 사용 가능하며 프로그래밍 언어에 영향을 미치지 않으면서 다른 프로그램에게 유용한 정보를 제공할 수 있다.
흔히 많이 사용하는 대표적인 어노테이션에는 @Override가 있는데 메소드 앞에만 붙일 수 있으며 메소드가 오버라이드 됐는지 검증을 하여 부모 클래스에 해당 메서드가 없다면 컴파일 오류를 발생시킨다.

메타 어노테이션

어노테이션을 정의하는 방법에 앞서 메타 어노테이션이라는것에 대해 알 필요가 있다.
어노테이션을 위한 어노테이션으로 어노테이션을 정의할 때 사용되는 어노테이션이다.

@Target

어디에 적용할지를 지정할 때 사용하며 앞서 나왔던 @Override를 보면 메소드에 사용됨을 알 수 있다.

지정할 수 있는 대상으로는 어노테이션, 생성자, 필드, 지역변수, 메소드, 패키지, 매개변수, 타입, 타입 매개변수, 타입이 사용되는 모든 곳 등이 있다.
ElementType

Retention

얼마나 어노테이션이 유지되는지를 지정할 때 사용된다.
RetentionPolicy

  • SOURCE : 소스 파일에만 존재 클래스 파일에는 존재하지 않음
  • CLASS : 클래스 파일에 존재. 실행 시 사용불가
  • RUNTIME : 클래스 파일에 존재. 실행 시 사용가능

Documented

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

@Inherited

자식 클래스에서 부모 클래스의 어노테이션을 사용할 수 있다고 선언

어노테이션 정의하기

'@'를 붙이는 것을 제외하면 인터페이스를 정의하는 것과 동일하다

@interface 어노테이션 이름{
    타입 요소이름();
    ...
}

참고 문서

Java의 정석 - 남궁 성
http://www.tcpschool.com/java/intro

'프로그래밍 > Java' 카테고리의 다른 글

I/O  (0) 2021.02.21
junit5 @Nested 계층구조로 테스트코드 작성하기  (0) 2021.02.07
junit5 사용하기  (0) 2021.02.03
Enum 클래스  (0) 2021.01.26
멀티쓰레드 프로그래밍  (0) 2021.01.25