언어(Language)/Java

[Java] 어노테이션(Annotation) 개념 정리 및 종류

잇트루 2022. 9. 24. 00:00
반응형

Intro

프로그래밍에서 주석은 개발자의 입장에서 더 직관적이고 코드를 이해하기 쉽게 하며, 다른 사람에게 설명할 수 있도록 정보를 제공하는 역할이다.

어노테이션 또한 주석과 비슷한 역할을 담당한다고 할 수 있다. 즉, 주석은 사람에게 정보를 제공하는 것이라면, 어노테이션은 특정 코드를 사용하는 프로그램에게 정보를 전달한다.

 

어노테이션이란? (Annotation)

어노테이션은 다른 프로그램에게 유용한 정보를 제공하기 위해 사용되는 것으로 주석과 같은 의미를 가진다.

어노테이션의 역할

  1. 컴파일러에게 문법 에러를 체크하도록 정보를 제공한다.
  2. 프로그램을 빌드할 때 코드를 자동으로 생성할 수 있도록 정보를 제공한다.
  3. 런타임에 특정 기능을 실행하도록 정보를 제공한다.

어노테이션은 @를 사용하여 작성하며, 해당 타겟에 대한 동작을 수행하는 프로그램 외에는 다른 프로그램에게 영향을 주지 않는다.

 

어노테이션의 종류

어노테이션은 크게 세 가지로 구분된다. 자바에서 기본적으로 제공하는 표준 어노테이션과 어노테이션을 정의하는 데 사용되는 메타 어노테이션, 마지막으로 사용자 어노테이션이 있다.

 

 

표준 어노테이션

자바에서 기본적으로 제공하는 어노테이션이다.

@Override

컴파일러에게 메서드를 오버라이딩하는 것이라고 알린다.

 

@Deprecated

앞으로 사용하지 않을 대상임을 알린다.

 

@FunctionalInterface

함수형 인터페이스라는 것을 알린다.

 

@SuppressWarning

컴파일러가 경고 메시지를 나타내지 않는다.

 

@SafeVaragrs

제네릭과 같은 가변 인자의 매개변수를 사용할 때의 경고를 나타내지 않는다.

 

메타 어노테이션

어노테이션에 붙이는 어노테이션으로, 어노테이션을 정의하는 데 사용한다.

 

@Target

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

 

@Documented

어노테이션 정보를 javadoc으로 작성된 문서에 포함시킨다.

 

@Inherited

어노테이션이 하위 클래스에 상속되도록 한다.

 

@Retention

어노테이션이 유지되는 기간을 정하기 위해 사용한다.

 

@Repeatable

어노테이션을 반복해서 적용할 수 있도록 한다.

 

사용자 정의 어노테이션

사용자가 직접 정의하여 사용하는 어노테이션이다.

반응형