[회고] API 호출시 응답 최대 아이템 수에 주의하자

API 호출시 겪었던 일에 대한 정리


환경

  • API 호출 경험


API 호출시 겪었던 일

기존에 잘 작동하던 코드가 있었다. API 호출한 결과를 가져와서 필터링을 통해 원하는 조건의 값들만을 가져오는 코드였다. 그런데 잘 작동하던 코드가 갑자기 안되는 경우가 생겼다… 살펴보니 분명히 웹에서 검색했을때는 우리가 원하는 값들이 있었는데 필터링 했을때는 해당하는 값들이 없다는거였다. 한참을 살펴봤지만 코드에는 문제가 없는거 같았다. 하지만 역시 제대로 보니 코드에 문제가 있었었다. 역시 코드가 잘못이 아니라 작성한 사람의 잘못이었다!

다른분의 도움으로 발견한 부분이었는데 문제의 해결은 필터링 하기전에 값들이 딱 100과 같이 5나 10의 배수로 깔끔하게 나오는거에서 영감을 받았다. 알고보니 코드에서는 API를 통해 전체 값들을 가져오고 그걸 필터링하는 과정으로 원하는 값을 가져오는데 호출시 가져오는 아이템 수가 정해져있어서 원하는 값들이 웹상에 있어도 API 요청으로 오지 않는거였다. 즉, API 호출시 최대 아이템 수가 제한이 있었던게 문제였다.

예를 들면 원하는 값이 101번째에 있는데 100번째까지만 응답이 와서 필터링해도 원하는 101번째 값이 나오지 않는거다.

결국 API 호출시 조건을 최대한 걸어서 원하는 값들만 가져오고 최대 아이템 수가 온다면 다음 값들을 가져오는 방식으로 코드를 수정해서 문제를 해결할 수 있었다.

여기서 배운점이 3가지 정도가 있다.

  1. API 호출시 전체를 가져와서 필터링하기보다 조건을 넣을 수 있다면 API 호출시 미리 넣는게 요청자쪽에서의 부담과 실수를 줄일 수 있다.
  2. API 호출시 최대 응답 아이템 수가 정해져 있는 경우가 많으니 이를 주의하자.
  3. 문제를 함께 해결하면 아이디어가 생겨서 도움이 될 수 있다.

어찌보면 당연한 이야기지만 해당 부분으로 시간을 좀 소요해서 정리를 해봤다.

다음부터는 실수하지 말자!


참고자료