손영배 블로그 누구나 쉽게 이해하고 습득하기

Java 어노테이션 @Annotation 본문

Web

Java 어노테이션 @Annotation

손영배 2019. 5. 12. 22:36

Spring을썻본 사람들을 알꺼다 얼마나 어노테이션이 많은지 ㄷㄷㄷ Java에서 기초를 잘 다지고 이해를 해야 된다고 생각한다.

 

어노테이션(Annotation)은 메타데이터(metadata)라고 볼 수 있다. 메타테이터란 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보이다.

 

어노테이션의 용도

  1. 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공
  2. 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공
  3. 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공

예1번) @Override 어노테이션이다. @Override는 메소드 선언 시 사용하는데, (오버라이드와 오버로딩을 구분하기에 좋은 예인거 같다) 메소드가 오버라이드(재정의) 된 것임을 컴파일러에게 알려주어 컴파일러가 오버라이드 검사를 하도록 해준다. (정확히는 오버라이드가 되지 않았다면 컴파일러가 에러를 발생시킨다).

 

예2번) 어노테이션은 빌드 시 자동으로 XML 설정 파일을 생성하거나, 배포를 위해 jar 압축 파일을 생성하는데에도 사용된다.

 

예3번) 실행 시 클래스의 역할을 정의하기도 한다. @Configure