GraphQL

GraphQL query 다루기 GraphQL은 클라이언트가 요청한 query를 읽어 데이터를 반환하는 역할을 한다. GraphQL이나 SQL과 같은 Query Language는 다양한 요청을 처리할 수 있어야 하므로 다양한 제약과 옵션이 들어간다. 예를 들어 SQL에서는 group by 를 사용하기 위해서는 group 별로 하나의 데이터를 반환할 수 있는 SUM 과 같은 연산을 더하도록 강제하며, ORDER BY 문을 통해 데이터를 정렬할 수 있도록 한다. GraphQL도 SQL과 같은 Query Language 이므로 다양한 제약을 강제하고 옵션을 제공한다. 이번글에서는 GraphQL이 단일 데이터를 출력하기 위해 강제하는 제약에 대해 알아볼 것이다. * 아래 링크에서 예시 코드를 실행시켜 볼 수 있..
내향성 쿼리란? GraphQL을 사용하기 위해서는 우리가 서버에 쿼리할 수 있는 schema에 대한 정보가 필요하다. schema에 대한 정보가 없다면 어떤 데이터를 받아올 수 있는지를 알 수 없기 때문이다. GraphQL은 introspective query를 통해 schema에 대한 정보를 제공한다. introspective query를 사용하면 우리는 편하게 GraphQL을 사용할 수 있게 된다. 우리가 GraphiQL 사이트에서 ctrl+space를 누르면 자동완성이 되었었는데, 이 자동완성 정보들 또한 내향성 쿼리를 통해 제공된다. 즉, 정리하면 우리는 introspective query를 통해 어떤 schema가 서버에서 제공되는지 알 수 있다. 내향성 쿼리의 종류와 네이밍 내향성 쿼리는 __..
준비사항 이번 글에서는 GraphiQL에서 제공하는 시각적 편집기를 사용해 query를 생성한 후 실행한다. 아래 사이트를 참조하길 바란다. SWAPI GraphQL API graphql.org query : 읽기 전용으로 데이터를 가져오기 위한 메서드 query는 읽기 전용으로 데이터를 가져오기 위한 메서드이다. query를 통해 가져오는 데이터는 객체 단위로 가져와지며, query는 이름, 변수, 필드 총 3가지 구성요소로 이루어진다. 이 글에서는 이에 대해 간단히 살펴보기 위해 다음의 쿼리를 살펴본다. 아래 쿼리는 영화 정보(Film Info)를 추출하기 위한 query이다. 아래 query에서는 영화 정보(film)를 가져오는데 제목(title), 감독(director), 프로듀서들(produce..
GraphQL의 요청 단위 종류 : query, mutation, subscription 우리가 HTTP 요청을 할 때 GET, POST, DELETE, PATCH 등의 메서드가 제공되는 것처럼 GraphQL 또한 query, mutation, subscription 이라 불리는 세가지 요청 방식을 제공한다. GraphQL의 query query은 읽기 전용으로 데이터를 가져오기 위한 메서드이다. query를 사용하는 경우는 데이터가 변화될 필요 없이 단순한 조회가 필요할 때이다. 예를 들어 View를 그리기 위한 정보 혹은 유저 정보를 가져오기 위한 경우에 사용한다. GraphQL의 mutation mutation은 데이터를 변경한 후 가져오기 위한 메서드이다. 요청으로 데이터를 변화시켜야 하는 경우에..
기존 API 호출 방식의 한계 우리는 클라이언트 개발(안드로이드, iOS, 웹)을 하면서 서버와 통신을 해야 할 때 보통 서버가 구현해놓은 API를 호출해 데이터를 보내거나 받아온다. 보통 앱에서 하나의 View를 그리기 위해서는 보통 여러 번 API를 호출해야하고, 호출을 통해 받아온 데이터를 조합해 사용해야 한다. 예를 들어 여러번 REST API를 호출해 하나의 View를 만들어내는 경우를 생각해보자. 앱의 페이지가 복잡해질 수록 많은 호출을 해야하고 데이터 조합을 위해 순차적인 처리가 들어가야 하는 경우가 많아지기 때문에 데이터를 조합하는 것은 매우 복잡해진다. 이를 편하게 하기 위해 데이터 흐름을 만들고 해당 흐름에 순차 처리 로직을 위한 로직을 넣는 방식의 프로그래밍이 많이 사용되었다. 대표적..
Dev.Cho
'GraphQL' 태그의 글 목록 (2 Page)