1) 정의
- 보통 @를 이용한 주석,자바코드에 주석을 달아 사용한다.
- 컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공,및 정보를 추가하는 방법
- JDK1.5이상에서 사용 가능하고,클래스 파일에 임베디드되 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동한다.
2) 용도
- @Override 어노테이션처럼 컴파일러를 위한 정보제공
- 스프링 프레임워크의 @Controller 어노테이션처럼 리플렉션을 이용 특수 기능을 추가하기 위해서
- 컴파일 과정에 어노테이션 정보로부터 코드생성을 위해