node.js - graphQL : Schema-first vs Code-first 본문
graphQL
graphQL 은 rest-API 와 마찬가지로 API 를 생성하는 방식이다.
요청하는 데이터 크기와 상관 없이, 관련된 모든 데이터를 응답받는 REST 방식과 달리,
GRAPHQL 은 요청하는 데이터 만큼만, 데이터를 응답받을 수 있다는 장점을 가진다.
graphQL 을 구현하는 방식은 두 가지로 나뉜다.
Schema-first 와 Code-first
Schema-first
스키마 우선 방식(=schema-first) 는 2016년 graphQL 이 출시했을 때 처음부터 사용했던 방식이다.
스키마 우선 방식은 먼저 GraphQL 의 스키마에 대해 설계하고 정의한 후에
이후 API 기능을 추가하는 것에 중점을 둔다.
예시로 위와 같은 스키마를 먼저 작성한 뒤, 해당 스키마에 정의된 내용과 관계에 따라 코드를 작성하는 것이다.
장점으로는 스키마가 모두 정의되어 있기 때문에, 프론트엔드 / 백엔드 모두 동시에 API 작업을 할 수 있으며,
단점으로는 개발자가 스키마에 따른 변수를 별도로 작성해야 하므로 코드 작성이 길어질 수 있다.
Code-first (이하 코드 우선 방식)
코드 우선 방식 (= code-first)는 앞선 스키마 우선 방식의 단점들을 보완하기 위해 등장했다.
이 방식은 API의 기능 구현을 위한 코드를 먼저 작성하고, 해당 코드들을 바탕으로 스키마를 생성한다.
위와 같은 방식은 기능 구현을 위한 코드를 스키마에 일치시킬 필요가 없기 때문에 개발 시간을 단축시킬 수 있다는 장점을 가지며,
API를 변경하기 위해서는 기능만 변경하면 되기 때문에 유지관리가 훨씬 쉽다는 장점을 가진다.
다만, 기능 구현에만 집중하는 방식이기 때문에, 전체적인 맥락을 파악하기는 힘들다는 단점이 있다.
'개발 > node.js' 카테고리의 다른 글
NestJS - 기초 구조 / graphQL (0) | 2023.01.25 |
---|---|
node.js - about TypeScript (타임스크립트) (0) | 2023.01.25 |
node.js - 스크래핑(scraping) / 크롤링(crawling) (0) | 2023.01.21 |
node.js - mongoDB-campass / schema / Docker-volumes (0) | 2023.01.20 |
node.js - DatabaseTool(GUI) (0) | 2023.01.19 |