GraphQL 요청
posts { author }
하나의 요청 컨텍스트 안에서 필드 리졸버가 실행된다.
게시물 목록 요청 안에서 author 필드가 여러 번 resolve되어도, 요청 컨텍스트의 로더가 ID를 모아 한 번의 조회로 묶는지 확인한다.
posts { author }
하나의 요청 컨텍스트 안에서 필드 리졸버가 실행된다.
각 Post는
usersLoader.load(authorId)를 호출한다.
101, 102처럼 필요한 ID만 모으고 같은 요청의 중복 키는 재사용한다.
findByIds([101, 102])
콘솔에는 DataLoader 조회 로그가 한 번만 남는다.
로더는 요청마다 새로 만들어져 사용자별 캐시가 섞이지 않는다.
배치 함수는 요청된 키 순서대로 User 배열을 되돌린다.
게시물이 늘어도 조회 로그는 고유 authorId 묶음 단위로 유지된다.