사전 상, annotation은 '주석'이라는 의미를 가지지만 자바에서는 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종이다.
어노테이션은 @를 사용하여 작성하며,
- 컴파일러에게 문법 에러를 체크하도록 정보 제공
- 프로그램을 BUILD 할 때에 코드를 자동으로 생성할 수 있도록 정보 제공
- 런타임에 특정 기능을 실행하도록 정보 제공
위의 역할을 수행한다. 어노테이션은 타겟에 대한 동작을 수행하는 프로그램 외에는 어떠한 영향을 주지 않는다.
어노테이션은 크게 세 가지로 분류할 수 있다.
- 표준 어노테이션
- 메타 어노테이션
- 사용자 어노테이션
@Override
컴파일러에서 메소드를 오버라이딩 할 때 사용
@Deprecated
차후 버전에 지원되지 않을 수 있기 때문에 사용하지 않을 메소드를 지정할 때 사용
@FunctionalInterface
함수형 인터페이스에 사용
@SuppressWarning
경고 메시지를 나타내고 싶지 않을 때 사용
-@SafeVaragrs
가변 인자의 매개변수를 사용할 때, 경고 메시지를 나타내고 싶지 않을 때 사용
@Target
어노테이션을 정의할 때 적용 대상을 지정하는 데 사용
@Documented
어노테이션의 정보를 javadoc, 즉 문서에 포함시킬 때 사용
@Inherited
어노테이션을 하위 클래스에 상속 시킬 때 사용
@Repeatable
반복하여 붙일 수 있는 어노테이션을 정의할 때 사용