[kotlin] 애노테이션과 데이터 클래스

애노테이션(annotation)은 코드에 부가적인 정보를 추가하는 방법으로, 소프트웨어 툴이나 컴파일러 등이 사용할 수 있는 메타데이터의 형태로 제공됩니다. 코틀린에서도 애노테이션을 사용하여 여러 가지 정보를 클래스나 함수에 부가적으로 표시할 수 있습니다.

데이터 클래스(data class)는 주로 데이터를 담는 클래스를 간단하게 만들 때 사용됩니다. 코틀린에서는 데이터 클래스를 선언할 때 몇 가지 특별한 기능을 제공하여 일반 클래스보다 간단하게 데이터를 다룰 수 있습니다.

애노테이션 사용하기

애노테이션은 @ 기호를 사용하여 선언하며, 클래스나 함수 등에 부가적인 정보를 제공할 수 있습니다.

예를 들어, @Deprecated 애노테이션을 사용하여 특정 함수가 더 이상 사용되지 않음을 나타낼 수 있습니다.

@Deprecated("This function is deprecated. Use newFunction() instead")
fun oldFunction() {
    // function implementation
}

또한, 사용자가 직접 애노테이션을 정의하여 사용할 수도 있습니다.

annotation class CustomAnnotation(val description: String)

위의 예제에서는 @CustomAnnotation을 사용하여 클래스나 함수 등에 사용자 정의 애노테이션을 부여할 수 있습니다.

데이터 클래스 사용하기

데이터 클래스를 선언할 때는 data 키워드를 사용합니다. 데이터 클래스는 주 생성자에 최소한 하나의 매개변수를 가져야 하며, 클래스 내에서 인스턴스의 속성으로 선언된 매개변수에 해당하는 프로퍼티와 그에 대응하는 componentN() 함수를 자동으로 생성합니다.

예를 들어, 아래와 같이 사용자 정보를 담는 데이터 클래스를 정의할 수 있습니다.

data class User(val id: Int, val name: String)

위의 User 클래스를 선언함으로써, 데이터 클래스의 주 생성자로 정의된 두 개의 프로퍼티인 idname에 대한 component1(), component2() 함수가 자동으로 생성됩니다. 이를 통해 간편하게 객체 분해나 패턴 매칭을 사용할 수 있습니다.

애노테이션과 데이터 클래스는 코틀린에서 매우 유용하게 사용될 수 있는 기능으로, 코드의 가독성과 유지보수성을 향상시키는 데 도움이 됩니다.

더 많은 정보는 코틀린 공식 문서를 참고하시기 바랍니다.