🍎🔖@어노테이션 (Annotation)

     

    어노테이션은 이전 포스팅에서 깐 다룬 적이 있었는데, 오늘은 제대로 파헤쳐보겠습니다.😊

     

    어노테이션 맛보기

     

    🚗오버라이딩과 🏠오버로딩에 대해 설명해주세요

    키워드 🚗오버라이딩 🚗? : 엄마 차를 내 마음대로 꾸미고, 활용하는 것 부모 클래스의 메소드를 내 입맛대로 "재정의"하는 것 오버라이딩을 이해하기 위한 배경 지식 오버라이딩의 특징 오버

    seongeun-it.tistory.com

     

     

    키워드

    • 🍎🔖어노테이션이란?
    • 어노테이션의 탄생 배경
    • 왜 어노테이션을 🍎🔖사과에 비유했을까?
    • 어노테이션의 대표적인 예) @Override
    • 어노테이션의 장점👍
    • 메타 어노테이션의 종류 3개 

     

    🍎🔖어노테이션이란?

    • Annotation은 프로그램 내에서 주석과 유사하게, 프로그래밍 언어에는 영향을 미치지 않으면서 프로그램/프로그래머에게 유의미한 정보를 제공하는 역할을 합니다.
      • 즉, 이 속성을 어떤 용도로 사용할지, 이 클래스에 어떤 역할을 부여할지를 결정합니다.
      • 혹은, 인터페이스 기반으로 한 문법으로 주석처럼 코드에 달아 클래스에 특별한 의미를 부여하거나 기능을 주입할 수 있습니다.

     

    어노테이션의 탄생 배경

    • JDK5이전까지는 소스코드와 설정 파일(XML 등)을 따로 유지했었습니다. 하지만 관리하기 불편했습니다.
    • 그래서, 어노테이션이라는 것을 통해 소스코드에 설정정보를 추가해서 함께 유지하게 됨
      • 즉, 시스템 전반에 영향을 주는 메타데이터는 XML로 설정하여 코드로부터 독립적으로 분리되는 것이 바람직합니다. 그 이유는 변경 사항이 있을 때 유지보수성이 높아지기 때문입니다. 설계 시 확정되는 부분은 어노테이션 기반 설정으로 개발의 생산성을 향상하는 것이 바람직합니다.

     

    왜 어노테이션을 🍎🔖에 비유했을까?

    출처 : https://www.nextree.co.kr/p5864/

    • 소스 코드(==사과)에 붙이는 라벨이라고 생각하면 좋습니다. 위 그림은 커스텀 어노테이션의 사용과 실행 절차를 사과가 포장되는 과정에 비유하여 설명하고 있는데요, 판매 가능한 사과는 @CanSale이라는 라벨(어노테이션)을 달아서 포장 과정 시 이를 판별하여 제품을 포장하는 이미지를 떠올리면 좋을 것 같습니다. 

     

    어노테이션의 대표적인 예

    vo클래스에서 사용한 toStirng 메소드에서의 @Override 어노테이션이 대표적인 예입니다,

    부모의 멤버를 오버 라이딩할 때 오탈자를 입력하는 경우가 많은데, 이러한 실수를 방지하기 위한 어노테이션입니다.

    오버 라이딩을 올바르게 했는지 컴파일러가 체크하게 한다.

    즉, 컴파일러(javac.exe)가 사용하는 어노테이션

     

     

    어노테이션의 장점

    1. 간결함

    2. 로직을 방해하지 X

    3. 정보 제공

     

    어노테이션의 장점은 바로 간결함인데요, 이는 로직 흐름에 대한 컨텍스트가 응축되어 있어, 불필요한 반복 코드가 줄고 개발자는 비지니스 로직에 더 집중할 수 있도록 만들어 주기 때문입니다.

    또한, 설정 정보를 코드에 포함시켜 유지할 수 있으며, 설정 파일을 공유하는 불편함이 없습니다.

    소스코드의 로직을 방해하지 않고, 특정 프로그램을 위해 정보를 제공할 수 있음

     

     

     

    메타 어노테이션의 종류 3개 

    메타 어노테이션어노테이션을 선언할 때 사용하는 어노테이션입니다. 이 부분에 대한 컨텐츠는 필요하면 다시 만들어보겠습니다. 일단 이 3개의 이름만 익숙해지는 것을 목표로 했습니다. 

    • @Retention
    • @Inherit
    • @Target

     

     


     

    참고 블로그

     

    [Java] 자바의 어노테이션(Annotation)

    자바의 어노테이션(Annotation)을 알아보자 :raising_hand:

    ahnyezi.github.io

     

    Java Annotation: 인터페이스 강요로부터 자유를…

    작년에 했던 프로젝트에서 Spring Annotation과 JAXB Annotation을 사용한 경험이 있습니다.  Annotation을 이용해서 객체의 속성을 매핑하는데 유용하게 사용했던 기억이 나네요. 하지만 최근에 Annotation에

    www.nextree.co.kr

     

     

    Annotation과 Reflection, 그리고 코드 속의 MetaData

    Annotation과 Reflection, 그리고 코드 속의 MetaDataQ: Annotation 이란 무엇인가?A: Annotation ...

    blog.naver.com

     

     

    728x90

    댓글