N+1 Queries
목록 1번 조회 뒤 각 항목의 연관 데이터를 따로 조회하면 데이터 수만큼 DB 호출이 늘어납니다.
Batch Loading
GraphQL의 자유로운 필드 선택은 N+1 쿼리를 만들 수 있으므로 batch 함수와 request-scoped loader로 조회 폭발을 줄입니다.
목록 1번 조회 뒤 각 항목의 연관 데이터를 따로 조회하면 데이터 수만큼 DB 호출이 늘어납니다.
필드 리졸버는 즉시 DB를 호출하지 않고 필요한 id를 DataLoader에 load 요청으로 전달합니다.
모인 id 배열을 한 번의 repository 조회로 가져오고 원래 key 순서에 맞춰 결과 배열을 반환합니다.
같은 요청 안의 중복 key는 캐시되지만 사용자별 권한이 섞이지 않도록 요청 단위로 loader를 만듭니다.