정의
애노테이션(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 |