inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

문정환
0

자바를 사용하다보면 메서드나 클래스명 위에 @가 붙은 것들을 많이 보았을 것 이다. ex) @Override

Override가 재정의라는것은 알고 있지만 도대체 @가 붙은 게 무엇이고 무슨 기능을 할까?

지금부터 어노테이션에 대해 알아보도록 하자.

 

어노테이션 이란?

어노테이션은 사전적 의미로는 주석이라는 뜻이다. 자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터(meta data: 데이터를 위한 데이터)라고 볼 수 있다.

 

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

 

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

커스텀 어노테이션을 만들 때 몇 가지 규칙이 있습니다.

  1. 어노테이션 타입은 @interface로 정의해야합니다. 모든 어노테이션은 자동적으로 java.lang.Annotation 인터페이스를 상속하기 때문에 다른 클래스나 인터페이스를 상속 받으면 안됩니다.

  2. 파라미터 멤버들의 접근자는 public이거나 default여야만 합니다.

  3. 파라미터 멤버들은 byte,short,char,int,float,double,boolean,의 기본타입과 String, Enum, Class, 어노테이션만 사용할 수 있습니다.

  4. 클래스 메소드와 필드에 관한 어노테이션 정보를 얻고 싶으면, 리플렉션만 이용해서 얻을 수 있습니다. 다른 방법으로는 어노테이션 객체를 얻을 수 없습니다.

 

최초 어노테이션 생성

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface OperationIcon {
    String strategy() default "+";
}


@Target

@Retention

Main 실행

public class TestMain {
    public static void main(String[] args) {

        CalculatorService calculator = new CalculatorService();
        calculator.add(5, 3);
        calculator.subtract(10, 4);
    }
}

 

답변 0