배경

현재 스포티파이 api에서 Random한 노래 20개를 가져온다.

해당 노래에서 isrc값을 이용하여 MusicKit에 검색하여 노래 정보를 가져온다.

즉, SpotifyAPI → MusicKit → 우리의 정보

하지만, 해당 과정이 길게는 10초 이상인 경우가 있어 어디서 이런 문제가 발생하는지 원인을 찾고 해결해보고자 한다.

원인 분석

어떤 API가 느린걸까?

측정 방법:

let start = Date()
let timeElapsed = Date().timeIntervalSince(start)
print("Time elapsed: \\(timeElapsed) seconds")

해당 Service에 네트워크를 요청하고, 결과 값을 받아오는데 걸리는 시간은 단순하게 확인하고 어떤 API문제인지 찾고 해당 문제에 집중하기 위해 위와 같은 단순한 방법을 사용했다.

Spotify Random API

요청하고, 노래 정보 20개를 가져오는 데 걸리는 시간.

Spotify Random Time elapsed: 0.5063320398330688 seconds //첫번째 측정
Spotify Random Time elapsed: 0.375622034072876 seconds //두번째 측정 
Spotify Random Time elapsed: 0.37768495082855225 seconds //세번째 측정
Spotify Random Time elapsed: 0.4631870985031128 seconds //네번째 측정
Spotify Random Time elapsed: 0.38531506061553955 seconds //다섯번째 측정

MusicKit