This message was deleted.
# 질문
s
This message was deleted.
k
일단은 아래의 링크를 통해 이것저것 보고는 있는데 뭔가 정리가 되지 않은 느낌이네요..ㅎㅎ https://medium.com/@lvdbrink/graphql-meets-protocol-buffers-in-go-cdbf11090934
t
주로 grpc 마이크로서비스 백단 쓰면서 클라와 맞닫는 부분을 GraphQL로 작성하는걸로 알고있어요
그래서 제가 아는 회사는 클라 개발자가 자기가 쓸 GraphQL 서버를 노드로 짜고있다고 들었습니다 ㅎㅎ
k
Domain model 을 하나의 proto 파일로 관리한다기보다 아예 분리를 해서 따로 사용하는 경우인 것 같네요 👀
Schema first 형태로 GraphQL 서버를 운영한다면.. proto 파일로 도메인 명세를 주고받는 것도 가능하려나요.. 뭔가 제겐 아직 추상적이라 먼저 해보신분 계시다면 사례를 알고싶었습니다. 답변 감사합니다 🙏
t
.proto
.graphql
변환이 가능한지? 를 여쭤보는건가요??
k
해당 변환은 아래 내용들을 보면 가능할 것 같더라구요 https://github.com/google/rejoiner https://github.com/danielvladco/go-proto-gql
실제 Real world 에서 gRPC/GraphQL 을 함께 사용하는데에 있어 아이디어나 실제 사례가 있는지 궁금해서 여쭤봤습니다.ㅎㅎ
.proto
->
.graphql
로 변환해서 Schema first 형태로 사용할수도 있지 않을까? 라는건 제 개인적인 아이디어였습니다.ㅎㅎ
다만 해당 아이디어가 얼만큼 현실성 있는지 등등에 대해 궁금하네요 🙏 아니면 다른분들이 갖고계신 아이디어가 있으시다면 공유받고 싶구용
t
저라면, protobuf.js + TypeScript 이용해서 해당 도메인 모델의 타입을 Generating 한 뒤에 Nexus.js에 있는 typegen 기능 이용할거같습니다! GraphQL은 Muti Data Source를 처리하는데 좋다고 생각되서요. (GRPC로 받아온 데이터와 Redis의 캐시를 조합하는 등) 추후에 다른 Data Source로의 확장성 위해 조금 번거롭더라도 GraphQL 스키마와 Protobuf 스키마는 분리해서 만들거같아요.
예를 들면 원래 하나의 GRPC 서버가 두개로 분리된다던지 할 때를 위해서요 ㅎㅎ 고통스럽긴 마찬가지겠지만... 조금이라도 고통을 덜기위해 ㅋㅋ
h
저도 위 의견 동의합니다. gRPC ㄱㅏ 메인인 서버에서 리액트 앱 쪽을 위해 엔드포인트를 하나 더 만들 필요는 없을 것 같고
클라이언트에서 gRPC 클라이언트를 GraphQL 스키마로 래핑하는 정도면 될 것 같네요
k
만약 서버쪽에서 같은 proto 파일을 모델로 둘 모두 서빙하게 하고싶다면 gRPC/GraphQL 를 이중으로 작업해야하는 구조겠군요 👀 서버쪽에서 래핑해서 한번에 작업하는 방법은 없을지도 궁금하긴 하네요..ㅎㅎ
h
GraphQL이 특징적이라면 스키마를 데이터레이어의 어느쪽이 소유해도 이상하지 않다는 거니까요
래핑을 서버에서 해도 되겠지만
해당 내용을 GraphQL 과 엮어 React 에서 사용하게 할 수 없을까.. 하는 고민 중입니다.
라고 하셨으니 필요한 클라이언트가 역할을 가져가고, 다른 클라이언트랑 공유해야 할 때 서비스로 추출해도 되지 않을까 해요
k
답이 늦었습니다 🙇 전 Toy 프로젝트 정도로만 리액트를 다루는 서버개발자인데요, 저희쪽 프론트분들께 GraphQL 을 사용하게끔 해드리고 싶어서 시작한 고민이다보니.. 만약 하게되면 서버쪽에서 제공해주는 걸로 한번 고민해보려합니다. ㅎㅎ
👍 1