데이터

    [GraphQL] 8. @include, @skip 지시문 사용해 필드 값 포함시키거나 제외하기

    지시문이 필요한 이유 앞서 Alias를 사용해 필드명을 변경시키는 방법을 살펴봤다. 하지만 Alias를 사용해 필드명을 변경시키는 것은 데이터를 처리하는데 충분하지 않다. 예를 들어 Kotlin의 sealed class를 상속하는 data class를 사용해 데이터를 받을 경우 특정 데이터를 받을 경우 특정 데이터가 포함되거나 되지 않는 경우를 처리하기 어렵기 때문이다. 예를 들어 다음과 같은 영화 정보를 담는 FilmInfo sealed class가 있다고 해보자. sealed class FilmInfo(){ data class BasicFilmInfo(val filmTitle : String) : FilmInfo() data class FilmInfoWithDirector(val filmTitle :..

    [GraphQL] 6. first, last 사용해 query의 필드가 반환하는 데이터 개수 제한하기

    GraphQL query를 실행한 후 반환 데이터 조작 Query Language라면 GraphQL은 query의 반환 데이터를 조작하기 위한 다양한 방법을 제공한다. 이번 글에서는 이 중 개수를 제한하는 방법에 대해 알아볼 것이다. 이번글의 실습 예제는 아래 사이트에서 확인할 수 있다. SWAPI GraphQL API graphql.org first, last를 활용해 데이터 개수 제한하기 앞선 글들에서 다중 데이터 조회 시 모든 데이터가 반환되었다. 예를 들어 아래와 같은 쿼리로 데이터를 조회하는 경우를 살펴보자. query QueryFilms { allFilms{ films { title director } } } 이 쿼리를 실행하면 [그림1]과 같이 모든 영화정보에 대한 데이터가 반환된다. 이러한..

    [ViewModel] 4. ViewModel을 이용한 Fragment간 데이터 공유

    목표 ViewModel을 이용하여 Fragment간에 데이터를 공유하는 방법을 안다. ViewModel의 생성 방식 ViewModel은 View(Activity 혹은 Fragment)의 Lifecycle에 Dependent한 Lifecycle을 갖는다. ViewModel 속 데이터가 살아있는 기간이 View가 살아있는 기간보다 길기 때문에 View가 살아 있는 동안은 ViewModel 속 데이터는 유지된다. 그런데 Fragment에는 조금 특이한 성질이 있다. 바로 Fragment의 생명주기는 Fragment가 붙어 있는 Activity에 Dependent한 성질이다. 이러한 성질로 인해 과 같이 하나의 Activity에는 여러 개의 Fragment가 존재할 수 있으며, 각 Fragment는 각자의 생명..

    [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기

    목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 조작하기 쉽게 만들었습니다. 대표적으로 기존에는 특정한 값들을 걸러내기 위해 iteration을 돌려 하나하나 값을 확인하는 것을 코드로 써야 했습니다. 아래는 기존 방식으로 리스트(exampleList)에서 특정 값을 제외한 리스트(filteredList)를 만드는 예제입니다. val exampleList = mutableListOf(1, 2, 3) val filteredList = mutableListOf() for (number in exampleList) { if (number != 1) filte..