어노테이션
어노테이션이라는 말 자체는 주석이라는 뜻을 가지고 있다.
어노테이션은 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 |