본문 바로가기

Dev Dialry/PickMovie

Graphql Schema and Definition Typeorm을 이용하여 데이터에 대한 객체들을 선언해 주었다.이제 실제로 가져온 데이터를 요청에 맞게 내보내 줄 필요가 있다. 이때 필요한것이 graphql schema이다. 그와 함께 typescript를 사용하여 개발을 진행해줄 것이기 때문에 graphql definition을 함께 생성해주게 되면 좀더 쉽게 개발을 진행 해 줄 수 있다.먼저 필요한 패키지를 설치해준다.yarn add --dev gql-merge graphql-to-typescriptyarn add merge-graphql-schemas graphql-tools위 설치해준 패키지들을 이용하여 생성해줄 모든 graphql schema들을 합쳐주고합쳐준 schema 파일을 통해 type definition을 생성해줄 것이다.먼저 sch.. 더보기
Make ORM entity 서버 설정을 모두 마친 상태이며 이제 필요한건 실제 서비스 구상에 필요한 데이터베이스 설계인 것 같다.TypeORM 을 사용하였기 때문에 sql문의 사용을 최소화 시켜서 서버 개발을 할 수 있었으며,편한점도 있었지만 한편으로는 불편한점도 적잖게 있었다.쿼리를 직접 사용하던 기존 방식에서 ORM을 이용하여 데이터를 가져는 방식은 나에겐 아직 적응이 필요한 것 같다. 하지만 ORM을 사용해서 데이터를 가져옴으로 인해서 GraphQL을 이용한 개발에는 강점이 존재하고 편하다는 것은 누구나 인정할 것 같은 부분이다. 또한 쿼리 빌더의 사용법이 익숙해진다면 쿼리를 작성하면서 발생할 수 있는 실수들도 최소화 될것으로 예상이 된다.여기서 작성할 entities들은 Graphql Server 구동 글(Run Graph.. 더보기
Run Graphql Server with graphql-yoga graphql 서버를 가장 쉽게 띄우는 방법은 graphql-yoga 모듈을 이용하는 것이다.graphql-yoga: https://github.com/prisma/graphql-yoga index.ts와 app.ts를 구분하여 서버 설정 부분은 index.ts에 정의해주고서버 내에 올라갈 yoga 설정의 경우 app.ts 로 분리하여서 작업.class App { public app: GraphQLServer; constructor() { this.app = new GraphQLServer({ schema, context: req => { const { connection: { context = null } = {} } = req; return { req: req.request, context, }; }.. 더보기