개발을 시작하는 이야기

05. Xcode Push Error, API 콜제한 본문

개발 이야기/우리동네 문화유산 :: JHeritage

05. Xcode Push Error, API 콜제한

Teiresias 2022. 3. 9. 18:26

XMLParser를 성공적으로 마무리 하고, Data 활용시 API에서 바로 정보를 받아오려고 하였으나,

Realm에 모두 저장을 했기 때문에 Realm에서 불러오는 형식으로 교체를 했다.

 

이때 Xcode에서 Push를 하게되면

The local repository is out of date. Make sure all changes have been pulled from the remote repository and try again.

위와 같은 에러가 발생하기 시작했다.

 

일단은 Fetch Changes와 Refresh File Status를 해보았지만 효과가 없었음.

그리고 누군가 로그아웃 하고 재로그인 하면 된다고 해서 해봤는데 일단 효과는 없었는데 정답은 역시나 문구에 있었고

local repository가 변경되어서 Pull을 먼저 한번 해서 repository를 갱신 했더니 잘 되었다.

오늘도 짤이 없어 내가 찍은 사진으로 올림

XML의 Data를 로딩하며 통째로 불러왔더니 금세 API의 콜제한에 걸렸다.

 

혼자 테스트 하면서 사용중인데도 막힌다면, 앱을 배포할수 없을 만큼의 심각한 문제였다,

일단 대책으론 문화재청의 데이터를 파일로 저장해서 Realm에서 File로 데이터를 받아오는 방식을 채용했다.

 

데이터를 받아올때도 동기와 비동기 방식에 대해 고민을 해야 했다.

 

동기 : 요청 결과가 동시에 일어난다. 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 하는 방식

           설계가 매우 간단하고 직관적이나, 결과가 주어질 때까지 대기를 해야 한다.

비동기 : 요청 결과가 동시에 일어나지 않는다. 요청을 하면 결과에 상관없이 다른 작업 수행이 가능하다.

                동기보다는 복잡하지만 결과가 주어지는 시간이 길어져도 그 시간 동안 다른 작업을 할 수 있다.

 

일단은 동기 방식으로 Splash 화면에서 실행되도록 해두었지만 추후에 비동기 방식을 구현을 해서 비교해보고 하나를 채택하기로 하였다.