Graphql을 사용하면 스키마 작성방식이 두가지로 나누어 지게 된다.
이때 Schema-first와 Code-first로 나누어 지게 되는 것이다.
스키마 우선(Schema First)은 graphQL의 스키마를 먼저 정의하여 그 스키마에 맞게 코드를 작성하는 방법을 의미한다.
스키마 우선에서는 스키마를 작성하기 위해서 데이터 모델을 만들어여야 하는데 이를 나타내기 위해 SDL을 사용한다.
SDL은 Schema Definition Language의 약자이며 graphQL의 스키마 정의를 위해 지원하는 언어이다.
const typeDefs = gql`
type MyReturn {
number: Int
writer: String
title: String
contents: String
}
type Query {
fetchBoards: [MyReturn]
}
`;
위와 같이 스키마를 먼저 만들어서 이에 맞게 코드를 작성하는 것이다.
코드 우선(Code First) 방식은 resolver를 먼저 작업함으로서 시작하게 된다.
그리고 그 코드로 부터 스키마를 생성(generate)하게 된다.
그렇기 때문에 스키마를 갖게 되지만 수동적으로 생성하지 않고 스크립트를 통해 생성하게 된다.
정리해보자면 어떠한 것을 사용할지는 사용하는 언어나 프레임워크에 따라 나누어 질 수 있게 되지만, 두가지 중 어떠한 방식으로 할 것인지 정할 수 있다면 프로젝트 시작전인 초기에 결정하여 사용하는 것이 좋다.
어떤게 더 좋은지는 확실하게 결정할 수 없고 각각의 방식에 따라 장단점이 존재하기에 자기에 상황에 맞는 작성 방식을 사용하면 되는 것이다.