본문 바로가기

CodeTech/GraphQL

GraphQL - 1 [yarn init, graphql-yoga]

GraphQL(gql)

- 서버사이드 언어로서 백엔드와 클라이언트간의 소통을 원활하게 해준다.

- Rest API의 상위 호환이라고 봐도 된다.

- 즉, 기존의 API와 graphql을 연결해서 클라이언트와 graphql로 통신하는 것인데,

클라이언트와 서버를 연결시켜서 사용하면서 불편했던 점들을 개선해 놓은 것이 바로 graphql이라서

중간 다리 역할을 놓아 불편했던 점을 완화시키는 작업을 한다.

(기존에는 이러한 서버사이드를 RestAPI로 사용하였는데 이 REST API를 grapql로 wrapping해서 사용하는 것도 가능하다)

 

- SQL(Structed Query Language) 과 같이 쿼리 언어이다.

- 하지만 언어 구조적으로 큰 차이가 있다.

 

SQL은 백엔드에서 데이터베이스에 저장된 데이터에 효율적으로 접근하고 가져오는 것이 목적이다.

- 백엔드 시스템에서 주로 작성하고 호출한다.

GQL은 웹클라이언트에서 데이터를 서버로 부터 효율적으로 가져오는 것이 목적이다.

- 클라이언트 시스템에서 주로 작성하고 호출한다.

 

시작 [yarn init]

- 먼저 폴더를 만들고 해당 폴더에 (yarn init)을 실행 시키자

 

$ yarn init
question name (testdir): my-awesome-package
question version (1.0.0):
question description: The best package you will ever find.
question entry point (index.js):
question git repository: https://github.com/yarnpkg/example-yarn-package
question author: Yarn Contributor
question license (MIT):
question private:
success Saved package.json

이러한 형태로 입력을 받게 되는데 이것은 결국에 package.json을 작성하는 과정일 뿐이다.

 

이과정을 거치면

{
  "name": "my-awesome-package",
  "version": "1.0.0",
  "description": "The best package you will ever find.",
  "main": "index.js",
  "repository": {
    "url": "https://github.com/yarnpkg/example-yarn-package",
    "type": "git"
  },
  "author": "Yarn Contributor",
  "license": "MIT"
}

이러한 package.json이 생성된다.

{
  "name": "movieql",
  "version": "1.0.0",
  "description": "Movie API with Graphql",
  "main": "index.js",
  "repository": "https://github.com/Doodream/movieql",
  "author": "doodream<doodream17@naver.com>",
  "license": "MIT"
}

위 방식으로 package.json파일을 만들고 시작하자.

 

이제 graphql-yoga를 설치해보자

 

GraphQL-yoga

- 쉽게 설치하는데 중점을 둔 완전한 기능을 갖춘 grapql 서버 

 

github.com/prisma-labs/graphql-yoga

 

prisma-labs/graphql-yoga

🧘 Fully-featured GraphQL Server with focus on easy setup, performance & great developer experience - prisma-labs/graphql-yoga

github.com

설치는 너무나 간단하다.

yarn add graphql-yoga