@ annotation
@사인으로 시작하는 것을 annotation이라고 한다
어노테이션의 역할
1. 컴파일러에세게 문법 에러를 체크하도록 정보 제공
2. 프로그램을 빌드할 때 코드를 자동으로 생성할 수 있도록 정보 제공
3. 런타임에 특정 기능을 실행하도록 정보 제공
프로그래밍에서 주석은 개발자의 입장에서 더 직관적으로 코드를 이해하기 쉽게하고, 다름사람에게 설명할 수 있는 정보를 제공할 수 있다
어노테이션 또한 비슷하지만
주석은 사람에게 정보를 제공하는 것이라면 어노테이션은 특정 코드를 사용하는 프로그램에게 정보를 전달한다
어노테이션의 종류
표준 어노테이션 :
자바에서 기본적으로 제공하는 어노테이션이다.
@Override
컴파일러에게 메서드를 오버라이딩하는 것이라고 알린다.
@Deprecated
앞으로 사용하지 않을 대상임을 알린다.
@FunctionalInterface
함수형 인터페이스라는 것을 알린다.
@SuppressWarning
컴파일러가 경고 메시지를 나타내지 않는다.
@SafeVaragrs
제네릭과 같은 가변 인자의 매개변수를 사용할 때의 경고를 나타내지 않는다.
메타 어노테이션 : 어노테이션을 위한 어노테이션
어노테이션에 붙이는 어노테이션으로, 어노테이션을 정의하는 데 사용한다.
@Target
어노테이션을 정의할 때 적용 대상을 지정하는 데 사용한다.
@Documented
어노테이션 정보를 javadoc으로 작성된 문서에 포함시킨다.
@Inherited
어노테이션이 하위 클래스에 상속되도록 한다.
@Retention
어노테이션이 유지되는 기간을 정하기 위해 사용한다.
@Repeatable
어노테이션을 반복해서 적용할 수 있도록 한다.
사용자 어노테이션 : 사용자가 직접 정의하여 사용하는 어노테이션 이다