어서와 GraphQL은 처음이지?
GraphQL
은 페이스북에서 만든 웹 클라이언트가 서버에서 데이터를 가져오기 쉽게 만든 쿼리 언어이다. 아직 국내에서 gql Open API를 제공한 사례를 찾아볼 순 없지만, 사내에서도 종종 사용하는 팀이 보이는 만큼 인기가 올라가고 있는건 맞는거 같다. gql을 지원하는 Apollo
에서는 강력한 쿼리 캐시 기능이나 refetch 등 다양한 기능을 제공하고 있다.
gql은 서버사이드에서 gql로 작성된 쿼리를 받아 결과를 처리해 클라이언트로 돌려주는 역할을 한다. 하나의 엔트포인트를 사용하고 데이터를 바디에 실어 보내기 때문에 모든 요청은 POST
로만 보내고 요청의 특징에 따라 query
와 mutation
을 하용한다.
gql의 기술 스택
일반적인 REST API는 URL
과 Method
를 조합해 다양한 엔드포인트를 사용하는 반면, gql은 단일 엔드포인트로 요청을 수행한다. 또한 gql을 사용하면 한번의 호출로 여러 처리를 할 수 있게 된다.
gql의 쿼리
gql은 query
와 mutation
으로 나눠 요청을 개념적으로 분리하는데 query
는 데이터를 읽는 행위를 의미하고 mutation
은 데이터를 바꾸는 행위를 의미한다.
gql스키마
gql스키마는 데이터베이스의 스키마와 같은 개념을 가진다. 특정 요청이나 반환할 데이터 타입에 대한 정의를 할 수 있다.