[kotlin] 코틀린 리플렉션을 이용한 저장된 필드 값 확인

코틀린에서 리플렉션(Reflection)은 프로그램 실행 중에 클래스의 정보를 조사하고 활용하는 기능을 말합니다. 이 기능을 사용하면 런타임 시에 클래스의 메서드, 필드, 주석 등의 정보를 확인하거나 수정할 수 있습니다.

이번 글에서는 코틀린을 사용하여 리플렉션을 이용해 객체의 저장된 필드 값을 확인하는 방법에 대해 알아보겠습니다.

1. 필요한 라이브러리 추가

먼저, 프로젝트에 kotlin-reflect 라이브러리를 추가해야 합니다. 이 라이브러리는 코틀린 리플렉션을 활용할 수 있도록 도와줍니다.

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
}

위의 코드를 프로젝트의 Gradle 파일에 추가하고, 라이브러리를 동기화하여 추가합니다.

2. 저장된 필드 값 확인하기

이제, 저장된 필드 값을 확인할 클래스를 작성해보겠습니다.

data class Person(val name: String, val age: Int)

위의 코드는 Person 클래스를 정의하고 있습니다. 이 클래스의 저장된 필드 값을 리플렉션을 이용하여 확인하는 방법은 다음과 같습니다.

import kotlin.reflect.full.memberProperties

fun main() {
    val person = Person("Alice", 30)
    val properties = Person::class.memberProperties
    for (prop in properties) {
        println("${prop.name} = ${prop.get(person)}")
    }
}

위의 코드에서 Person::class.memberProperties를 통해 Person 클래스의 저장된 모든 필드에 접근할 수 있습니다. 그리고 각 필드의 값을 가져오기 위해서는 prop.get(person)를 사용합니다.

이제, 이 코드를 실행하면 name = Aliceage = 30이라는 결과를 얻을 수 있습니다.

이렇듯, 코틀린의 리플렉션을 이용하면 객체의 저장된 필드 값을 동적으로 확인할 수 있습니다.

위에서 설명한 방법을 통해, 코틀린에서 리플렉션을 사용하여 객체의 저장된 필드 값을 확인하는 방법에 대해 알아보았습니다.