Batch Loading

DataLoader 요청 단위 처리

N+1 문제는 resolver가 편하게 나뉠수록 잘 드러나며, batching과 caching을 요청 범위에 맞춰 적용해야 합니다.

문제 발견

반복 SELECT

게시글 N개를 가져온 뒤 작성자 조회가 N번 반복되면 응답 시간이 빠르게 늘어납니다.

요청 수집

load 호출 모음

DataLoader는 같은 이벤트 루프 안의 여러 key 요청을 하나의 batch로 모읍니다.

일괄 조회

batch function

모아진 id 목록으로 한 번에 DB를 조회하고 원래 key 순서대로 결과를 돌려줍니다.

요청 캐시

범위 제한

같은 요청 안에서는 중복 조회를 줄이되 사용자별 권한 데이터는 요청별 loader를 사용합니다.