Kotlin 2

Kotlinx Serialization의 JsonBuilder Properties 알아보기

프로젝트에서 서버 통신 후 받은 Response를 문자열(String)으로 웹뷰에 전달해야하는 일이 있어서 kotlinx-serialization의 StringFormat.encodeToString(value: T): String을 사용했다. 그런데 서버에서 전달된 값이 객체에 잘 저장이 되고 있었음에도 불구하고 encodeToString를 하면 키-값이 모두 사라져있는 것이었다. 😱 // 이런 상황이었다. (예시) @Serializable data class Foo( val a: Int = 0, val b: Int = 0, ) val response = Foo(a = 42, b = 0) Json.encodeToString(response) // {"a": 42} // 오잉 b는 어디갔지 ㄴㅇㄱ ?? 결..

Kotlin 2023.02.23

Kotlin Delegation 알아보기(1) - Delegated Class

안드로이드 개발을 하면서 by lazy {} , by remember {} 등 by 키워드를 자주 사용하고 있었다. 그런데 by 키워드가 Kotlin Delegation을 위한 문법이라는 것을 알고 있었지만, Delegation(위임)이라는 것에 대해 제대로 알고 있지 않다는 생각이 들어서 이번 기회에 알아보려고 한다. 👀 어떨 때 상속 대신 위임을 써야할까? 상속과 위임은 모두 객체지향 프로그래밍에서 사용되는 디자인 패턴으로, 두 방식 모두 클래스를 다른 클래스로부터 확장한다. 차이점을 살펴보자면 상속은 해당 클래스에 귀속되는 것이기 때문에 클래스가 다른 클래스들 사이에서 선택할 권한을 주지 않는다. 반면 위임은 객체 자신이 처리해야 할 일을 다른 클래스 인스턴스에게 위임할 수 있는 것이기 때문에 상속..

Kotlin 2023.02.16