티스토리 뷰

 

 

안녕하세요

 

Shiny Ocean 입니다  : )

 

이번 포스팅에서 다루어볼 내용은 어노테이션입니다.

 

 

 

개요

어노테이션은 메타데이터의 일종으로서 데이터를 설명해주는 데이터이다.

자바에서는 크게 세가지의 용도로 사용됩니다.

 

1. 코드 문법 작성 에러를 체크하도록 추가 정보 제공

ex) @Override

2. 개발 툴이 빌드나 배치시 코드를 자동으로 생성할수 있도록 정보를제공

3. 런타밍시 특정 기능을 실행하도록 정보를 제공, 어떠한 객체가 특별한 역할을 수행하여야 할때

ex) 서블릿, 컨트롤러

 

웹개발을 진행하다보면 다양한 어노테이션들을 사용하게 될것입니다. 그냥 편하게 동작원리를 모른체로 기계적으로 사용해도 무방하지만 알고 넘어가면 더 좋을것 같아 다루어 보게되었습니다.

 

 

어노테이션 타입 정의

소스파일 생성 : 어노테이션이름.java

내용: public @interface 어노테이션이름 {}

적용: @어노테이션이름

 

 

어노테이션 내용 선언

어노테이션의 엘리먼트 멤버: 어노테이션을 코드에 적용할때 외부의 값을 입력받을 수 있도록 하는 역할

 

엘리먼트 선언은 다음과 같다.

 

타입 엘리먼트 이름() {default 값};

ex) int element1() {1};

 

타입의 경우 기본타입, 참조타입을 모두 사용할 수 있다.

 

이를 적용하는 방법은 아래와 같다.

 

@어노테이션이름 (엘리먼트이름 = "값")

이때 디폴트값이 있는경우 디폴트값이 없는 엘리먼트만 지정해주면 된다.

 

 

기본 엘리먼트 value)

주로 웹 서블릿을 다룰때 어노테이션의 값으로 클라이언트의 주소값을 입력하는 경우가 많을 것이다.

이때 엘리먼트의 이름을 언급하지 않고 아래와 같이 값만 주는 경우 또한 빈번하다.

@WebServlet("/main")

 

이때 사용하는 것이 기본 엘리먼트  value이다 

어노테이션 클래스 안에 String value(); 이런식으로 엘리먼트이름 대신 value()를 적어주면 된다.

만약 이때 두개이상의 속성을 기술 할때는 반드시 value="값" 을 지정을 해주고 다른 엘리먼트의 값을 지정해주어야 한다.

 

 

어노테이션 적용 대상 지정

어노테이션의 적용할 대상을 지정할때는 @Target 어노테이션을 사용한다.

해당 타겟 어노테이션에 필요한 엘리멘트 값들을 배열의 형태로 넣어준다. 그 항목으로 타입이나 필드 메소드 등을 나열해준다.

 

해당의미는 타입이나 필드나 메소드 등에 해당 어노테이션을 적용할수 있다는 의미이다.

 

 

 

어노테이션 유지 정책

해당 어노테이션이 적용된 코드가 유지되는 시점을 지정하는 것으로 범위를 지정해준다 생각해도 무방하다.

이는 열거상수(Enum)으로 지정되어있는 것들중 하나를 골라 쓰면 된다. 이는 SOURCE 가 될수도 있고 CLASS가 될수도 있고 RUNTIME이 될수도 있다. 이름자체에 범위의 의미가 직관적임으로 설명은 생략하겠다.

 

유지 정책을 지정할떄는 @Retention 이라는 어노테이션을 사용하며 예는 아래와 같다.

 

@Retention(RetentionPolicy.RUNTIME)

당연히 런타임동안 해당 어노테이션을 유지시키는 어노테이션으로 보인다.

 

 

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함