스터디/인프런

[인프런 워밍업 스터디 클럽 0기- BE] 1일차 과제

행복한라이언 2024. 2. 19. 20:58
728x90
반응형
  • 어노테이션을 사용하는 이유 (효과) 는 무엇일까?
  • 나만의 어노테이션은 어떻게 만들 수 있을까?

1. 어노테이션을 사용하는 이유 (효과) 는 무엇일까?

  • 어노테이션의 정의
    • Annotations in Java provide additional information to the compiler and JVM. 
    • In the Java computer programming language, an annotation is a form of syntactic metadata that can be added to Java source code
    • ▷ 자바에서 어노테이션은 컴파일러나 JVM에 추가적 정보를 제공하며 이는 자바소스 코드에 추가해서 사용하는 메타데이터의 일종이다. 
    • 골뱅이(@)기호를 붙여서 사용한다.
  • 어노테이션 사용 이유 및 목적 - 코드의 가독성과 유지보수성 향상
    • 코드 문법 에러 체크
      • 컴파일러에게 코드의 의도를 전달하고 특정 규칙을 강제한다. 
      • Ex) @Override - 메소드가 상위 클래스의 메소드를 오버라이드하는 것을 명시적으로 나타내며 컴파일러가 이를 검사하도록 한다.
    • 런타임 환경에서의 행동 지정
      • 런타임 시 특정 기능을 실행하도록 정보 제공한다.
      • Ex) @GetMapping - 컴파일 시점에 컴파일러에게 HTTP GET요청을 처리하는 메소드임을 알려준다.
    • 소프트웨어 개발 툴의 지원
      • Ex) Java의 JUnit @Test - @Test 어노테이션이 붙은 메소드들은 Test메서드로 인식하고 테스트의 대상이 된다.

2. 나만의 어노테이션은 어떻게 만들 수 있을까?

  • @Interface를 사용하여 인터페이스 정의
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.METHOD)
public @interface MyCustomAnnotation {
    // 어노테이션 멤버 정의
    String value() default ""; // 기본값을 지정할 수 있음
    int number() default 0; // 다른 타입의 멤버도 가능
}

 

 

  • @Retention : 어노테이션이 유지되는 기간
    • RetentionPolicy.SOURCE: 소스 코드 수준에서만 어노테이션 정보를 유지하며, 클래스 파일에는 포함되지 않아 컴파일 이후 시점부터는 적용되지 않는다.
    • RetentionPolicy.CLASS: 클래스 파일에 어노테이션 정보를 유지하지만, 런타임 시에는 사용할 수 없다. 이는 Java Reflection을 사용하여 어노테이션 정보를 읽을 수 없음을 의미한다.
    • RetentionPolicy.RUNTIME: 런타임 시에도 어노테이션 정보를 유지한다. 이 경우 Reflection을 사용하여 프로그램 실행 중에도 어노테이션 정보를 읽고 처리할 수 있다.
  • @Target: 어노테이션을 적용할 수 있는 대상
    • @Target의 파라미터로는 `ElementType` 배열이 사용됩니다. `ElementType`은 다음을 포함하여 여러 가지 대상을 나타냅니다:
      • TYPE: 클래스, 인터페이스, enum 등의 타입 선언에 대해 어노테이션을 적용
      • FIELD: 필드(멤버 변수, enum)에 대해 어노테이션을 적용
      • METHOD: 메소드에 대해 어노테이션을 적용
      • PARAMETER: 메소드나 생성자의 파라미터에 대해 어노테이션을 적용
      • CONSTRUCTOR: 생성자에 대해서 어노테이션을 적용

3.  커스텀 어노테이션 실제로 만들어보기

- 추후 추가하기 -

 


출처)

https://www.simplilearn.com/annotations-in-java-explained-with-examples-article?utm_source=frs_article_page&utm_medium=top_share_option&utm_campaign=frs_copy_share_icon

 

Annotations in Java: Explained With Examples | Simplilearn

Annotations in Java provide additional information to the compiler and JVM. An annotation is a tag representing metadata about classes, interfaces, variables, methods, or fields. Click here to know more.

www.simplilearn.com

https://en.wikipedia.org/wiki/Java_annotation

 

Java annotation - Wikipedia

From Wikipedia, the free encyclopedia Syntactic metadata for Java source code In the Java computer programming language, an annotation is a form of syntactic metadata that can be added to Java source code.[1] Classes, methods, variables, parameters and Jav

en.wikipedia.org

 

728x90
반응형