여기서 Query와 Mutation을 선언한다
Query
Mutation
이름이 string / isrequred 인 정보를 받는다는 뜻
이 파일에서 data가 어떻게 보일 지 정의한다. (database schema정의하는 거랑 비슷)
type Query {
  name: String!
}
	const resolvers = {
          Query: {
            name: () => "nicolas", // 함수의 첫번째 인자는 Object이다.
          },
        };
        
        export default resolvers;
- index.js
    
    ```jsx
    import { GraphQLServer } from "graphql-yoga";
    import resolvers from "./graphql/resolvers.js";
    
    const server = new GraphQLServer({
      typeDefs: "./graphql/schema.graphql",
      resolvers,
    });
    
    server.start(() => console.log("Graphql Server Running"));
    ```
    
export const people = [
  {
    id: "0",
    name: "Nicolas",
    age: 18,
    gender: "female",
  },
  {
    id: "1",
    name: "Jisu",
    age: 18,
    gender: "female",
  },
  {
    id: "2",
    name: "Japan Guy",
    age: 18,
    gender: "male",
  },
];
export const getMyId = id => { 
  const filteredPeople = people.filter(person => person.id === String(id));
  return filteredPeople[0];
};type Person {
  id: Int!
  name: String!
  age: Int!
  gender: String!
}
type Query {
  people: [Person]! 
  person(id: Int!): Person
}people
import { people, getMyId } from "./db.js";
const resolvers = {
  Query: {
    people: () => people,
    person: (_, { id }) => getMyId(id), //두번쩨 argumnet를 console에 찍어보면
																				// {id:~}라고 나옴
  },
};
export default resolvers;
query {
  people {        
    age
    name
  }
}  위의 내용을 치면 아래의 data를 보여준다resolver 함수에서 설정한것처럼 people을 보여준다.
{
  "data": {
    "people": [
      {
        "age": 18,
        "name": "Nicolas"
      },
      {
        "age": 18,
        "name": "Jisu"
      },
      {
        "age": 18,
        "name": "Japan Guy"
      }
    ]
  }
}
{
  person(id:1) {
    name
  }
}  위의 내용을 치면 아래의 data를 보여준다resolver함수에서 설정한 것과 같이 인자로 넣은id를 가진 person을 찾아준다.
{
  "data": {
    "person": {
      "name": "Jisu"
    }
  }
}
schema.graphql
type Movie {
  id: Int!
  name: String!
  score: Int!
}
type Query {
  movies: [Movie]!
  movie(id: Int!): Movie
}
type Mutation {
  addMovie(name: String!, score: Int!): Movie!
  deleteMovie(id: Int!): Boolean!
}
resolvers.js
import { getMovies, getById, addMovie, deleteMovie } from "./db.js";
const resolvers = {
  Query: {
    movies: () => getMovies(),
    movie: (_, { id }) => getById(id),
  },
  Mutation: {
    addMovie: (_, { name, score }) => addMovie(name, score),
    deleteMovie: (_, { id }) => deleteMovie(id),
  },
};
export default resolvers;
db.js
export const getMovies = () => {
  return movies;
};
export const getById = id => {
  const filteredMovies = movies.filter(movie => movie.id === id);
  return filteredMovies[0];
};
export const deleteMovie = id => {
  const cleanedMovies = movies.filter(movie => movie.id !== id);
  if (movies.length > cleanedMovies.length) {
    movies = cleanedMovies;
    return true;
  } else {
    return false;
  }
};
export const addMovie = (name, score) => {
  const newMovie = {
    id: `${movies.length + 1}`,
    name,
    score,
  };
  movies.push(newMovie);
  return newMovie;
};