TS #4 :: Schema-First vs Code First

해다·2022년 4월 4일
0

etc.

목록 보기
9/21
post-thumbnail

🙊 잘못 작성한 부분이 보이시면 댓글 부탁드립니다


이전에 NestJS에 대해서도 GraphQL에 대해서도 얘기를 했는데, 그걸 또 진행하다보니 Schema-FirstCode-first얘기가 나오고... 고구마 줄기 줄줄 덩얼덩얼 나오듯이 딸려나오는 데다가 오늘 진행한 내용 중에서 나온 오류가 관련해서 나온 오류라 다시 정리한다.

🤔NestJS랑 GraphQL이 뭐였더라?

전에 포스팅 했던 개념이라 간단하게!

  • NestJS는 타임스크립트를 지원하는 프레임워크! 객체지향 프로그래밍에 최적화되어 있음!
  • GraphQL은 Rest API가 하나하나 명세서를 작성해야하는게 불편해서 대안으로 나온 쿼리 언어!

🤔근데 그거랑 스키마 우선 코드 우선이랑 무슨 관련이 있는데?

💻코드 우선 (Code-First)

코드 우선 방식은 RestAPI 처럼 resolver를 작성하는데, 스웨거(Swagger)를 작성하지 않아도 Docs가 생성된다! @를 이용하는 데코레이터로 TypeDef를 자동으로 만들어주는 GraphQL 스키마를 생성한다. autoschema를 이용해서 자동으로 스키마가 생성될 경로를 설정해주면 뚝딱이다! 편하다!

  • 코드가 우선이라는 말은 ts로 클래스를 짜면 나중에 스키마가 생성되기 때문에 붙여진 이름이다.!

💻스키마 우선 (Schema-First)

이 방식은 graphql schema를 먼저 정의하고 그 정의에 맞게 코드를 작성한다. 간단하고 명확한 작성이 가능한 편이지만 .graphql 파일에 스키마를 직접 작성해아하고, resolver와 정확하게 일치해야하기 때문에 스키마 수가 늘어날수록 번거로워진다...사람은 실수를 하니까...

  • 스키마가 우선이라는 말은 graphql schema가 먼저 생성되고 그 이후에 클래스나 인터페이스를 생성하기 때문에 붙여진 이름이다!
profile
잘하는 건 아닌데 포기하진 않을거야

0개의 댓글