동도리 개발 로그

GraphQL 정리 본문

DB/GraphQL

GraphQL 정리

동돌이 2019. 11. 29. 18:00
반응형


 

GraphQL

GraphQL은 페이스북에서 만든 '쿼리 언어'다.  SQL 과 같은 역할을 하지만 구조 차이는 매우 크다.

실제 사용하는 방식도 많이 다르다.

sql은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는것이 목적이고, gql(GraphQL)은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적이다. sql의 문장은 백앤드에서 작성되어있고 호출 하지만 gql은 클라이언트가 작성하고 호출하게 되어있다. 

 

sql 예시

SELECT id, name, class FROM tbclasses WHERE id = '1';

gql 예시

{
	qeury{
    classes(id:"1"){
    		id
    		name
        	class
            }
          }
}

sql 은 백앤드에 이미 저장되어 있는 쿼리이고, gql 은 클라이언트가 쿼리를 만들어서 백앤드로 보낸다.

** 클라이언트가 원하는 형태로 데이터를 가져올 수 있다.

gql은 특정 데이터베이스나 플렛폼에 종석적이지 않고 네트워크 방식에도 종속적이지 않는다.

 

 

REST API와 비교 

REST API는 URL 과 get, post, delete 와 같은 메소드에 따라 많은 Endpoint가 존재 할 수 밖게 없다. 반면에 gql은 Endpoint 가 하나만 존재 한다. 

REST API는 각 Endpoint 마다 쿼리가 있지만 , gql 은  클라이언트의 쿼리마다 데이터베이스 sql 쿼리가 달라진다.

 

또한 gql API를 사용하면 여러번의 네트워크 호출 없이 한번의 호출로 처리 가능하기도하다. 

 

 

이어서....

 

출처 - https://tech.kakao.com/2019/08/01/graphql-basic/

반응형