애너테이션은 소스 코드에 메타데이터를 추가하는 방법이다
'@' 기호를 사용하여 표시되며, 클래스, 메서드, 필드 등 다양한 요소에 적용 가능하다
코드 문서화
애너테이션을 사용하면 코드에 부가 설명이나 문서화 정보를 추가할 수 있다
런타임 처리 및 설정
애너테이션을 사용하여 런타임에 동적 작업을 수행할 수 있다
코드 생성
애너테이션 프로세서를 사용하여 애너테이션을 기반으로 코드를 자동으로 생성할 수 있다
반복적이고 번거로운 작업을 줄여주며, 코드의 일관성을 유지할 수 있습니다
ex) Lombok 라이브러리
유연성
애너테이션은 사용자 정의할 수 있으며, 프로그래머가 자신만의 애너테이션을 정의하여 사용할 수 있다
이를 통해 도메인별로 특화된 메타데이터를 추가, 프로그램에 독자적인 의미를 부여가 가능하다
프레임워크 통합
애너테이션은 다양한 자바 프레임워크와 라이브러리에서 널리 사용된다
스프링 프레임워크, JPA(Java Persistence API), 테스트 프레임워크 등에서 애너테이션을 활용하여 설정 및 동작을 제어한다.
코드 검증 및 검사
애너테이션을 사용하여 코드 검사 도구와 통합하여 코드 품질과 안정성을 향상시킬 수 있다
@Override
@Override // 오버라이드된 메서드 public void someMethod() { // 메서드 구현 }
@Deprecated
@Deprecated public void oldMethod() { // 더 이상 권장하지 않는 메서드 }```
사용자 정의 애너테이션
// 사용자 정의 애너테이션 정의 @interface MyAnnotation { String value(); int count() default 1; } // 사용자 정의 애너테이션 사용 @MyAnnotation(value = "Hello", count = 3) public class MyClass { // 클래스 내용 }