GraphQL 스키마 정의, 어떤 방법이 좋을까?

by DD
3년 전
조회수 6

GraphQL 스키마 정의 방식에는 날 객체, 스키마 정의 문자열, 코드 기반 방식이 존재함

스키마 우선 방식은 스키마를 명확히 정의하고, 코드 우선 방식은 모델과 스키마를 통합함

TypeGraphQL 사용 경험을 바탕으로, 스키마 우선 접근 방식으로 회귀 결정

GraphQL 스키마 정의 방식 비교

GraphQL 스키마는 GraphQLSchema 클래스를 직접 사용하거나, 문자열 기반으로 정의할 수 있다. GraphQL.js는 날 객체로 스키마를 정의하는 방식을 제공하며, buildSchema 함수를 사용해 문자열로부터 스키마를 생성할 수 있다. 따라서 스키마 우선 방식은 스키마의 가독성을 높이고, 코드 우선 방식은 모델과 스키마의 통합을 용이하게 한다.

TypeGraphQL의 장단점 분석

TypeGraphQL은 코드 우선 방식을 통해 모델과 스키마를 연결하지만, 몇 가지 단점이 존재한다. GraphQL 모델데이터베이스 테이블 간의 불일치, 스키마 파악의 어려움, TypeGraphQL 학습 필요성 등이 단점으로 지적된다. 반면, 코드 생성기를 활용하면 스키마 우선 방식의 단점을 보완할 수 있다.

GraphQL 스키마 정의 전략

현재는 스키마 우선 접근 방식을 권장하며, GraphQL Code Generator와 같은 도구를 활용하여 생산성을 높인다. 스키마 정의코드 구현을 분리하여 유지보수성을 향상시키고, API 문서화를 용이하게 한다. 따라서, 팀의 규모와 프로젝트의 특성에 맞춰 적절한 스키마 정의 방식을 선택해야 한다.

GraphQL 이해하기: (1) 스키마 정의