Backend/Java & Spring

애노테이션(Annotation)이란?

khu2172 2025. 5. 30. 23:11

정의

애노테이션(Annotation)은
자바 소스 코드에 추가로 부착하여 의미를 부여하는 메타데이터이다.
JDK 1.5 이상에서 사용 가능하며, 주로 컴파일러나 런타임 환경에서 특정 정보를 전달하는 데 사용된다.

애노테이션은 프로그램의 주된 데이터나 로직은 아니지만,
컴파일러나 프레임워크가 해당 코드를 어떻게 처리해야 하는지를 알려주는 부가 정보 역할을 한다.


메타데이터란?

메타데이터는 "데이터에 대한 데이터", 즉 데이터의 속성 정보를 설명하는 정보를 의미한다.
애노테이션은 이러한 메타데이터의 형태로 코드에 부착되어, 컴파일/빌드/실행 과정에서 다양한 기능을 유도하거나 제어하는 데 사용된다.


애노테이션의 주요 사용 목적

1. 문법 오류 검사 지원

  • 컴파일러가 코드를 분석하고 잘못된 사용을 감지하여 개발자가 오류를 조기에 인지할 수 있도록 도와준다.

2. 코드 자동 생성

  • 빌드 도구나 프레임워크가 애노테이션 정보를 바탕으로 필요한 코드를 자동 생성하거나 설정을 주입할 수 있다.

3. 런타임 기능 제어

  • 실행 중에 애노테이션 정보를 참조하여, 특정 기능을 동적으로 적용하거나 제어할 수 있다.
    (예: 프레임워크의 의존성 주입, 트랜잭션 처리 등)

정리

항목 설명
정의 코드에 부착하는 메타데이터로, 처리 방식이나 의미를 부여
동작 시점 컴파일 타임 또는 런타임
사용 효과 에러 검출, 자동 코드 생성, 실행 제어 등
대표 활용 예 프레임워크 설정, 테스트, DI(의존성 주입) 등

애노테이션은 자바 기반 프레임워크에서 매우 중요한 구성 요소로,
코드의 의미를 명확히 하면서도 반복 작업을 줄이고 실행 흐름을 제어하는 데 핵심적인 역할을 수행한다.

'Backend > Java & Spring' 카테고리의 다른 글

Spring Bean Life Cycle  (0) 2025.06.03
filter와 interceptor의 차이  (0) 2025.06.01
제네릭(Generic)이란?  (1) 2025.05.28
인스턴스화란 무엇인가?  (1) 2025.05.27
OAuth란?  (1) 2025.05.26