달달한 스토리

728x90
반응형

출처 핀터레스트

 

오늘 정말 수난시대였다.

 

물론 내가 릴리즈를 제대로 실행시켜 보지 못하고, (그 전날에 테스트해서 괜찮을 줄 알음)

 

그대로 올린 것이다..

 

결과는.. 로그인이 되지 않는 대형사고를 쳐버린 것이다.

 

서둘러 아침부터 원인을 찾아 나섰다.

 

우선 어젯밤 내가 aab 파일이 180mb가 넘어서

 

구글 플레이 콘솔 정책상 150mb가 넘으면 안 된다는 규칙 때문에,

 

올리지 못하게 된 것이다.

 

그래서 다음과 같이 릴리즈 버전에 설정을 달리 하였다. 

 

 

바로 이 shrinkResources와 minifyEnabled 속성을 true로 바꾸어 주는 것이다.

 

shrinkResources는 드로어블 파일을 전체적으로 축소시켜 주어, 앱의 사이즈를 줄여 주는 역할을 하고,

 

minifyEnabled은 코드를 난독 처리하여, 보안 강화는 물론, 코드를 축소화시켜준다. 그리고 동시에

 

proguard를 활성화하는 스위치이기도 하다.

 

놀랍게도 앱 번들이 정말 작아졌다.

 

180mb -> 130mb로 줄어들어 신나는 마음으로 앱을 올려버린 것이다.

 

반응형

 

하지만 문제가 있었다.

 

나는 proguard에 대한 개념을 많이 공부하지 못한 상태라,

 

proguard는 라이브러리를 사용할 때, 다른 코드와 함께 라이브러리도 난독화를 해버리는

 

예외가 생길 수 있다는 것이다.

 

그래서 앱이 로그인이 안 되는 문제가 생긴 것이다.

 

sns 로그인 중에 하나인 카카오와 구글에서 프로가드의 예외에 딱 걸려버린 것이다.

 

원인은 알게 되었지만, 긴급하게 앱을 업데이트해야 하는 상황에서

 

프로가드를 공부하고, 모든 라이브러리에 프로가드를 하나씩 

 

찾아보면서 적용하는 건 너무 시간이 부족하였기 때문에,

 

어떻게든 앱의 크기라도 줄여보자 다짐하였다.

 

첫 번째로 실행한 것은

 

안 쓰는 resource를 제거하는 것이다.

 

툴바에서 Refactor -> Remove Unused Resources.. 를 눌러주면,

 

이러한 창이 하나 뜬다.

여기서 REFACTOR를 누르면 안 쓰는 리소스 파일이 제거가 되면서 최적화가 된다.

 

저 위에 Delete unused id declarations too 박스를 체크하게 되면 안쓰는

 

xml id 리소스도 삭제를 해준다.. 이상하게 나는 사용하던 id가 삭제되어 저 체크박스를

 

신뢰하지 않는다.

 

 

 

그리고 두 번째 방법은 모든 png 파일을 webP로 바꾸어 주는 것이다.

 

png 파일에서 오른쪽 마우스 버튼을 누르고 Convert to WebP 버튼을 누르면

 

WebP 형식으로 이미지가 바뀌게 되는데, 사이즈가 현저히 줄어든다고 한다.

 

 

이렇게 두 가지 방법을 모두 적용하니,

 

180mb -> 175mb가 되었다.

 

 

흠... 그래도 아직 15mb를 없애야 했다.

 

뭔가 막막했다.

 

그런데 문득 생각난 건 무슨 앱이 이렇게 클까?

 

라는 생각을 했다.

 

마지막으로 업데이트를 했던 버전으로 체크아웃을 하여, 앱 번들을 추출해 보았다.

 

놀랍게도 앱 번들의 크기가 80mb였던 것이었다.

 

아니.. 무슨 짓을 하면, 앱이 두배 넘는 크기로 바뀌는 거지..라는 생각이 들었다.

 

그래서 앱이 커진 원인을 찾아보는 것으로 목표를 바꾸었다.

 

그러다가 알게 된 것이 있다.

 

728x90

 

apk나 abb를 안드로이드 스튜디오에 드래그하면 apk와 aab가 무엇으로

 

구성되어 있는지 분석표가 나오는 것이다.

 

Build -> Analyze APK를 눌러도 된다.

 

apk나 aab 파일을 선택하게 되면,

이렇게 무엇이 용량을 꽉 차게 한지 원인을 알 수 있는 것이다.

 

 

나 같은 경우는 리소스 파일에 용량이 꽉차 있길래 보았더니,

 

이번 업데이트 때 사용했던 폰트가 상당히 큰 용량을 가지고 있다는 사실을 알게 되었다.

 

바로 전면적으로 필요 없고, 용량이 큰 폰트들을 다 교체하였다.

 

 

결국 aab는 180mb는 -> 80mb로 돌아왔다.

 

물론 shrinkResources와 minifyEnabled를 false로 두고 말이다.

 

폰트 따위 때문에, 이 고생을 했다는 게 믿기지 않는다.

 

이렇게 용량을 차지해서 영향을 미칠지도 몰랐다.

 

추후에는 앱이 커지면서 proguard를 필수적으로 써야 할 것이 온다고 생각한다.

 

그날이 오기 전에 프로가드를 먼저 공부해야 할 것 같다.

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading