코틀린 어노테이션

코틀린은 자바와 함께 사용하기 쉬운 프로그래밍 언어입니다. 언어 자체의 간결함과 함수형 프로그래밍의 특성을 지니고 있어 개발자들 사이에서 인기를 얻고 있습니다. 이중 어노테이션은 코틀린에서 자주 사용되는 기능 중 하나입니다. 어노테이션은 코드에 추가적인 정보를 제공해주는 역할을 합니다.

어노테이션 정의하기

코틀린에서 어노테이션을 정의하려면 annotation 키워드를 사용합니다.

annotation class MyAnnotation

위의 예제에서 MyAnnotation은 어노테이션의 이름입니다.

어노테이션 적용하기

어노테이션을 사용하려면 @ 기호를 붙이고, 어노테이션의 이름을 명시해야 합니다. 어노테이션은 클래스, 함수, 프로퍼티 등에 적용할 수 있습니다.

@MyAnnotation
class MyClass {
    @MyAnnotation
    fun myFunction() {
        // 함수 내용
    }

    @get:MyAnnotation
    val myProperty: String = "Hello"
}

위의 예제에서 @MyAnnotationMyClass 클래스와 myFunction 함수, 그리고 myProperty 프로퍼티에 어노테이션을 적용하는 것을 보여줍니다. 또한, myProperty에 적용된 어노테이션 앞에 get 접두사가 붙어 있는데, 이는 프로퍼티의 getter 메서드에만 어노테이션을 적용한다는 의미입니다.

어노테이션의 매개변수

어노테이션에는 매개변수를 추가할 수도 있습니다. 매개변수를 추가하려면 어노테이션 정의에서 괄호 안에 매개변수 이름과 타입을 명시해야 합니다.

annotation class MyAnnotation(val value: String)

위의 예제에서는 value라는 이름의 문자열 타입 매개변수를 가지는 MyAnnotation 어노테이션을 정의한 것입니다. 이제 이 어노테이션을 사용할 때 매개변수 값을 명시해야 합니다.

@MyAnnotation("example")
class MyClass {
    // ...
}

어노테이션의 활용

어노테이션은 주로 컴파일러나 프레임워크에 추가적인 정보를 제공하는 용도로 활용됩니다. 예를 들어, 코틀린의 @JvmStatic 어노테이션은 자바로 컴파일될 때 정적 메서드로 변환될 수 있도록 하는 역할을 합니다.

@JvmStatic
fun myStaticFunction() {
    // 정적 함수 내용
}

위의 예제에서 myStaticFunction은 자바에서 정적 메서드로 변환될 수 있도록 @JvmStatic 어노테이션을 사용한 것을 볼 수 있습니다.

마무리

코틀린 어노테이션은 코드에 추가적인 정보를 제공해주고, 컴파일러나 프레임워크와의 상호작용을 도와주는 유용한 기능입니다. 어노테이션은 프로젝트에서 특정한 목적을 달성하기 위해 사용될 수 있으므로, 적재적소에 적절하게 활용해보세요.

#Kotlin #어노테이션