본문 바로가기

프로그래밍언어/Java

자바 어노테이션

0. 어노테이션이란?

- 어노테이션은 JDK1.5 이후 등장하였으며 크래스, 메소드, 변수에 @을 사용하여 컴파일 과정 혹은 실행 과정에 코드를 어떻게 처리할지 알려주기 위한 메타 데이터의 일종입니다. 

- 과거 자바 코드는 설정 파일과 분리되어 있어 개발의 어려움과 업데이트 문제가 있었습니다. 이를 하나의 파일로 코드와 설저을 관리하기위해 어노테이션기능이 추가되었습니다.

 

1. 어노테이션 용도

- 컴파일러에 문법 에러를 체크하도록 정보를 제공한다.

- 소프트웨어 개발툴에 적용할 빌드, 배치 시 코드를 자동 생성할 정보를 제공한다.

- 런타임 시 특정 기능을 실행할 정보를 제공한다. 

 

2. 어노테이션 종류

- 표준 어노테이션(java.lang, java.lang.annotaion) : 자바에 내장된 어노테이션

- 메타 어노테이션 : 어노테이션을 위한 어노테이션

- 사용자 정의 어노테이션

표준 어노테이션 : 
@Override : 메소드 오버라이드, 상속받은 메소드를 재정의 합니다. 
@SuppressWarnings : 컴파일 시 특정 경고 메시지가 발생하는 것을 억제합니다. 
@Deprecated : 더이상 사용되지 않는 크래스나 메소드에 선언하여 해당 코드를 컴파일 할 시 경고를 발생
@SafeVarargs : 제네릭 타입 가변 인자에 사용됩니다.
@FunctionalInterface : 함수형 인터페이스가 올바르게 선언 되었는지를 컴파일 시 확인하고 잘못된 경우 에러를 발생합니다. 
@Native : native 멤소드에서 참조되는 상수 앞에 붙습니다. 
+ 메타 어노테이션 : 
@Target : 어노테이션을 적용할 범위를 지정합니다. 
@Retention : 어노테이션을 유지하는 기간을 지정합니다. 
@Documented : javadoc으로 작성한 문서에 포함시킬 경우 해당 어노테이션을 추가합니다.
@Inherited : 어노테이션을 자손 클래스에 상속합니다. 
@Repeatable : 여러개로 사용할 수 있는 어노테이션에 설정합니다. 

https://velog.io/@jkijki12/annotation

 

[Java] 어노테이션이 뭔데??

자바 어노테이션에 대해서 공부하자!!

velog.io

 

 

3. @Override 어노테이션

- 재정의한 멤소드임을 명시합니다. 컴파일 시 부모 클래스에 있는 메서드와 매개변수가 일치하지 않을 경우 컴파일 오류를 발생시킵니다. 

- 즉, override를 명시하며 컴파일 시 강제합니다. 

java: method does not override or implement a method from a supertype

'프로그래밍언어 > Java' 카테고리의 다른 글

람다식  (0) 2023.05.24
가변객체와 불변객체  (0) 2023.05.23
[Java] Optional이 모길래???  (0) 2023.04.13
[자바 기초] 자바 클래스  (0) 2023.03.28
자바로 배우는 자료구조  (0) 2023.02.22