Slackbot
07/05/2020, 5:31 AMSeung-gi Lim
07/05/2020, 6:50 AMTony Won
/graphql
엔드포인트를 통해 만들고자 하시는 GraphQL 서비스를 노출하면 될거같구요. GraphQL 서비스 내 리졸버에서 각 마이크로서비스에 grpc 콜하는 형태로 만들면 되고, 실제로 그렇게 많이들 사용하곤해요! (DataLoader를 통해 Batching을 하는게 필수적이라 마이크로서비스에서 Batching하는 기능을 무조건 제공해야합니다)
결국 클라이언트가 문제일거같은데요. 일단 기본적으로 마이그레이션 하는것을 1단계로 하신다면, API 호출하는 부분을 POST /graphql
+ { query: ..., variables: ...}
로만 단순하게 바꾸시면 될꺼같고, 여기서 조금 더 GraphQL 스럽게 하시려면, Apollo Client, 더 나아가면 Relay를 떠올리시면 될꺼같아요.
클라이언트에서 GraphQL을 도입한다고 하는것은 단순하게 네트워크 요청을 줄인다, 필요한 필드만 가져올수있다. 이런 장단점을 나열해서 설명하는건 좀 부적절한거 같구요. 새로운 멘탈모델, Opinionated Web Framework을 도입한다고 받아들이시는게 더 좋다고 생각해요. GraphQL이 이야기하는 장점에 팀분들이 얼마나 공감하고 계시고, 넘어가고 싶으신지에 따라서, (1) 일반 HTTP Client, (2) Apollo Client (3) Relay를 선택하시면 좋을것 같습니다.
아래 문서 읽어보시면 도움이 되지 않을까… 싶어요.
https://relay.dev/docs/en/thinking-in-graphql
https://relay.dev/docs/en/thinking-in-relay
여기서 질문하셨던 실무적인 Pros/Cons를 구체적으로 말씀드려보면…Tony Won
Tony Won
Seung-gi Lim
07/07/2020, 3:37 AMSeung-gi Lim
07/07/2020, 7:24 AM