DataLoader 유틸리티는 캐싱 및 배채 로드에 활용된다.
memoization 캐시를 제공함으로써 하나의 GraphQL 리퀘스트 동안 같은 객체가 여러번 로드되는 것을 방지해준다.
한번의 event loop 틱 동안 발생한 로드들을 하나의 배치성 리퀘스트(한번에 여러 객체를 가져옴)로 처리해준다.
DataLoader는 사실 캐싱을 1처럼 제한적으로만 제공하기 때문에 2. 배치성 처리가 주요 목적이라고 할 수 있다. 따라서 DataLoader를 사용하더라도 캐싱 시스템은 별도의 것을 두는 게 좋다.