애너테이션(Annotation)은 Java에서 메타데이터를 제공하는 특별한 형태의 문법으로, 코드에 대한 추가 정보를 컴파일러나 런타임 환경에 제공하는 데 사용됩니다. 애너테이션은 주석과 달리 실행 시점에도 활용할 수 있어 강력하고 유연한 프로그래밍을 가능하게 합니다. 이번 글에서는 Java 애너테이션의 개념과 활용법에 대해 알아 보겠습니다.
1. 애너테이션이란?
애너테이션은 클래스, 메서드, 필드, 변수 등에 추가적인 정보를 제공하기 위해 사용됩니다. 이를 통해 컴파일러에게 특정 동작을 지시하거나, 런타임에 데이터를 활용할 수 있습니다.
주요 특징
애너테이션의 기본 형식
@AnnotationName
public class MyClass {
@AnnotationName(value = "example")
public void myMethod() {
}
}
2. 애너테이션의 주요 활용 사례
예
@Override
public String toString() {
return "Hello, Annotation!";
}
예
@SuppressWarnings("unchecked")
public void myMethod() {
List list = new ArrayList();
}
예: Spring의 의존성 주입.
@Autowired
private MyService myService;
3. 표준 애너테이션
Java는 다음과 같은 표준 애너테이션을 제공합니다:
예
@Deprecated
public void oldMethod() {
System.out.println("This method is deprecated.");
}
예
@SuppressWarnings("deprecation")
public void useOldMethod() {
oldMethod();
}
4. 커스텀 애너테이션 생성
사용자 정의 애너테이션을 생성하여 특정 동작을 수행할 수 있습니다.
커스텀 애너테이션 예제
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value();
}
사용:
public class MyClass {
@MyAnnotation(value = "Hello, Custom Annotation!")
public void myMethod() {
System.out.println("Executing myMethod");
}
}
리플렉션을 통한 활용
import java.lang.reflect.Method;
public class AnnotationProcessor {
public static void main(String[] args) throws Exception {
Method method = MyClass.class.getMethod("myMethod");
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
if (annotation != null) {
System.out.println("Annotation Value: " + annotation.value());
}
}
}
출력:
Annotation Value: Hello, Custom Annotation!
5. 애너테이션 활용 사례
예
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
}
예
@Test
public void testAddition() {
assertEquals(5, 2 + 3);
}
6. 애너테이션 사용 시 주의사항
RetentionPolicy 종류
결론
Java에서의 애너테이션(Annotation) 활용법 알아보았습니다. Java 애너테이션은 코드에 메타데이터를 추가하여 컴파일러 지시, 코드 검사, 런타임 동작 제어 등을 가능하게 합니다.
표준 애너테이션부터 커스텀 애너테이션까지 다양한 활용법을 통해 개발 생산성과 코드 품질을 향상시킬 수 있으며, 적절한 애너테이션 사용으로 더 효율적이고 유지보수 가능한 코드를 작성해 보시길 바랍니다.
다음 블로그는 Java 17에서 Java 18로 업그레이 되면서 추가된 주요 기능에 대해 알아 보겠습니다. 감사합니다.
오키나와 나하공항에 도착하거나 돌아가는 길, 바쁜 비행 일정에 쫓겨 허겁지겁 평범한 음식으로 끼니를 대충 때우신…
간사이 여행을 계획 중이신가요? 오사카, 교토, 고베를 아우르는 간사이 지역 여행에서 가장 중요한 필수품이 바로…
일본으로의 여행을 꿈꾸며 설레는 마음으로 출발을 준비할 때, 반드시 잊지 말아야 할 부분이 있습니다. 그것은…
일본여행의 준비 청소년 시기, 가장 많이 꿈꾸는 ‘해외여행’. 그 중에서도 한국에서 가깝고 볼거리·즐길거리도 다양해 많은…