json(4)
-
Android - Firebase Realtime Database Read and Write
FirebaseDatabase.getInstance() 메서드를 사용하여 데이터 베이스 객체를 생성하고, 생성된 데이터 베이스 객체의 reference 프로퍼티를 사용하여 루트 노드를 참조한다.private val database: FirebaseDatabase = FirebaseDatabase.getInstance()private val reference: DatabaseReference = database.reference child() 메서드를 사용하여 자식 노드를 참조할 수 있는데, 데이터 베이스에 해당 노드가 존재하지 않아도 참조가 생성된다. 단, 생성된 참조를 사용하여 값을 삽입하지 않으면 데이터 베이스에는 반영되지 않는다. 다시 말해, 데이터 베이스에 "user"라는 자식 노드가 존재하지 않..
2024.05.07 -
Android - Firebase Realtime Database Structure
Realtime Database는 키-값 쌍으로 이뤄지는 JSON 객체들이 모여 트리 구조를 이루고, 루트 노드로부터 최대 32단계의 자식 노드를 가질 수 있다. 하지만 특정 노드의 데이터를 가져오면 해당 노드와 연결된 자식 노드의 데이터도 함께 가져오고, 사용자에게 특정 노드에 대한 권한을 부여하면 해당 노드에 속한 모든 데이터에 대한 권한이 부여된다는 특징 때문에 최대한 낮은 레벨의 트리 구조를 형성하는 것이 좋다. 쉽게 말해, 트리 가장 밑단에 존재하는 노드의 데이터를 얻는다고 할 때 해당 노드만 다운로드하면 그만이지만 루트 노드의 데이터를 얻는다고 하면 루트 노드와 연결된 모든 자식 노드들도 함께 다운로드가 되어 트래픽 사용량을 높인다는 의미다. title 목록을 얻기 위해 chats 노드를 가져..
2024.05.07 -
Jetpack Compose - APIs Practice
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/c35074621791ebc1f90d26e3d88dca6a3e4dcd99/BooksOrNothing kotlinx.serialization.json.internal.JsonDecodingException: Expected start of the object '{', but had 'EOF' instead JSON을 Kotlin 데이터 클래스 객체로 역직렬화할 때 발생 가능한 오류로, kotlinx.serialization은 "각각"의 JSON 객체의 특정 필드와 이름이 동일한 프로퍼티에 데이터를 매핑하는데, 본인은 하나의 JSON 객체로부터 반복되는 필드 이름만을 선정하여 데이터 클래스를 정의하..
2024.03.12 -
Jetpack Compose - Something to do with REST
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/b1f5abf569e0b5f4970c448f0ec1e2da9649c40c/MarsPhoto REST(REpresentational State Transfer) - 클라이언트와 서버가 데이터를 주고받는 웹 서비스를 구축하기 위한 아키텍처 스타일로, 클라이언트는 HTTP 프로토콜을 통해 서버의 자원에 접근하고 조작할 수 있다. RESTful - REST 아키텍처 스타일을 구현한 실질적인 웹 서비스로, 웹 서비스 요청은 URI와 HTTP 프로토콜을 사용하여 서버에 전송한다. URI(Uniform Resource Identifier) - 리소스를 식별하는 문자열로, 리소스의 상세한 위치나 접근 방법을 ..
2024.03.05