본문 바로가기
1st life_Programmer/GraphQL

2. GraphQL Yoga로 GraphQL서버 생성하기

by Z선배 2019. 7. 31.

graphql yoga는 GraphQL 서버를 쉽게 만들어준다고 했었죠.

그렇다면 실제로 graphql yoga를 사용해서 서버를 만들어 보겠습니다!

 

우선 하나의 폴더를 만들고 그 안에서 yarn init을 해줍니다.

 

그 다음 필요한 모듈을 설치해줍니다.

yarn add graphql-yoga : GraphQL 프로젝트 생성

yarn global add nodemon : 파일이 수정될 때마다 서버를 재시작 해줌

yarn add @babel/node @babel/core --dev : 간단하게 말하면 구식코드와 최신코드의 충돌을 막아줌

yarn ad babel-cli babel-preset-env babel-preset-stage-3 --dev : 바벨 환경설정

 

저는 github에 연동하기 위해서 .gitignore와 README.md 또한 만들어 주었습니다.

 

nodemon으로 파일이 수정될 때마다 서버를 재시작 해주기 위해 package.json 에서 scripts를 추가해줍니다.

{
  "name": "movieql",
  "version": "1.0.0",
  "description": "Movie API with Graphql",
  "main": "index.js",
  "repository": "https://github.com/YiSoJeoung/movieql",
  "license": "MIT",
  "dependencies": {
    "@babel/core": "^7.5.5",
    "graphql-yoga": "^1.18.1"
  },
  "scripts": {
    "start": "nodemon --exec babel-node index.js"
  },
  "devDependencies": {
    "@babel/node": "^7.5.5",
    "babel-cli": "^6.26.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-stage-3": "^6.24.1"
  }
}

 

바벨 환경설정을 위해 .babelrc파일도 생성해줍니다.

{
    "presets": ["env", "stage-3"]
}

index.js 파일을 만들고 GraphQL 서버를 만들어줍니다!

import { GraphQLServer } from "graphql-yoga";

const server = new GraphQLServer({});

server.start(()=> console.log("GraphQL Server Runnung"));

 

여기까지 왔으면 파일 구조는 이렇게 됩니다!

 

아직까지는 스키마를 정의하지 않아서 에러가 뜰 수 있지만 간단하게 서버를 만들었습니다 :)

댓글