이전에 NestJS
에 대해서도 GraphQL
에 대해서도 얘기를 했는데, 그걸 또 진행하다보니 Schema-First
와 Code-first
얘기가 나오고... 고구마 줄기 줄줄 덩얼덩얼 나오듯이 딸려나오는 데다가 오늘 진행한 내용 중에서 나온 오류가 관련해서 나온 오류라 다시 정리한다.
전에 포스팅 했던 개념이라 간단하게!
NestJS
는 타임스크립트를 지원하는 프레임워크! 객체지향 프로그래밍에 최적화되어 있음!GraphQL
은 Rest API가 하나하나 명세서를 작성해야하는게 불편해서 대안으로 나온 쿼리 언어! 코드 우선 방식은 RestAPI 처럼 resolver를 작성하는데, 스웨거(Swagger)를 작성하지 않아도 Docs
가 생성된다! @
를 이용하는 데코레이터
로 TypeDef를 자동으로 만들어주는 GraphQL 스키마를 생성한다. autoschema
를 이용해서 자동으로 스키마가 생성될 경로를 설정해주면 뚝딱이다! 편하다!
ts
로 클래스를 짜면 나중에 스키마가 생성되기 때문에 붙여진 이름이다.!이 방식은 graphql schema를 먼저 정의하고 그 정의에 맞게 코드를 작성한다. 간단하고 명확한 작성이 가능한 편이지만 .graphql
파일에 스키마를 직접 작성해아하고, resolver와 정확하게 일치해야하기 때문에 스키마 수가 늘어날수록 번거로워진다...사람은 실수를 하니까...
graphql schema
가 먼저 생성되고 그 이후에 클래스나 인터페이스를 생성하기 때문에 붙여진 이름이다!