[안드로이드] NewRelic 통계분석 툴 안드로이드 앱에 사용하기
모바일 어플리케이션과 웹, 서버 등에 다양한 통계분석 툴이 존재합니다:)
최고는 google analystic 이라 생각했는데... Newrelic을 써보니, 통계분석 툴은 갑이라는 생각이 듭니다.
무료는 google analystic이 최고긴 하지만, Lite버전의 NewRelic도 쓸만합니다. (유료버전은 돈이 아깝지 않을 정도~?) 그 이유는 아무래도 대부분의 통계분석 툴들이 라이브러리로 참조되고 코드에서 initialize를 하기 때문에, Code상에 수정이 필요하며 당연히 앱이 돌아가는 동안 통계 라이브러리에서 자료를 받고 자기네 서버쪽에 처리하는 자원이 들어가기 마련입니다. (통계 라이브러리가 오류나서 앱이 죽을 확률도 높아짐) NewRelic은 Build 과정에서 붙여버리기 때문에, 앱이 구동하는 동안 거의 자원이 뻇기지 않는 느낌입니다. (느낌이란 단어를 쓴 이유는 정확히 Memory파악을 하진 않았기 떄문)
비교적 빠른 시간내에 업데이트가 되고 Active 사용자와 앱내에서 Http Request에 대한 오류, 각 Request에 대해 걸리는 응답속도, 에러와, Device 및 통신사 등 거의 실시간과 다름없을 정도로 파악이 가능합니다:)
New Relic 홈페이지입니다:)
Install 과정은 비교적 간단하게 설명이 되어 있으나, Eclipse를 통한 Build가 아닌, Ant를 이용한 Command Build이기 때문에, 익숙하지 않은 분들을 위해 TIp 만 간단히 적어 놓겠습니다.
Ant는 Android의 Sdk 도구 중 Build 를 하는 도구입니다. 이클립스에서 빌드시킬 때 소스의 덩치가 크거나 혹은 여러 외부 라이브러리를 참조할 경우 메모리가 가득차서 버벅거리는 경우가 있는데, Ant를 이용하면 이클립스가 상주된 메모리를 사용하긴 하나 Log이외엔 다른 자원을 먹지 않아 버벅거리지 않습니다:) 또하나 좋은 점은 Build.xml을 통해 여러 환경을 만들어놓으면 QA를 받거나 혹은 다양한 상황으로 바로 빌드가 가능하다는 장점이 있습니다.
New Relic 설치 영상입니다.
http://newrelic.wistia.com/medias/rzbz77365w
정말 아~주 간단한 앱의 경우는 위와 같이 Nerelic ant clean release 명령어로 clean 이후 바로 Release가 가능하지만, 대부분의 덩치가 큰 앱들은 외부라이브러리 등 다양한 정보들이 bin과 gen에 포함되기 때문에, Clean이후 일부 오류가 나서 바로 Release를 하면 Build Fail이 나는 경우가 많습니다. 이럴 때 Tip 은 따로 clean 명령어를 통해 Clean을 한 후 이클립스에서 오류를 제거하고 Release를 하면 bin 폴더내에 projectName-release.apk가 생성됩니다.
또 하나의 Tip은 Newrelic 환경을 적용한 이후에는 이클립스에서 그냥 Device에 Debug install 시 newRelic class를 찾을 수 없다며 앱이 죽어버리는데, 이 때에는 NewRelic 폴더에 포함 된 Library등을 import하면 가능합니다. (이렇게 이클립스에서 라이브러리 참조 후 Release를 하면 정상적으로 HttpRequest를 잡지 못합니다.)
쓸 수록 감탄이 나오는 모바일 앱 NewRelic, 당신의 앱이 있다면 한번 사용해 보는 건 어떨까요?