분류 전체보기

GraphQL Client Library가 필요한 이유 클라이언트에서 GraphQL을 사용하면 서버에서 원하는 데이터를 원하는 필드들만 가져올 수 있다는 장점이 있다. 하지만 클라이언트에서 GraphQL을 사용하기 위해서는 JSON 형태의 데이터를 다시 클라이언트에서 사용할 수 있는 객체로 바꾸기 위해 추가적인 작업을 해주어야 한다. 또한 클라이언트에서 GraphQL 쿼리를 작성하기 위해서 쿼리가 자동완성이 되지 않는다면 모든 필드를 일일히 찾아보고 작성해야 한다. 이러한 한계를 극복하기 위해 나온 것이 바로 GraphQL Client Library이다. GraphQL Client Library는 다양한 종류가 있으며 Kotlin 에서 사용 가능한 GraphQL Client Library의 목록은 아래 ..
Proto Datastore이란 무엇인가? public interface DataStore { public val data: Flow public suspend fun updateData(transform: suspend (t: T) -> T): T } Proto Datastore은 DataStore 인터페이스를 구현하는, 간단한 데이터를 key-value 쌍으로 저장하기 위한 데이터 저장소 솔루션이다. 이전 SharedPreference나 Preference Datastore과는 달리 저장되는 데이터의 Type Safety를 보장한다는 점이 큰 장점이다. 따라서 Primitive Type이나 간단한 Collection 타입의 저장만이 지원되는 SharedPreference나 Preference Data..
Java 9 이전의 GC 이전 글에서 GC가 어떻게 일어나는지를 살펴보았다. 이전 글에서 살펴본 GC는 모든 메모리를 랜덤으로 찾아보면서 Memory 상의 객체들 중 Reference(Mark)되지 않은 객체를 GC하며 GC를 할 때마다 살아남은 객체들은 eden -> survivor0 -> survivor1 -> old 영역으로 순서대로 시킨다. G1 GC의 효율성 Region 으로 나누어 제거 Java9+ 부터 기본 GC로 자리잡은 G1 GC에서는 이전의 GC들처럼 일일히 메모리를 탐색해 객체들을 제거하지 않는다. 대신 메모리가 많이 차있는 영역(region)을 인식하는 기능을 통해 메모리가 많이 차있는 영역을 우선적으로 GC 한다. 즉, G1 GC는 Heap Memory 전체를 탐색하는 것이 아닌 ..
Preference Datastore이란? public interface DataStore { public val data: Flow public suspend fun updateData(transform: suspend (t: T) -> T): T } Preference Datastore이란 DataStore 인터페이스를 구현하는 구현체로 Android에서 간단한 데이터를 key-value 쌍으로 저장하기 위해 사용하는 라이브러리이다. SharedPreference와 같이 Type Safety를 제공하지 않는 데이터 저장소 솔루션이다. Type Safety을 제공하지 않아 데이터 저장소에서 꺼낸 데이터에 대해 타입을 잘못 지정한다면 오류가 발생할 수 있다. 그럼에도 여전히 비동기 작업을 위해 Corou..
SharedPreferences의 한계점 Datastore가 나오기 전까지 안드로이드에서는 가벼운 데이터를 key-value 쌍으로 저장하기 위해 SharedPreferences를 사용했다. SharedPreference는 다양한 한계점이 있었다. SharedPreference는 비동기 작업을 제대로 해주지 않으면 ANR을 발생시킬 수 있으며, 오류가 생길 시 확인이 불가능했으며, 런타임에 예외가 생기면 런타임 애러가 발생해 잘못 사용하면 앱이 강제 종료될 수도 있었다. 또한 strong consistency가 보장되는 api가 없어 다중 스레드 환경에서 다른 결과값이 생길 수 있었다. 이러한 문제 외에도 type safety가 보장되지 않아 어떤 데이터가 저장되고 추출되는지를 일일히 데이터로 type ..
Dev.Cho
'분류 전체보기' 카테고리의 글 목록 (37 Page)