kotlin annotation 만들기

Kotlin은 Java와 함께 사용되는 매우 인기 있는 프로그래밍 언어입니다. Kotlin의 강력한 기능 중 하나는 커스텀 어노테이션을 정의하여 애플리케이션에 메타데이터를 추가할 수 있다는 것입니다. 이번 블로그 포스트에서는 Kotlin에서 어노테이션을 만드는 방법에 대해 알아보겠습니다.

어노테이션 정의하기

어노테이션은 @interface 키워드와 함께 정의됩니다. 모든 어노테이션은 Annotation 클래스로부터 상속받아야 합니다. 어노테이션은 메타데이터를 추가하기 위해 클래스, 함수 또는 프로퍼티에 적용될 수 있습니다.

annotation class CustomAnnotation

위의 예제는 간단한 어노테이션을 정의하는 방법을 보여줍니다. CustomAnnotation이라는 이름의 어노테이션을 정의하고 있습니다.

어노테이션 속성 추가하기

어노테이션에는 속성을 추가하여 필요한 메타데이터를 전달할 수 있습니다. 이를 위해 어노테이션 정의에 속성을 추가해야 합니다.

annotation class CustomAnnotation(val value: String)

위의 예제는 value라는 이름의 속성을 추가한 어노테이션을 보여줍니다. 이 속성은 String 형식의 값을 가져야 합니다.

어노테이션 사용하기

어노테이션을 사용하기 위해서는 @기호를 이용하여 어노테이션의 이름을 애플리케이션의 코드에 적용해야 합니다.

@CustomAnnotation("Hello, Kotlin!")
fun sayHello() {
    println("Hello, World!")
}

위의 예제는 CustomAnnotation 어노테이션을 sayHello() 함수에 적용하는 방법을 보여줍니다. 이 어노테이션은 “Hello, Kotlin!”라는 값을 가지고 있습니다.

어노테이션 처리하기

어노테이션의 메타데이터에 접근하기 위해서는 Kotlin의 Reflection API를 사용해야 합니다. Reflection API를 사용하여 어노테이션 정보를 동적으로 가져올 수 있습니다. 예를 들어, 아래의 코드는 어노테이션을 처리하고 해당 메타데이터를 출력하는 예제입니다.

fun processAnnotation(obj: Any) {
    val annotation = obj.javaClass.getAnnotation(CustomAnnotation::class.java)
    if (annotation != null) {
        println("Annotation value: ${annotation.value}")
    } else {
        println("Annotation not found!")
    }
}

위의 코드는 processAnnotation() 함수를 정의하고, 주어진 객체의 어노테이션 정보를 가져오는 방법을 보여줍니다. CustomAnnotation을 사용한 클래스나 함수를 파라미터로 전달하여 해당 어노테이션의 값을 출력할 수 있습니다.

마치며

이렇게 Kotlin에서 어노테이션을 만들고 사용하는 방법에 대해 알아보았습니다. 어노테이션을 사용하면 애플리케이션에 메타데이터를 추가하여 코드를 더 유연하게 만들 수 있습니다. Kotlin의 강력한 언어 기능을 활용하여 직접 커스텀 어노테이션을 작성해보세요!

#Kotlin #어노테이션