Schema-first vs Code-first

김루루룽·2022년 8월 24일
0

blog✏️

목록 보기
57/61
post-thumbnail

Schema-first?

스키마 설계의 우선 순위 프로세스
Schema-first는 코드가 스키마에 저장된 정의를 따르도록 접근하는 방식.

  • 장점 :
    종속성 반전 원리 (DIP)를 따름으로써 더 추상적이고 덜 의존적이다.
    프론트엔드 및 백엔드를 동시에 허용하여 개발 시간을 단축한다.

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

type User {
  _id: ID!
  username: String
  name: String
  tagline: String
}

Code-first

GraphQL 스키마가 프로그래밍 방식으로 생성되는 스키마보다 코드를 우선시하는 접근 방식.

  • 장점 :
    스키마 정의와 리졸버를 모두 저장한 상태로 유지하므로 단일 정보 소스로 작동할 수 있다.
    방대한 도구를 사용하지 않고도 Schema-first에서 직면하는 어려움을 쉽게 극복할 수 있다.
    스키마의 복잡성이나 크기가 증가할 것으로 예상되는 경우 관리가 더 용이하다.

  • 단점 :
    resolve와 definitions가 같이 있다면 가독성이 떨어질 수 있다.
    이전 버전과 호환되지 않는 변경 사항은 schema-first 접근 방식에 비해 더 쉽게 들어갈 수 있다

@Entity()
@ObjectType()
export class Board {
  @PrimaryGeneratedColumn('increment')
  @Field(() => Int)
  number: number;

  @Column()
  @Field(() => String)
  writer: string;

  @Column()
  @Field(() => String)
  title: string;

  @Column()
  @Field(() => String)
  contents: string;
}

참조 :
GraphQL for Beginners: Schema-first vs Code-first
GraphQL - schema-first vs code-first

profile
1day 1push..plz

0개의 댓글