Schema-first vs Code-first

진성·2022년 7월 24일
0
post-thumbnail

Graphql Schema

Graphql을 사용하면 스키마 작성방식이 두가지로 나누어 지게 된다.
이때 Schema-first와 Code-first로 나누어 지게 되는 것이다.

Schema 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] 
  }

`;

위와 같이 스키마를 먼저 만들어서 이에 맞게 코드를 작성하는 것이다.

장점

  • 확실한 의사소통의 수단
  • SDL을 제외한 문서가 필요 없다.

단점

  • SDL과 resolver간의 일치성이 보장되지 않음
  • 스키마가 늘어날 수록 예기치 못한 실수가 발생할 수 있음

Code First

코드 우선(Code First) 방식은 resolver를 먼저 작업함으로서 시작하게 된다.
그리고 그 코드로 부터 스키마를 생성(generate)하게 된다.
그렇기 때문에 스키마를 갖게 되지만 수동적으로 생성하지 않고 스크립트를 통해 생성하게 된다.

장점

  • 스키마와 reolver간의 일치성이 보장됨
  • 코드 중복이 최소화 됨

단점

  • 스키마를 이해하기 쉽지 않을 수 있음

Schema-first vs Code-first 정리

정리해보자면 어떠한 것을 사용할지는 사용하는 언어나 프레임워크에 따라 나누어 질 수 있게 되지만, 두가지 중 어떠한 방식으로 할 것인지 정할 수 있다면 프로젝트 시작전인 초기에 결정하여 사용하는 것이 좋다.

어떤게 더 좋은지는 확실하게 결정할 수 없고 각각의 방식에 따라 장단점이 존재하기에 자기에 상황에 맞는 작성 방식을 사용하면 되는 것이다.

참고 : GraphQL: code-first vs schema-first

profile
풀스택 진행중...

0개의 댓글