[kotlin] 애노테이션을 활용한 리플렉션 처리
애노테이션(annotation)은 코틀린에서 코드에 메타데이터를 추가하는 강력한 방법입니다. 런타임에 클래스나 메서드 등의 정보를 확인할 때 리플렉션(reflection)을 사용할 수 있습니다. 이 글에서는 코틀린에서 애노테이션과 리플렉션을 함께 사용하는 방법을 알아보겠습니다.
애노테이션 정의하기
annotation class MyAnnotation(val name: String, val age: Int)
위의 예시와 같이 annotation
키워드를 사용하여 애노테이션을 정의할 수 있습니다. 애노테이션을 사용하기 위해서는 @
기호를 붙이고, 필요에 따라 매개변수를 지정할 수 있습니다.
애노테이션 적용하기
@MyAnnotation(name = "John", age = 30)
class MyClass {
// 클래스 내용
}
클래스, 메서드, 변수 등에 @
기호를 사용하여 애노테이션을 적용할 수 있습니다.
리플렉션을 통한 애노테이션 정보 조회하기
리플렉션을 사용하여 애노테이션 정보를 조회할 수 있습니다. 아래 코드는 클래스의 애노테이션 정보를 출력하는 예시입니다.
fun main() {
val myClass = MyClass::class
val annotation = myClass.annotations.find { it is MyAnnotation } as? MyAnnotation
if (annotation != null) {
println("Name: ${annotation.name}, Age: ${annotation.age}")
}
}
위의 코드에서는 MyClass
에 적용된 애노테이션 정보를 조회하여 출력하는 예시입니다.
결론
코틀린의 애노테이션과 리플렉션은 코드의 유연성을 높여주는 강력한 기능입니다. 애노테이션을 사용하여 메타데이터를 추가하고, 리플렉션을 통해 런타임에 이를 활용할 수 있습니다. 이를 통해 보다 다양하고 유연한 프로그래밍이 가능해집니다.
참고 자료: 코틀린 공식 문서