GraphQL args: 리졸버 인자, 제대로 활용하기!

by DD
3년 전
조회수 6

GraphQL 리졸버에서 args를 활용하여 쿼리 인자를 처리하는 방법 설명

객체 속성에도 인자를 부여하여 데이터 가공 및 클라이언트에 전달 가능

상위 필드 인자 접근을 통해 페이지네이션 구현 시 성능 최적화 가능

GraphQL args 기본 이해

GraphQL 리졸버의 두 번째 인자인 args는 쿼리에서 전달된 인자를 받는다. GraphQL.jsGraphQL Java에서 각각 `args`와 `DataFetchingEnvironment.getArguments`를 통해 접근 가능하다. 따라서, 입력값 검증데이터 필터링에 활용하여 API의 유연성을 높일 수 있다.

상위 필드 인자 접근의 장단점

페이지네이션 구현 시 상위 필드 인자 접근은 필수적이다. total_countitem_list를 함께 가져오기 위해, 리졸버에서 상위 쿼리의 인자를 활용해야 한다. DGS Framework의 `localContext`를 사용하면 상위 인자를 쉽게 전달할 수 있지만, 불필요한 계산을 피하기 위해 info를 활용한 최적화가 필요하다.

GraphQL args 활용 팁

GraphQL에서 null누락된 인자는 다르게 처리된다는 점을 인지해야 한다. DGS Framework를 사용하면 명확하게 구분할 수 있다. 상위 필드 인자 접근은 필요한 경우에만 제한적으로 사용하고, 코드 가독성유지보수성을 고려하여 설계를 진행해야 한다. 따라서, API 설계 시 인자 전달 방식을 신중하게 결정해야 한다.

GraphQL 이해하기: (4) 리졸버 인자 - 2. args