1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 배우는 API 입문

Connected

연습 문제

API 속도 제한 지키기

이제 배운 오류 처리 내용을 실제로 적용해 보죠. 이번 연습 문제에서는 짧은 시간에 너무 많은 요청을 보내 발생하는 속도 제한(rate-limit) 오류를 만나게 됩니다. 스크립트가 실패하지 않도록, 속도 제한을 우회하는 대안을 구현해서 문제를 해결해 볼게요.

여러분의 음악 라이브러리에는 3,500개가 넘는 트랙이 있어요. 각 트랙의 Length 속성을 확인해 가장 긴 트랙을 찾아봅시다.

하지만 문제가 하나 있어요. /tracks API는 페이지당 최대 500개까지만 반환하고, 초당 1회로 속도 제한이 걸려 있습니다. 현재 스크립트는 짧은 시간에 너무 많은 요청을 보내고 있어요. 이제 이를 고쳐봅시다!

requests와 time 패키지는 이미 임포트되어 있으며, 아래 변수를 미리 만들어 두었어요:

longestTrackLength = 0
longestTrackTitle = ""
headers = {'Authorization': 'Bearer 8apDFHaNJMxy8Kt818aa6b4a0ed0514b5d3'}
page_number = 1

지침

100 XP
  • 먼저 코드를 수정하지 말고 그대로 실행해 보세요. 콘솔에 429 Client Error가 출력되어, 짧은 시간에 서버로 너무 많은 요청을 보내고 있음을 알려줄 거예요.
  • time 패키지의 sleep 메서드를 사용해 while 루프의 끝에 3초 일시 중지를 추가하여 스크립트를 수정하세요.