직렬화 라이브러리 Gson 을 사용하다가 data class 의 default value를 무시하고 null로 직렬화 되는 문제점이 있어 편리 프로젝트에 kotlinx-serialize 직렬화 라이브러리를 도입하기로 팀원과 합의가 되어 채택되었다.

Kotlin Serialization이 뭘까?

@Serializable 어노테이션을 사용해서 클래스를 직렬화하게 만들어주는 라이브러리이다. 이 외에도 다양한 기능을 제공하는데, 자세한건 여기 참고!

라이브러리 적용

build.gradle(Project)

buildscript {
    ext {
        kotlin_version = '1.4.10'
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
    }
}

build.gradle(Gradle)

plugins {
    id 'kotlinx-serialization'
}

dependencies {
		// 2023.05.19 기준 깃헙 리드미 최신버전.
    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1"
}

사용하는 방법

자! 라이브러리도 추가했으니, 직렬화를 시작해보자!

@Serializable
data class LoginRequestDto(
    val id: String,
    val password: String,
    val nickname: String,
    val isAdult: Boolean
)

직렬화를 적용할 클래스에 @Serializable 어노테이션을 설정해준다.