본문으로 건너뛰기

Structuring data

SyncDatabase는 JSON 유형으로 로컬 및 원격에 저장됩니다. 따라서 Sync SDK 라이브러리를 사용하여 애플리케이션 데이터를 저장할 때, 저장하려는 객체를 나타내는 필드를 정의해야 하는 경우가 있습니다.

데이터 구조 정의

애플리케이션에서 사용하려는 데이터는 JSON 직렬화가 가능해야 하므로 JSON Object, JSON Array 그리고 JSON Primitive로 데이터 구조를 정의해야 합니다. 다음 코드는 이름과 나이가 포함된 User 데이터를 정의하는 간단한 예입니다.

data class User(val name: String, val age:Int)
  • 필드 값이 배열일 경우 List 유형으로 정의합니다.
data class User(val name: String, val age:Int, val friends:List<String>)
  • 필드 값이 null일 수도 있다면 Kotlin에서는 Optional 유형으로, Java에서는 Non-primitive 유형으로 정의합니다.
data class User(val name: String, val age:Int, val friends:List<String>, val money:Int?)
  • 필드가 직렬화 대상이 아니라면, 접근제한자를 private 또는 internal로 정의하거나, Transient 어노테이션을 추가합니다.
data class User(
val name: String,
val age:Int,
val frieds:List<String>,
val money:Int?,
private val internalUse:Long?,
@Transient val internalShare:Int?)
  • 필드명을 커스터마이징하고 싶다면, SerializedName 어노테이션을 추가합니다.
data class User(
val name: String,
val age:Int,
val frieds:List<String>,
val money:Int?,
private val internalUse:Long?,
@Transient val internalShare:Int?,
@SerializedName(value = "priority") val level: String)
[제약사항]
  • 필드명을 _id로 정의할 수 없습니다.
  • 필드명에 a.b와 같이 마침표를 포함하지 마세요.
  • 전체 데이터의 크기가 5 MB가 넘지 않도록 설계하세요.