dataloader
-
GraphQL에 대하여 ( Resolver & Dataloader / Aliases & Fragment)Graphql 2023. 6. 3. 12:11
2023.05.07 - [Graphql] - GraphQL에 대하여 (Interface & Union Type) GraphQL에 대하여 (Interface & Union Type) 2023.04.23 - [Graphql] - GraphQL (Schema & Type) 에 이어서 interface & union type에 대해 설명하고자 한다. Interface 다른 많은 타입 시스템처럼 GraphQL은 interface를 지원한다. 인터페이스는 Type이 무엇 인가를 구현 zzihyeon.tistory.com 에 이어서 포스팅 하고자 한다. Resolver GraphQL에서 Resolver는 쿼리의 각 필드에 대한 데이터를 제공하는 함수이다. Resolver는 GraphQL 서버에서 데이터를 가져오는 데..
-
DataLoaderGraphql 2022. 10. 9. 13:50
기본적으로 graphQL에 대해 어느정도 알고 있다고 생각하고 작성하겠다. DataLoader란 graphQL에서 Resolver를 사용할 때 N+1 문제가 생긴다. N+1 문제란 요청은 한번만 했지만 Resolver에 의해 N번의 트랜젝션이 발생할 수 있는 것이다. 예를 들면, user, purchase, stuff 이 3개의 table이 있다고 가정해보고 gql 타입을 아래와 같이 정의했다고 가정하자. type User { id: String! name: String! email: String! purchases: [Purchase] # purchase를 조회하기 위한 Resolver가 있음 } type Purchase { id: String! total_price: Int! date: Time! s..
-
Server 부하 줄이기Server management 2022. 4. 17. 18:13
계기 기존에 개발에 급급해서 생각하지 못한 문제들이 많았다. 사내 서비스를 개발하다보니 사용량이 많지는 않고 사양이 그리 부족해 보이지도 않는데 가끔 서버에 부하가 걸리고 이에 따른 대응을 하다보니 어떻게 관리할 수 있을까 생각을 하게 되었다. 현재는 대부분이 DB에 직접적으로 접근하고 cache를 관리하지 않고 있다. 그리고 graphQL에서 resolver를 사용할 때 N+1의 문제에 대해서도 고려하지 않고 있었다. 그래서 현재 어떻게 하면 부하를 줄일 수 있을까 생각을 하다가 dataLoader와 Redis에 대해 공부를 해보기로 했다. 사용 방법에 대해서는 따로 작성할 예정이고 개념에 대해서만 알아보고자 한다. GraphQL DataLoader N+1 Promblem GraphQL Resolver..