LEVELUP 9. Schema-first vs Code-first

어니언·2023년 3월 8일
0
post-thumbnail

api를 만드는방법중 graqhql의 경우 스키마를 설계해야한다.

restapi와달리 graphql은 필요한 데이터 자료들만 뽑아서 응답을 할수 있어 상대적으로 빠르게 처리가 가능하다고 할 수 있다.

Schema-first란 스키마설계의 우선 순위가 스키마를 먼저 정의하여 그 스키마에 맞도록 코드를 작성하는 방법을 의미한다.

장점 : 종속성 반전원리를 따르기 때문에 더 추상적이고 덜 의존적이다.
프론트와 백엔드를 동시에 허용하기 때문에 개발 시간을 단축시킨다
sdl을 제외한 문서가 필요 없다..

단점 : 스키마정의는 리졸버와 지속적으로 동기화되어야한다.
sdl정의는 쉽게 재사용하기가 어려워 코드중복이 발생할 수 있다.
분산스키마를 단일스키마로 결합하는데 어렵다.

Code-first란 스키마가 프로그래밍 방식으로 생성되는 스키마보다 코드를 우선시하는 접근방식으로
코드를 적으면 자동적으로 스키마가 생기는 방식이다.

장점 : 스키마 정의와 리졸버를 모두 저장한 상태로 유지하기때문에 단일 정보 소스로 작동할 수 있다.
방대한 도구를 사용하지 않아도 schema-first에서 생기는 어려움을 쉽게 극복할 수 있다.
스키마의 복잡성이나 크기가 증가할 것으로 예상되는 경우 관리가 더 용이하다.
단점 : resolve와 definitions가 같이 있으면 가독성이 떨어질 수 있다.
스키마를 이해하기 어렵다.
이전 버전과 호환되지 않는 변경 사항은 schema-first 접근 방식에 비해 더 쉽게 들어갈 수 있다

profile
안녕하세요.

0개의 댓글