본문 바로가기
기타/자바 중급

자바 어노테이션(1)

by 창이2 2021. 6. 18.

안녕하세요.

이번 포스팅에서는 자바에서 사용되는

어노테이션에 대해 알아 보겠습니다.

 

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

댓글