지금을 사는 사람

[Java] 애노테이션(Annotation) 본문

Java

[Java] 애노테이션(Annotation)

지금회 2023. 12. 15. 16:39
728x90

 

소개:

Java 언어의 강력한 특징 중 하나는 애너테이션(Annotation)입니다. 애너테이션은 코드에 메타데이터를 부여하여 컴파일러, 개발 도구, 런타임 환경 등에게 정보를 전달하는 강력한 도구로 활용됩니다. 이 블로그에서는 Java에서의 애너테이션에 대해 자세히 알아보겠습니다.


1. 애너테이션이란?

  • 정의:
    • 애너테이션은 Java 소스 코드에 메타데이터를 추가하는 특별한 형태의 주석입니다.
    • @ 기호를 사용하여 표현되며, 컴파일러에게 정보를 전달하거나 런타임에 동작을 변경하는 등의 역할을 수행합니다.

2. 애너테이션의 사용 예시

// 간단한 애너테이션 사용
@Deprecated
public class OldCode {
    // 클래스 내용...
}
  • @Deprecated:
    • 해당 클래스 또는 메서드가 더 이상 권장되지 않는다는 표시를 남깁니다.

3. 내장 애너테이션

  • @Override:
    • 메서드가 슈퍼클래스의 메서드를 오버라이드함을 명시합니다.
  • @SuppressWarnings:
    • 특정 경고를 무시하도록 지시합니다.

4. 커스텀 애너테이션 생성

// 간단한 커스텀 애너테이션 정의
public @interface MyAnnotation {
    String value() default "default value";
    int count() default 0;
}
  • @interface:
    • 애너테이션을 정의하기 위한 키워드입니다.

5. 리플렉션과의 결합

  • 리플렉션(Reflection):
    • 런타임에 클래스의 정보를 분석하고 조작하는 기능입니다.
    • 애너테이션은 리플렉션과 함께 사용되어 런타임에 동적인 작업을 수행하는 데 유용합니다.

6. 프레임워크에서의 활용

  • 스프링 프레임워크:
    • @Controller, @Service, @Autowired 등을 사용하여 컴포넌트를 식별하고 의존성 주입을 수행합니다.
  • JPA (Java Persistence API):
    • 엔터티 클래스에 @Entity, @Table, @Column 등을 사용하여 데이터베이스 매핑 정보를 제공합니다.

7. 애너테이션 프로세서

  • 애너테이션 프로세서:
    • 컴파일 시점에 애너테이션을 분석하고 처리하는 도구로, 코드 생성, 경고, 검증 등을 수행할 수 있습니다.

8. 결론

Java의 애너테이션은 코드에 메타데이터를 부여하여 컴파일러, 개발 도구, 프레임워크 등에게 유용한 정보를 제공하는 강력한 도구입니다. 그들은 리플렉션과 결합하여 런타임에 동적인 작업을 수행하는 데 활용되며, 프레임워크에서는 구조를 정의하고 확장 가능한 코드를 작성하는 데 중요한 역할을 합니다.

 

728x90