Research Record

[LOL] 2024.06.23.

Sungyeon Kim 2024. 6. 24. 10:03

23일 어제 아침부터 지금 24일 아침까지의 연구 일지..

 

확실히 또 한번 느낀 게 데이터 분석 연구는

오류와의 싸움이다..ㅎ 

오류만 빠르게 해결된다면 전체 연구 시간은 10분의 1로 줄어들 것..

 

어제 아침부터 riot api를 활용해 대용량의 데이터를 수집하는 작업을 하고 있는데

1. 코랩을 사용했더니 중간에 자꾸 끊긴다. (총 10시간 걸리는 작업 중도 끊김 문제 때문에 3번째 시도 중..)

-> 앞으로 코랩 사용 안할 거야..

2. 컴퓨터를 바로 그저께 LG에서 맥북으로 바꿨기에 비주얼 스튜디오 깔기가 귀찮아서... 코랩으로 진행했던 건데 그냥 코랩 손절하고 비주얼 스튜디오 깔았다.

-> GPU도 생겼으니... 앞으로 연구는 비주얼 스튜디오 이용하기로...

3. 원래 내가 했던 동기식 api 호출 (time.sleep 이용)은 rate limit이 안 걸리는 대신 겁나게 오래 걸린다... 10000번의 호출을 해야 하는데 1개 불러올 때마다 1.2초를 쉬어야 하니...

-> 그래서 코랩이 중간에 끊어준 김에 좀 api 호출을 빠르게 할 방법 없나 하고 코드를 이리저리 수정해봤는데 그 어떠한 것을 시도해봐도 rate limit이 걸린다..

-> 해결책을 찾아야 한다.

 

[rate limit 해결 방법]

1. time.sleep() -> 가장 1차원적인? 방법인 것 같은데 역시 제대로 해결되지 않는다.

2. retry_after header 값과 while True를 이용한 재시도 전략

-> 왜인지 가장 직관적인 방법인데 전혀 생각지도 못했던 방법이다...!!!

-> 내가 생각하지 못했던 이유는 -> retry_after 값이 제공되는지 몰랐어서 ㅠㅠ

-> 지금 돌리고 있는데 api 호출이 원활히 잘 되고 있는 것 같다.

 

여기서 배운 점.

-> 나는 rate limit을 애초에 회피할 생각만 해봤는데 rate limit이 발생한 후에 어떻게 대처할 건지를 생각하는 것도 매우 중요한다. 전사적으로 접근해야 한다!!!!

 

일단 지금 api 호출 다 돌아가려면 7시간은 걸릴테니 다음 연구일지에 이어서 작성하기로.