[kotlin] 맵(Map)을 사용하여 데이터를 직렬화하고 역직렬화하는 방법은 무엇인가요?

데이터 직렬화(Serialization)

직렬화란 데이터를 바이트 스트림으로 변환하는 과정입니다. Kotlin에서 맵을 직렬화하는 방법은 Gson이나 Jackson과 같은 라이브러리를 사용하여 JSON 형식으로 변환하는 것이 일반적입니다.

import com.google.gson.Gson

fun main() {
    val dataMap = mapOf("key1" to "value1", "key2" to "value2")

    val json = Gson().toJson(dataMap)
    println(json)
}

위의 코드에서는 Gson을 사용하여 dataMap이라는 맵을 JSON 형식의 문자열로 직렬화하고 출력하고 있습니다.

데이터 역직렬화(Deserialization)

역직렬화는 직렬화된 데이터를 다시 객체 형태로 변환하는 과정입니다. 역직렬화 역시 Gson이나 Jackson과 같은 라이브러리를 사용하여 JSON 데이터를 맵으로 변환하는 것이 일반적입니다.

import com.google.gson.Gson

fun main() {
    val jsonString = "{\"key1\":\"value1\",\"key2\":\"value2\"}"

    val mapType = object : TypeToken<Map<String, String>>() {}.type
    val dataMap: Map<String, String> = Gson().fromJson(jsonString, mapType)
    println(dataMap)
}

위의 코드에서는 Gson을 사용하여 JSON 형식의 문자열을 맵으로 역직렬화하고 있습니다.

위의 예시에서는 Gson을 사용하지만, 필요에 따라 다른 직렬화 및 역직렬화 라이브러리를 선택할 수 있습니다.

참고 자료: