[인프런워밍업클럽][BE] 과제 1 | Annotation

[질문]

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

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


1. Annotation

1.1 Annotation

어노테이션(Annotation) 이란?

  • 프로그래밍 언어에는 영향을 미치지 않으면서 프로그램에게

    소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시키기 위해 추가

    • 이 속성/클래스의 용도/역할/기능을 부여

    • 컴파일러에게 코드 문법 에러를 체크할 수 있도록 정보 제

     

어노테이션(Annotation)의 사용 이유

  • 구성/설정 정보를 외부 XML 설정 파일에 명시하는 기존 자바 웹 애플리케이션 구조 하에서는 규모가 커지거나 코드의 수정이 이뤄짐에 따라 수 많은 재 설정이 필요했음

  • 어노테이션은 어노테이션이 붙은 클래스/함수 등의 메타데이터를 간단한 @어노테이션명 형식으로 명시함으로써, 해당 기능을 간단하게 설정하여 수행토록 함

 

어노테이션의 특징

  • 간결함 : 비즈니스 로직에 영향을 주지 않으면서 실행 흐름을 변경시킬 수 있는 코딩이 가능해

  • 클래스, 메서드, 변수, 인자에 추가 가능

     

 

대표적인 어노테이션

  • @Controller

  • @Override

 

 

1.2 Custom Annotation

  • 사용자가 직접 정의하여 사용하는 어노테이션

  • 프레임워크나 API 등을 만들어 사용할 때 주로 사용

(1) Custom Annotation 정의하기

  • @interface 를 통해 해당 클래스를 어노테이션으로 정의

  • 어노테이션 내부에 값을 가지거나 설정할 수 있음

  • (참고한 블로그에서는 다른 어노테이션이 더 붙으나 아직 이해하지 못해서 아래 코드에는 넣지 않음)

import java.lang.annotation.*;

public @interface CustomApplication{
    String bookName();
    int price() default 10000; //값 설정 시 default 형태로 설정해야 함
}

 

(2) Custom Annotation 사용하기

import java.lang.annotation.*;

@CustomAnnotation(bookName = "일리아스")
class BookInfo {
}

 

 


참고자료

댓글을 작성해보세요.

채널톡 아이콘