· 4분 읽기
Go GraphQL DataLoader 직접 구현하기
GraphQL N+1 문제를 해결하는 DataLoader 패턴을 표준 라이브러리만으로 구현한다. batch, dedup, cache, request-scope까지 동작 원리를 코드로 정리한다.
총 3개의 포스트
GraphQL N+1 문제를 해결하는 DataLoader 패턴을 표준 라이브러리만으로 구현한다. batch, dedup, cache, request-scope까지 동작 원리를 코드로 정리한다.
매 요청마다 전체 정렬을 반복하던 리더보드를 Redis 캐시로 바꾼 과정. ID 캐시 + hydration + singleflight + 카테고리 단위 무효화까지 단계별로 정리한다.
Go가 다른 언어와 다른 이유 두 가지. 고루틴은 동시성을 단순하게 만들고, 인터페이스는 결합을 느슨하게 만든다. 이 둘을 제대로 쓸 줄 알면 Go답게 코드를 쓸 수 있다.