GraphQL로 스키마를 작성하는 방식은 Schema-first와 Code-first 두가지 방식이 있습니다. 어떤 방식으로 스키마를 작성하더라도 정상적으로 작동하는 GraphQL서비스를 만들 수 있습니다. 하지만 어떤것을 선택했느냐에 따라 향후 여러분의 프로젝트를 확장하거나 하는데에 영향이 있기 때문에 잘 생각해야합니다.
스키마-우선 방식은 스키마에 이미 저장되어 있는 내용을 따라서 코드를 작성하도록 강제합니다. 스키마-우선 방식을 사용할 경우 조금더 빠른 개발이 가능해집니다. 하지만 스키마가 커질수록 문제가 발생할 확률이 증가하게 됩니다.
코드-우선 방식은 스키마가 프로그램에 의해 정의되고 수정됩니다. 먼저 코드를 작성한 뒤 그 코드를 바탕으로 스크립트를 통해 자동으로 작성됩니다.
GraphQLModule.forRoot({
autoSchemaFile: true,
})
다음과 같이 설정해줄경우 code-first방식을 따르게 됩니다. 스키마에 문제가 생길 경우 다양한 툴에 의존하지 않고 해결이 가능하며 그렇기 때문에 스키마가 커지면 커질수록 유지보수에 더 용의 합니다.