Java - 어노테이션(Annotation)이란 무엇인가?

 어노테이션은 JDK5 이상 버전에서부터 등장한 것으로 클래스나 매소드 또는 변수에 @를 사용하는 것을 말한다.

 

Why we use Annotation?

 어노테이션은 사전적 의미로 주석을 의미한다. 주석과는 역할이 다르지만 주석처럼 달아서 특수한 의미 부여를 할 수 있으며 기능주입이 가능하다. 이를 사용하는 가장 큰 이유는 프로그램에게 추가 정보를 제공하는 메타 데이터이기 때문에 사용한다.

 

어노테이션의 기능

1. 자식 클래스에 여러개의 메소드가 정의되어 있을 때 사용

해당 메소드가 부모 클래스에 있는 메소드를 오버라이딩 했다는 것을 명시적으로 선언한다.

 

 어노테이션을 사용하지 않으면 자식 클래스에 여러 개의 메소드가 있을 경우, 어떤 메소드가 오버라이딩 되었는지 쉽게 파악하기 어렵다. 이때 오버라이드 어노테이션으로 명시적으로 선언하면 명시적으로 어떤 메소드가 오버라이딩 되었는지를 쉽게 파악할 수 있다.

 

2. 컴파일러에게 문법 체크를 하도록 알려주는 기능

 오버라이딩을 하기 위해서는 부모 클래스에 있는 메소드명과 매개변수를 동일하게 가져가야한다.

그런데 제대로 오버라이딩 했다고 생객했는데, 매개변수를 잘못 지정했을 수도 있다.

 

따라서 어노테이션을 사용하면 이 메소드는 Override된거야 라고 컴파일에게 알려서 컴파일 하기전에 컴파일러가 이러한 사항을 체크할 수 있게된다.