DataLoader

흩어진 load 호출을 한 번의 배치로 합칩니다

같은 tick 안에서 들어온 key를 모으고, 요청 안에서만 캐시해 중복 조회를 줄입니다.

batch window

리졸버 호출 묶기

Post 1 load(101)
Post 2 load(102)
Post 3 load(101)
DataLoader 같은 요청의 key를 수집
101 102 101 101 102 User[]

배치 함수는 key 순서로 반환합니다

findByIds([101, 102]) 결과를 map으로 바꾼 뒤, 요청 key 순서에 맞춰 다시 배열을 만들어야 각 게시물이 올바른 작성자를 받습니다.

keys.map((id) => userMap.get(id))