사전적의미로 주석이란 의미이다.
anntation은 소스코드에 추가된 프로그래밍 언어나 프레임워크에서 메타데이터(데이터를 위한 데이터로 데이터를 설명하는 정보)를 나타내는 방법중 하나이다.
anntotaion은 소스코드에 추가되는 특별한 주석으로 컴파일또는 런타임시 특정한 동작을 수행하도록 지시한다.
주로 사용한 언어인 JAVA에서는 기본적으로 내장되어있는 어노테이션이 있으며 이를 built-in 어노테이션이라고 한다.
@Overrie, @Deprecated, @SuppressWarnings, @SafeVarargs 등이 존재한다.
다른 어노테이션에 적용되기 위한 어노테이션이다.
@Target : 생성한 어노테이션이 어느 요소에 사용될지를 정하는 어노테이션이다.
@Retention : 어노테이션의 생명주기또는 유지되는 기간 정책을 정하는 어노테이션이다.
@Inherited : 어노테이션이 하위 클래스에도 상속되도록 하는 어노테이션이다. 즉, 상위 클래스에 붙이면 하위 클래스도 이 어노테이션이 붙은것과 같이 인식된다.
@Documented : 어노테이션에 대한 정보가 javadoc로 작성한 문서에 포함되도록 할 때 사용하는 어노테이션이다.
@Repeatable : 하나의 요소에 동일한 어노테이션을 사용가능하게 해주는 어노테이션이다.
등이 존재하나 주로 @Target, @Retention를 자주 사용한다.
어노테이션을 사용하는데 가장 큰 이유는 코드의 로직에 대한 컨텍스트가 응축돼 있어 적재적소에 사용된다면 불필요한 반복코드가 줄고 개발자는 비지니스 로직에 더 집중 할 수 있도록 만들어 주기 때문이다. 외에도 컴파일 타임에 소스 코드 조작, 런타임 시 동작 수정 또는 검사등의 효과도 있다.
1.어노테이션을 생성하는 방법은 클래스 생성시 annotation을 선택하면 아래의 사진처럼 '@'가 붙은 interface가 생성된다. 현재 상태에서는 다른 곳에서 참조는 가능하나 아무런 기능도 하지 않는다.
이후 위에 설명한 meta어노테이션중에서 필요한 어노테이션을 사용해 속성들을 추가해준다.
파라미터 요소에 사용, 생명주기는 Runtime으로 작성했다.
사용방법은 자신이 지정한 요소에 어노테이션을 작성해주면 된다.