구글 플레이 스토어에 앱 출시한 후기
TSBOARD를 만들면서, 언젠가 커뮤니티 사이트에 걸맞는 앱도 하나쯤 있으면 좋겠다는 생각을 종종 했었습니다. 그리고 몇 달간의 학습 겸 개발을 진행하고서 마침내 구글 플레이 스토어에 앱을 출시 하였습니다. 앱도, TSBOARD의 여정도 이제 시작이라는 느낌입니다만, 그럼에도 이 정도에서 한 번쯤은 후기를 한 번 남겨보는 것도 좋을 것 같아 끄적여 봅니다.
구글 개발자 신원 확인
앱 출시에 있어서 가장 큰 난관은 앱의 산적했던 버그들이 아니라, 바로 저에 대한 신원 확인이었습니다. 저의 경우 아주 오래전에 구글 개발자로 등록한 이력이 있었으나, 거의 등록만 해두고 별다른 활동을 하지 않았었기 때문에 중간에 있었던 강화된 신원 확인 절차를 진행 하지 않았습니다. 그러다보니 이 신원 확인 절차가 정말로 생소했습니다.
개발자 신원 확인을 위해서는 개발자의 이름과 주소가 명시된 공문서를 pdf 형태로 등록해야 합니다. 가이드를 보면 고지서 같은거나 정부에서 발행한 지로 영수증 같은 걸 사진으로 찍어서 PDF 변환 후 업로드하면 되는 것처럼 나와 있는데, 문제는 사진의 경우 글씨가 또렷해야하고, 문서의 꼭지점 부분이 명확하게 나와야 하며, 결정적으로 1MB를 넘어선 안된다는 것입니다. 제가 집으로 날아온 고지서 여러 장을 사진으로 찍고 다시 줄여서 PDF로 만들어 보았습니다만, 대부분 1MB는 훌쩍 넘었고, 그마저도 크기를 억지로 맞출 경우 글씨가 굉장히 흐릿하게 나타나는 문제가 있었습니다.
구글같은 기업에서 문서들을 일일히 사람 눈으로 확인하거나 하진 않을테니, 당연히 기계가 문서를 판독할텐데 안타깝게도 성능이 그리 좋지 못한 것 같더라구요. 한 3번 정도 반려를 먹었습니다. 한 번은 집 주소가 나오지 않은 고지서라서, 또 한 번은 문서가 너무 흐릿해서, 마지막으로는 둘 다 해당되어 반려되었던 것 같습니다. 정말 이 때는 엄청 빡치긴 하더라구요. 사실 가장 큰 불만은, 구글에 제가 유튜브 프리미엄이나 구글 포토 등으로 내는 돈이 있을텐데 그건 그거고 개발자 신원은 상관없이 까다롭게 확인하는 것이었습니다.
마지막으로 시도했던 것이 은행 앱을 통해서 발급받은 원천징수 영수증이었습니다. 해당 영수증을 살펴보니, 제 이름과 주소가 명확하게 나와 있었고, 나름 은행에서 발급했다는 인장 같은 것도 있는데다 결정적으로 이 문서는 사진을 찍을 필요 없이 바로 PDF로 업로드가 가능했습니다. 물론 1MB 이하의 크기로 업로드 규격도 만족합니다. 이 문서를 업로드하면서 비로소 개발자 신원 확인을 받을 수 있었습니다. 통상 신원 확인에 성공하든 실패하든 업로드 시점으로부터 하루 정도 소요되었던 것 같은데, 이걸 4번 정도 하다보니까 이러다가 플레이 스토어에 출시도 못해보고 끝나는 거 아닌가 하는 걱정도 사실 많이 했었습니다.
구글 계정으로 로그인
앱을 개발하다보니 웹에서 이미 구현했던 OAuth2 로그인 기능도 약간 새로운 부분이 있었습니다. 안드로이드 앱을 처음 만들어서 저만 조금 어려웠던 것일지도 모르겠습니다. 구글 계정으로 로그인을 구현하려면, 구글 개발자 콘솔에서 사용자 인증 부분에 안드로이드 앱에 등록되어 있는 SHA-1 디지털 지문을 등록해줘야 합니다. 이 SHA-1 코드는 안드로이드 스튜디오나 콘솔에서 keytool
도구를 이용하여 쉽게 만들 수 있습니다.
처음에는 당연히 디버그 모드로 테스트를 해야 하니까, 구글 개발자 콘솔에 Debug 모드에서 생성한 SHA-1 디지털 지문만 등록했었습니다. 그러면서 한참동안 디버그 모드로만 개발을 진행하다보니, 정작 출시 시점에서는 Release 모드에서 생성한 SHA-1 디지털 지문 등록을 까먹은 겁니다. 그래서 당연히 릴리즈 모드에서는 구글 로그인을 시도하면 NoCredentialException
예외가 발생하고, 하필 제가 그 때 예외 처리를 제대로 안해둬서 앱이 강제로 종료되는 문제가 생겼었습니다. 다행히 원인을 빨리 파악해서 부랴부랴 Release 모드에서 SHA-1 지문을 다시 구글 개발자 콘솔에 추가로 등록하고, 문제를 해결했다고 생각했습니다.
그러나 생각지도 못하게, 구글 플레이 스토어에 등록한 앱을 내려 받고서 다시 테스트를 해보니 이번에는 예외 처리가 되어서 죽진 않았지만 여전히 로그인에 실패하는 겁니다. 이 때 살짝 멘붕이 왔었습니다. 아니, 분명히 Debug 도 Release도 모두 SHA-1 디지털 지문을 구글 개발자 콘솔에 등록했는데? 혹시 Debug 모드는 지우고 하나만 남겨뒀어야 하나? 별에 별 생각을 다 하다가, 뒤늦게 구글 플레이 스토어가 앱에 또 다른 SHA-1 디지털 지문을 이식한다는 걸 알게 되었습니다. 그러니까, 구글 개발자 콘솔에 사용자 인증 부분에서 제가 등록해둬야 하는 디지털 지문이 총 3개가 되는 겁니다. Debug, Release 그리고 구글 플레이 스토어에서 생성한 SHA-1 지문까지.
구글 개발자 콘솔 말고, 구글 플레이 콘솔에 들어가면 테스트 및 출시 > 설정 > 앱 서명
부분에서 SHA-1 디지털 지문을 만날 수 있었습니다. 이걸 다시 구글 개발자 콘솔에 또 등록을 해줬어야 했던 겁니다. 처음 하다보니 구글 계정으로 로그인 같은 간단한 기능도 사실 좀 어려웠습니다. 다행히 지금은 잘 동작합니다만, 그냥 무작정 이것 저것 하다보니 이런 시행착오가 많았습니다.
라이브러리 호환성 맞추기
TSBOARD 프로젝트를 처음 시작할 때 조금 어려웠던 게 NPM을 통한 라이브러리들 내려받기 였습니다. 왜냐면 생각보다 너무 많은 라이브러리들을 받아야 하는데다 가끔씩 버전 호환성 이슈를 만나면 해결이 난감했기 때문입니다. 다행히 NPM도 발전하고, 저도 내성이 생기면서부터는 프론트엔드나 백엔드 프로젝트 모두에서 큰 어려움 없이 개발을 할 수 있었습니다.
하지만 안드로이드 앱의 경우는, 뭔가 차원이 다른 어려움이 있었습니다. 일단 제가 모르는 걸지도 모르겠지만, 필요한 라이브러리들을 버전까지 명시해서 build.gradle.kts
파일에 기록해야 했습니다. 만약 제가 명시한 Android SDK 버전에서 지원이 안되면, 다시 라이브러리의 버전을 내리면서 어떤 버전을 써야 하는지 직접 찾아야 하는 문제가 있었습니다. NPM이 정말 혁신적인 패키지 매니저였구나, 하고 느끼면서도 왜 안드로이드에서는 저런 게 없지? 하는 생각도 많이 들었습니다.
또 까다로운 문제라고 하면, 생각보다 Deprecated
가 빨리 된다는 점입니다. Material 3 컴포즈 관련 라이브러리들은 메소드 이름부터 사용법까지 꽤나 드라마틱하게 변경되고 있었습니다. 물론 Deprecated된 메소드들은 대체제를 IDE에서 문서로 쉽게 확인할 수 있기 때문에 사실 너무 어렵다거나 한 건 아니지만, 그래도 처음 앱을 만들어보는 입장에서는 여간 까다로운 게 아니었습니다. 라이브러리들의 버전을 함부로 올리지 말라는 조언이 왜 나온 것인지 알 수 있었네요.
웹과는 다른 UX
앱을 만들면서, 구글이 제공하는 Material Design
에 대해서 좀 더 내용을 확인해보고, 권장하는 UX가 어떤 것인지를 되새기면서 작업을 하고자 했습니다. TSBOARD는 물론 모바일 브라우저에서도 스크린 크기에 맞춰 화면을 훌륭하게 구성해서 보여주긴 하지만, 아무래도 손가락으로 터치한다는 개념 보다는 마우스 포인터로 클릭한다는 개념이 좀 더 녹아져 있는 디자인이었습니다. 그래서 이왕 안드로이드 앱을 만드는 거라면, 좀 더 터치에 적합한 UI로 구성해야겠다는 생각을 했었습니다.
그러면서 https://material-foundation.github.io/material-theme-builder/ 이 사이트에서 컬러 셋부터 시작해서 디자인 구성까지 많은 걸 참조했습니다. Material Design에서 제공하는 기본적인 요소들과 컬러들만 가지고도 이처럼 훌륭하게 디자인을 할 수 있다면, 굳이 웹에서 했던 디자인을 답습할 필요 없이 처음부터 다시 고민해서 만들어 보는 것도 나쁘진 않겠다는 확신을 가지고 앱을 디자인 했었습니다. 그 결과 좀 더 단순하고 정갈한, 아주 기본에 충실한 디자인으로 앱을 만들 수 있었습니다.
조금 아쉬운 건, 나름의 고민과 노력으로 어떻게든 해보긴 했습니다만 그럼에도 상용 앱들이 보여주는 훌륭한 UI와 사용자 친화적인 UX에는 아직 따라가지 못한다는 점입니다. 이 점은 훌륭한 UX로 손꼽히는 토스 앱 같은 걸 참조해서 저도 계속 개선해야 하겠습니다.
끝이 아닌 시작, 조금씩 그러나 꾸준히
TSBOARD도 마찬가지입니다만, 이번 안드로이드 앱 역시도 조금씩 하지만 꾸준히 기능들을 개선하고 UX를 다듬어 나가고자 합니다. 사용자가 많진 않지만, 어쨌든 제가 즐겁게 쓰고 있으니 제가 편하게 쓰기 위해서라도 점진적으로 개선해 보고자 합니다. 처음부터 잘 할 수는 없으니, 꾸준히 노력해서 개선하는 것이라도 해봐야겠지요.
https://play.google.com/store/apps/details?id=me.sensta
구글 플레이 스토어에서 Sensta
를 검색하시면 카메라를 앞에 둔 다람쥐를 만나 보실 수 있습니다. 우여곡절이 많은 앱입니다만, 안드로이드 스마트폰을 쓰시고 사진 좋아하신다면 한 번 사용해 보시고, 의견도 부탁드립니다.