[java] 애노테이션이 동작하는 시점

애노테이션(Annotation)은 Java 소스 코드에 추가 정보를 제공하는 데 사용됩니다. 이러한 애노테이션은 다양한 시점에서 동작할 수 있습니다.

컴파일 시간

애노테이션을 사용하여 컴파일러가 코드를 검사하고 경고를 생성하거나 코드를 생성할 수 있습니다. 예를 들어, @Deprecated 애노테이션은 해당 메서드나 클래스가 더 이상 권장되지 않음을 표시하며, 컴파일 시간에 해당 요소를 사용할 경우 경고를 발생시킵니다.

런타임 시간

일부 애노테이션은 런타임에 동작합니다. 예를 들어, @Override 애노테이션은 컴파일 시간에는 아무런 동작을 하지 않지만, 해당 메서드가 실제로 조상 클래스에서 상속되었는지를 런타임 시점에 확인합니다.

소스 코드 분석 시간

애노테이션 처리기를 사용하여 컴파일된 클래스 파일을 분석할 때 애노테이션을 활용할 수 있습니다. 예를 들어, 애노테이션을 사용하여 코드 생성기를 구동하거나 특정 동작을 수행할 수 있습니다.

애노테이션의 동작 시점은 사용 목적에 따라 다르며, 올바른 시점에서 애노테이션을 사용함으로써 코드의 유연성과 가독성을 향상시킬 수 있습니다.

참고 문헌: