22. 어노테이션

thsamajiki·2022년 10월 25일
0

JAVA

목록 보기
20/24

Java Annotation

  • Annotation (@)은 사전적 의미로 '주석'이다. --> Java에서 @를 이용한 주석이다.
  • Java 코드에 주석을 달아 특별한 의미를 부여한 것이며 특별한 기능을 수행하도록 하는 기술이다. (클래스, 메소드, 변수 등 모든 요소에 선언이 가능함) → 즉, 프로그램에게 추가적인 정보를 제공해주는 메타 데이터라고도 볼 수 있다.
  • JDK5 부터 등장하였다. Java, Spring이 제공해주는 것도 있고, 사용자가 직접 정의하여 만들 수 있다.

용도

  • @Override 어노테이션처럼 컴파일러를 위한 정보를 제공하기 위한 용도-> 컴파일러에게 정보(코드 작성 문법 에러 등)를 제공한다.-> 컴파일 과정에 어노테이션 정보로부터 코드를 생성하기 위한 용도이다.
  • SW 개발 툴이 빌드나 배치를 수행할 때 코드를 자동으로 생성할 수 있도록 정보를 제공한다.
  • 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공한다.

기본적으로 Annotation을 사용하는 순서는 다음과 같다.

  1. Annotation 정의
  2. 클래스에 Annotation 배치 (꼭 클래스가 아니여도 된다.)
  3. 코드가 실행되는 중에 Reflection을 이용하여 추가 정보를 획득하여 기능을 실시힌다.

Reflection

  • 프로그램이 실행 중에 자신의 구조와 동작을 검사하고, 조사하고, 수정하는 것을 의미한다.
  • 프로그래머가 데이터를 보여주고, 다른 포맷의 데이터를 처리하고, 통신을 위해 직렬화를 수행하고, bundling을 하기 위해 일반 SW 라이브러리를 만들도록 도와준다.
  • 객체 지향 프로그래밍 언어인 Java에서 Reflection을 사용하면 컴파일 타임에 인터페이스, 필드, 메소드 이름을 알지 못하여도 실행 중에 클래스, 인터페이스, 필드 및 메소드에 접근할 수 있다.또한, 멤버 접근지정자 규칙을 무시할 수 있다.(Ex) Reflection 사용 시 서드 파티 라이브러리의 클래스에서 private 필드의 값을 변경할 수 있다.
profile
안드로이드 개발자

0개의 댓글