Java

애너테이션

1space 2025. 6. 26. 10:36

자바의 정석[기초편]으로 공부한 내용을 정리한 글입니다.

 

애너테이션이란?

애너테이션(annotation)이란,
Java에서 소스코드에 추가적인 정보를 붙이는 주석 같은 기능입니다.
실제 프로그램 실행에 직접 영향을 주지 않고, 다른 프로그램(예: 컴파일러, 문서 생성기, 테스트 도구 등) 이 해당 정보를 읽어 활용할 수 있도록 도와주는 메타데이터(metadata)입니다.

메타데이터 = 데이터에 대한 데이터,
즉 프로그램의 일부가 아니라, 프로그램이나 도구가 참고할 수 있도록 코드를 꾸며주는 정보입니다.

왜 필요한가?

자바 개발자들은 "소스코드와 별도의 문서 파일을 따로 관리하는 것보다, 소스코드 안에 설명을 직접 적는 게 낫다"는 생각에서 애너테이션을 사용합니다.
예를 들어 /** ... */ 주석은 javadoc 문서 생성 도구(javadoc.exe)가 읽고 HTML 문서를 만들어줍니다.

 

애너테이션의 형식과 예시

/**
 * The common interface extended by all annotation types.
 * ...
 * @author Josh Bloch
 * @since 1.5
 */
public interface Annotation {
    ...
}
  • @author, @since 같은 @기호로 시작하는 태그가 애너테이션입니다.
  • 이들은 주석의 일종이지만, 컴퓨터가 읽고 처리할 수 있도록 형식화된 정보를 제공합니다.
  • Annotation 인터페이스는 모든 애너테이션이 구현하게 되는 공통 인터페이스입니다.

 

예시: @Test 애너테이션

@Test
public void method() {
    ...
}

이 의미는?

  • @Test는 "이 메서드를 테스트 프로그램에서 테스트 대상으로 삼아야 한다"는 표시입니다.
  • 해당 메서드는 프로그램에서 일반적인 실행에 영향을 주지 않습니다.
  • 대신 테스트 도구가 이 애너테이션을 보고 해당 메서드를 자동으로 실행합니다.

즉, 사람이 아니라 프로그램이 애너테이션을 읽고 처리하게 됩니다.

예: JUnit 테스트 도구는 @Test가 붙은 메서드만 골라서 실행함

 

 

💡 참고

  • JDK에서 기본 제공하는 애너테이션은 java.lang.annotation 패키지에 정의되어 있습니다.
  • @Override, @Deprecated, @SuppressWarnings, @FunctionalInterface 등이 대표적인 예입니다.
  • 자신만의 애너테이션도 정의할 수 있으며, 이를 커스텀 애너테이션이라 부릅니다.

 

'Java' 카테고리의 다른 글

메타 애너테이션  (0) 2025.06.26
표준 애너테이션  (0) 2025.06.26
열거형(enum)  (0) 2025.06.26
와일드 카드, 지네릭 메서드  (0) 2025.06.26
지네릭스 제약네릭스 제약  (0) 2025.06.25