안녕하세요.
이번 포스팅에서는 자바에서 사용되는
어노테이션에 대해 알아 보겠습니다.
1. 어노테이션 정의
어노테이션을 정의 할때 고려할 것은 크게 2가지로 볼수 있습니다.
첫번째는 어떤 대상에 어노테이션을 붙일것인가 인데
Class, Method, Field 등 적용할 대상을 정하는 것입니다.
@Target 이라는 어노테이션을 사용하고 ElementType 이라는 열거형으로 정의할 수 있습니다.
@Target({ElementType.[적용대상]})
ElementType (열거타입) | 적용대상 |
TYPE | 클래스, 인터페이스, 열거 타입 |
ANNOTATION_TYPE | 어노테이션 |
FIELD | 필드 |
CONSTRUCTOR | 생성자 |
METHOD | 메소드 |
LOCAL_VARIABLE | 로컬 변수 |
PACKAGE | 패키지 |
두번째는 어노테이션을 언제까지 유지할 것인지를 정의하는 것입니다.
@Retention이라는 어노테이션을 사용합니다.
크게 3가지 유지범위를 갖습니다.
@Retention(RetentionPolicy.[유지범위])
RetentionPolicy | 설명 |
SOURCE | 소스에서만 유지하고 class 파일(바이트 코드)에 사라짐 |
CLASS | class 파일까지(바이트 코드) 유지, 런타임 동작시 존재안함(바이트 코드들이 jvm에 올라갈때), CLASS는 디폴트 Retention이다. |
RUNTIME | 런타임시에도 어노테이션이 유효하다. 런타임에도 유지하기 때문에 리플렉션을 이용해 해당 클래스에 대한 특정 로직을 수행할 수 있다. |
이렇게 어노테이션의 정의에 대해 간단하게 알아보았습니다.
다음 포스팅에는 어노테이션이 어떻게 코드에 영향을 미치는지 알아보겠습니다.
'기타 > 자바 중급' 카테고리의 다른 글
자바 어노테이션(2) - 리플렉션 (0) | 2021.06.23 |
---|
댓글