서론

오랫만에 블로그에 글을 쓴다. 이번 주에는 사내 게임 프로젝트에 구글의 애드몹( admob ) 플러그인을 부착하는 업무를 진행했다. 이 간단해보이는 작업 도중에 꽤 일이 많았는데, 그중에 가장 기억에 남는 것이 지금 말하고자 하는 이슈이다.

문제 상황

내용은 다음과 같았다.

Google Store API 를 이용해서, APK 를 업로드 하면 다음 오류메세지를 반환하면서 업로드에 실패한다. “ APK is Not Valid Zip Archive “

대응

전날까지 같은 커밋, 빌드머신에서 잘 진행되던 업로드가 진행되지 않았다. 그래서, 수정하기 전의 develop 브랜치로도 시도했지만 역시 문제가 발생했다.

StackOverFlow 나 Unity Forum 을 찾아보아도 비슷한 이슈 보고는 없었다.

전날이나 그전에 잘 되던 조건에서도 작동하지 않는걸로 미루어, 다음과 같이 판단했다.

구글 스토어 플랫폼 측의 문제일 것이다.

하지만, 확신하고 이슈를 구글 측에 공유하거나 기다리는 대신에 혹시 모를 다른 원인을 가정하고

계속해서 이런 저런 세팅을 바꾸면서 시간을 썼다.

결국 그대로 퇴근했고, 다음날 출근하자마자 다시 검색해보니 다음과 같은 StackOverFLow 글이 올라와있었다.

https://stackoverflow.com/questions/62891892/google-api-error-forbidden-apk-is-not-a-valid-zip-archive-while-upload-apk-to?fbclid=IwAR0wZvwcY2rBMZwKlUtjhuUziH-g5CH-IDwasCBcxmDu5ZlMZl4hbJSqtgo#new-answer?newreg=cc47f5ecc53d49d5b4f828945f98fc1b

구글측 이슈가 맞았고, 출근 당시를 기준으로 이미 해결되어 있었다.

회고

이번 이슈를 처리하면서 개발자로서 나의 고무적인 점 2가지와, 아쉬운 점 1 가지를 기록해놓고 싶다.

좋았던 점

  1. Mail 을 통해 조금씩, 적극적으로 팀내에 공유했다. 최근 우리팀은, 여러 문서화툴 시도 끝에 고전적이고 효율적인 해결방법인 Mail에 정착했다. 예전에는 이슈를 대응할 때, 실시간으로 공유하는 게 아니라 해결하고 나서 공유하는 식으로 진행했는데, 매번 상황에 대해서 판단과 결정, 행동등을 공유하는게 정신적인 피로도도 덜하고, 팀 내의 이해도도 높일 수 있어서 아주 만족스럽다.
  2. Jenkins 의 원격빌드와 자동배포 시스템 덕에 시간을 많이 아꼈다. 이쪽으로 이직하고 나서 가장 먼저 무리하게 세팅해둔 빌드와 배포환경은 굉장히 요긴하게 잘 쓰고 있다. 만약에 개인 작업용 머신에서 빌드해서 이번 이슈를 만났으면, 여러 변수가 끼어들어 굉장히 애를 먹었을 것 같다.

아쉬웠던 점

  1. 이슈를 정확하게 판단하고, 근거도 단단했는데 자신감을 갖지 못하고 방어적으로 결론을 내렸다. 이제 프로그래머로 일한지 사대보험상으로 2년이 조금 넘어간다. 시니어라고 하기에 짧은 경력인데다가, 정규과정을 거치지 않고 독학으로 여기까지 왔으니 늘 겸손한 태도를 병적으로 유지하려고 노력해왔다. 하지만, 이번 일을 계기로 어쩌면 자신의 기술적 판단에 자신감이 없는 것과 겸손한 것은 다른 차원의 문제라는 것을 알게 되었다.