This message was deleted.
# 질문
s
This message was deleted.
a
graphql-codegen 거의 많이 쓰는 것 같아요
저는 위치는 컴포넌트 옆에 바로 생성되게 하고 있습니다 near-operation-file 프리셋 설정을 해서요
w
@Alucard https://www.graphql-code-generator.com/plugins/near-operation-file-preset 이 링크 말씀하시는게 맞을까요?? 제가 아직 이 방식 자체의 컨셉이 잘 와닿지 않아서 컴포넌트 옆에 생성된다는게 조금 이해가 안되기는 하는데 한번 직접 해보겠습니다! 추천 감사드려요! 🙇
a
넵 디폴트로는 graphql.tsx 같은 파일 하나에 서버 schema 와 사용된 Operation 에 대한 generated type 과 query mutation 등이 전부 들어가게 되는데 나중에 몇십만 라인까지 커지게 되면 에디터에서 굉장히 느려지더라구요. 초반에는 그냥 써보시고 필요하시면 적용하셔도 될 듯 합니다
w
@Alucard 오 그렇군요 감사합니다! 한 가지만 더 여쭤봐도 될까요? 현재 프로젝트에서 호출해야 하는 백엔드 서버가 2가지인데, 각각 스키마가 다르게 구성되어 있습니다. 호출하는 서버에 따라 폴더를 나누어 파일을 관리하신적이 있으실까요?
a
네 codegen.yml 파일 내에서 generates: 옵션 하위에 per output 레벨로 구성해서 각각 schema옵션을 먹일 수 있습니다 예를 들어서
Copy code
generates:
  generated/graphql.tsx:
    schema:
      - <http://localhost:5000/graphql>
    documents:
      - ...
  generated/graphql2.tsx:
    schema:
      - <http://localhost:3000/graphql>
    documents:
      - ...
이런식입니다
w
너무 많은 도움이 되었습니다! 감사드려요! 🙇
a
🙇‍♂️
t
별도의 타입을 작성해주는 작업이 이중작업이라고 느껴져 찾아보던 중 스키마에 맞춰 타입을 gen 해주는 라이브러리가 있다는 사실을 알게 되었습니다.
코드젠의 축복을 이제서야 아시게 되셨군요... ㅋㅋ
현재 프로젝트에서 호출해야 하는 백엔드 서버가 2가지인데, 각각 스키마가 다르게 구성되어 있습니다.
스키마 스티칭이라는 솔루션도 있습니다~ (여러개의 스키마를 하나의 스키마로 합쳐줌) https://www.graphql-tools.com/docs/schema-stitching/stitch-combining-schemas 번들사이즈가 커서;;; 클라이언트에서 사용하기는 좀 무리가 있는데 혹시 필요하시면 도입해보셔도 좋을거같습니다. (사실 저희는 클라이언트에서도 쓰고있어요)
Copy code
const schema = stitchSchemas({
    subschemas: [
      {
        schema: remoteSchema1,
        async executor({ document, variables }) {
          // ...
          return data
        },
      },,
      {
        schema: remoteSchema2,
        async executor({ document, variables }) {
          // ...
          return data
        },
      },
    ],
  })
a
@Tony Won 오 혹시 만약에 타입 이름같은게 겹치면 특정 네이밍룰로 자동 변환되나요 ?
t
네임스페이스 옵션이 있을거에요 ㅎㅎ
RenameTypes 보시면 될거같아요~ ㅎㅎ
a
아하~ 감사합니다!
w
오! 스키마 스티칭이라는 개념도 있군요 처음 알았습니다 ㅎㅎ 감사해요 🙏🙏🙏
저희가 apollo 사용하고 있는데 혹시 apollo-tooling에서 제공하는 codegen 기능은 추천하지 않으시나요?? https://github.com/apollographql/apollo-tooling#code-generation
t
저희가 apollo 사용하고 있는데 혹시 apollo-tooling에서 제공하는 codegen 기능은 추천하지 않으시나요??
넵 graphql-code-generator가 훨씬 좋습니다
Apollo가 잘 못 만들어요 (속닥속닥) ㅠ
😂 1
👌 2
w
와 한번 해보니 graphql-code-generator는 hook까지 만들어주네요;; 감사히 잘 쓰겠습니다
t
@whatastunning fragment까지 꼭 사용해보시길 바래요~~~