원문링크: http://developer.android.com/intl/ko/distribute/googleplay/strategies/app-quality.html#details

앱 출시 이후 품질 개선하기


매주 Google Play를 통하여 수천 개의 앱이 출시되고 있는 가운데, 무엇보다도 중요한 것은 자신의 앱이 사용자의 눈을 사로잡으면서 가능한 높은 평가를 받도록 하는 것입니다. 이러한 상황에서 앱의 주목성을 높일 수 있는 방법 중 하나는 적절한 모바일 광고나 앱 간 홍보를 이용하는 것입니다. 하지만 더욱 효과적으로 사용자에게 ‘좋은 인상을 주고, 설치하고, 평가하게’ 하는 순환고리를 만드는 방법은 바로  “제품을 개선하는 것"입니다. 오랜 시간에 걸쳐 입증된 확실한 방법이죠.

좋은 앱은 오래갑니다. 다시 말해, 앱 품질이 좋으면 사용자로부터 높은 평가를 받게 되며 순위가 높아지고 다운로드 횟수도 증가하며 앱 보유시간도 (설치 기간) 길어집니다. Google Play에서 추천앱이 되거나 소셜 미디어에서 주목을 받는 등 기대하지 못한 긍정적인 홍보 효과를 누릴 수 있는 가능성도 높아집니다. 이처럼 고품질의 앱이 지니는 장점은 확실합니다. 하지만 “더 나은" 앱을 만드는 방법에 항상 왕도가 있는 것은 아닙니다. 본 문서에서는 앱 품질에 관한 주요 요소와 출시 이후에 앱을 개선할 수 있는 방법을 살펴보도록 하겠습니다.

사용자 피드백에 귀기울이라


앱의 “성공” 여부를 측정하는 대부분의 방법은 사용자의 동작에 달려있습니다. 다운로드 횟수, 일일 액티브 인스톨수, 보유율 등과 같은 사용자 관련성 메트릭스는 사용자가 얼마나 중요한지 잘 보여줍니다. 이와 같은 방법으로 앱의 품질을 측정하고 있지 않으시다면, 사용자와 관련된 앱 품질에 대해서 알아 보세요.

사용자 의견을 듣는 가장 확실한 방법은 Google Play에서 앱에 대한 코멘트를 읽고 처리하는 것입니다. 물론 모든 코멘트가 항상 생산적이거나 건설적이라고 할 수는 없지만, 일부 의견은 앱 개발자가 이전에 미처 깨닫지 못한 부분에 대해서 가치있는 통찰력을 제공해주기도 합니다. 사용자가 얼마든지 앱에 대한 본인의 평가나 코멘트를 수정할 수 있다는 사실을 기억해야 합니다.

사용자의 불편 사항을 해결해 줄 수 있는 한 가지 방법은 자신만의 지원 채널 및 토론 공간을 만드는 것입니다. Google Groups와 같은 포럼에서부터 포괄적인 고객 지원 상품 및 채널에 이르기까지 사용자와 직접 연락할 수 있는 다양한 지원 툴이 있습니다. 이러한 툴을 설치하는 경우, Google Play 제품 상세 설명 페이지에 있는 지원 링크에 사용자가 클릭하면 연결될 수 있도록 포함시켜 주세요.  

사용자 의견을 잘 들을 수 있는 또 다른 방법은 공개 베타 프로그램이나 신뢰할 수 있는 테스터를 사용하는 것입니다. Google Play에 제품을 출시하기 전에 어느정도 실제 사용자 테스트를 거치는 것이 중요합니다. 다행히 웹사이트를 통해서 Google Play 외부의 사용자에게 앱을 배포할 수 있습니다. 본인의 판단에 따라 해당 웹사이트에 로그인을 하게 하거나 공개 접근이 가능하도록 설정할 수 있습니다. Google Play에 제출하기 전에 얼리 어답터들에게 차기 업데이트 일정을 제공하여 이러한 기회를 사용해보세요. 크라우드 소싱이나 실제 사용자 테스트를 통해서 작지만 영향력있는 개선 사항들이 상당수 나올 수 있습니다.

안정성을 높이고 버그를 제거하라


전반적인 앱 안정성 평가와 사용자 만족도의 효과는 잘 알려져 있습니다. 그리고 많은 툴과 여러가지 기법으로 다양한 디바이스와 사용자 시나리오에 따라 앱을 테스트하고 검증합니다.

UI/Application Exerciser Monkey(Monkey)는 크래쉬(crash)와 같은 안정성 문제를 해결할 수 있는 주목할 만한 툴이지만 비교적 활용되고 있지 않은 툴입니다. Monkey는 앱 액티비티에 랜덤한 UI 이벤트를 보내서 안정성 문제를 알아낼 수 있는 사용자 플로우를 동작할 수 있게 해줍니다.

또한 대부분의 안드로이드 다바이스에 설치된 Google 에러 리포팅 기능으로 사용자는 개발자에게 애플리케이션 크래쉬 이슈를 신고할 수 있습니다.

마지막으로, 외부 버그 및 기능 요청 트래커를 유지하여 사용자에게 사용법을 알려주세요. 이는 사용자로 하여금 사용에 영향을 주는 기능 및 버그를 추적하며 면밀하게 앱을 사용할 수 있게 만들어 줍니다. 적극적인 이슈 트래킹과 사용자와의 소통을 통해서 앱 문제로 인한 사용자들의 불편사항을 효과적으로 처리할 수 있습니다. 앞서 말씀드린 커뮤니티 지원 툴 중에서 이슈 트래킹 기능을 제공하는 툴이 있습니다. 또한 본인의 앱이 오픈 소스로 제작된 프로젝트라면 유명한 저장소 호스팅 사이트에서도 대부분 해당 기능을 제공해 줄 것입니다.

UI 반응 속도를 개선하라


느리고 반응이 좋지 않은 UI를 제공하는 것은 사용자를 잃을 수 있는 아주 확실한 방법입니다. 조사에 따르면 데스크탑, 웹, 모바일에 상관없이 어떤 인터페이스에서도 속도가 중요합니다. 실제로 속도의 중요성은 모바일 디바이스에서 더욱 증대되는데, 이는 사용자가 지속적으로 긴급하게 정보를 필요로 하는 경우가 많기 때문입니다.  

오랜 기간 실행되고 있는 명령을 메인 스레드에서 워커 스레드로 이동시켜서 앱의 UI 반응 속도를 개선할 수 있습니다. 안드로이드는 메인 스레드에서 앱의 성능과 액션을 분석하기 위해 StrictMode와 같은  빌트인 디버깅 장치를 제공합니다. 빠른 앤드로이드 앱 만들기에서 세부 권고 사항을 확인하세요.

UI 성능을 증대시킬 수 있는 좋은 방법은 앱 레이아웃의 복잡도를 최소화하는 것입니다. hierarchyviewer를 열어서 레이아웃이 5단계 이상이라면 레이아웃을 간소화해야 합니다. 복잡하게 얽힌 LinearLayout을 LinearLayout으로 리펙토링하세요. 뷰 오브젝트는 각 1~2 KB 메모리를 차지하여 누적됩니다. 뷰 단계가 높아지면 문제를 일으킬 수 있는 원인이 되어 빈번하게 VM 쓰레기 수집을 통과하여 메인 (UI) 스레드를 막게 됩니다. Google I/O에서 진행되었던 World of ListView 세션에서 세부 사항을 확인하세요.

블로그에 Traceview War Story에서도 언급했듯, traceview 및 ddms와 같은 툴은 각각 메소드 콜에 대해서 알려주고, VM 메모리 할당을 모니터하여 앱을 개선하는데 도움을 줄 수 있습니다.

사용성을 개선하라


사용성과 앱 디자인도 마찬가지로 사용자의 피드백을 주의 깊게 들어야 합니다. 실제 안드로이드 디바이스 사용자(지인, 가족 등)에게 개발한 앱 사용을 요청하고 이를 관찰해 보세요. 혼동스러워하거나 진행하는 데 확실하지 않는 부분, 그리고 어떤 동작에 당황해 하는지를 살펴보세요. 앱에서 인터랙션을 재고하여 이러한 경우들을 최소화하세요. 안드로이드 UI팀이 Google I/O에서 논의했던 유저 인터페이스 패턴에서 다룬 내용입니다.

같은 맥락으로, 안드로이드 사용자를 성가시게 하는 두 가지가 문제가 바로 작은 탭 타켓과 과도하게 작은 폰트 사이즈 입니다. 이러한 것은 대체적으로 수정하기 쉬우면서도 사용성과 사용자 만족도에 큰 영향을 줄 수 있는 요소입니다. 일반적으로 사용 용이성과 가독성을 최적화하고 정보 밀집성을 최소화하거나, 적어도 주의 깊게 균형을 맞추어야 합니다.

실제 데이터에 근거하여 사용성을 개선할 수 있는 또 다른 방법은 앱에 Analytics를 구현하여 특정한 부분의 사용을 기록하는 방법입니다. 액션 바에 있는 오버플로우 메뉴에 자주 사용되지 않는 부분을 내리거나 한꺼번에 제거하는 것을 고려해 보세요. 자주 사용되는 부분과 UI 요소는 앱 UI에서 즉각적으로 눈에 띄고 쉽게 접근할 수 있도록 하여 사용자들이 빠르게 사용할 수 있도록 하세요.

사용성은 인터페이스 디자인, 인지 과학, 기타 분야와도 밀접한 관련을 가지고 있는 광범위하고 관련 문서가 많은 주제입니다.

전문적인 외관 및 미적 감각 부여


유저 인터페이스 디자이너, 즉 모바일과 안드로이드 디자인에 정통하고 인터랙션 디자인과 시각 디자인 모두에 능한 사람을 대체할 수 있는 것은 없습니다. 다자이너를 찾을 수 있는 유명한 곳 중 하나가  jobs.smashingmagazine.com입니다. 또한 소셜 네트워크에서도 인재들을 발견할 수 있습니다.

UI 디자이너와 함께 일할 수 있는 여력이 없다면, 스스로 앱 모양을 개선할 수 있는 방법이 몇 가지 있습니다. 첫째, Adobe Photoshop이나 Adobe Fireworks, 기타 래스터 이미지 편집 툴 사용법을 익히세요. 앱에서 픽셀 기술을 마스터하려면 시간이 걸리지만, 이러한 기술을 연마해 놓으면 인터페이스 디자인에 세련미를 더해줄 수 있습니다. 프레임워크 UI 에셋 및 레이아웃을 학습하고 리소스 기술 문서를 꼼꼼히 읽어서 리소스 프레임워크를 완전히 익히세요. 나인 패치(9-patches)와 리소스 디렉토리 퀄리파이어(resource directory qualifiers)와 같은 기법들은 다소 안드로이드에 고유한 방법들이며, 유연하면서도 아름다운 UI를 만드는 데 매우 결정적인 기능입니다.

앱 디자인 및 코딩을 진행하기 전에, 안드로이드 디자인 사이트에 들러서 영상이나 빌딩 블럭, 아름답고 인상적인 유저 인터페이스를 디자인하는 툴에 대해서 익히세요.

제대로된 기능을 전달하라


앱에서 제대로된 기능을 제공하도록 하는 것이 중요합니다. 가능한 많은 기능을 앱에 넣으려다가 잡다한 기능들로 즐비한 앱으로 전락해 버리기 십상입니다. 모바일 디바이스에서는 중요도와 연관성이 높은 정보를 즉시 제공함으로써 즉각적인 만족감을 주는 것이 아주 중요합니다. 지나치게 많은 정보를 제공하는 것은 충분하지 않은 정보를 제공하는 것보다 기운빠지는 (혹은 그보다 더욱 실망스러운) 일이죠.

다시 말씀드리지만, 사용자로부터 기능 요청을 수집하고 응대함으로써 피드백에 귀를 기울이세요. 하지만 기능 요청을 무조건 받아 들여서는 안됩니다. 어떠한 기능을 작업해야하는지 감을 잡기 위해서라면 전반적으로 기능 요청이 매우 유용할 수 있지만, 그렇다고해서 요청된 모든 기능을 구현할 필요는 없습니다.

시스템과 써드파티 앱들을 연동하라


마음에 쏙 드는 사용자 경험을 제공하기 위해서 운영체제와 긴밀하게 연동시키는 방법이 있습니다. 이러한 측면에서 홈스크린 위젯이나 리치 알림(rich notifications), 글로벌 서치 연동, 빠른 연락처(Quick Contacts)와 같은 기능들은 아주 쉽게 만들 수 있는 좋은 사례들입니다.

어떤 앱들에서는 홈스크린 위젯과 같은 기능이 기본 사항입니다. 이러한 기능을 포함하지 않으면 긍정적인 사용자 경험을 줄 수도 있는 앱을 오히려 퇴색시킬 수 있습니다. 어떤 앱들은 안드로이드 연락처, 계정, sync API와 더욱 긴밀한 OS 연동을 하기도 합니다.

써드파티 연동은 사용자에게 편의성과 디바이스 응집력을 제공해 줄 수 있습니다. 추가적인 코딩없이 다른 앱의 기능을 사용하여 앱에 기능을 추가할 수 있는 아주 좋은 방법이기도 합니다. 예를 들어, 카메라 앱을 개발한다면 사용자의 디바이스에 관련 써드파티 앱이 설치되어 있는 경우 저장하기 이전에 해당 앱으로 사진을 수정하게 할 수 있겠죠. 이와 관련한 자세한 내용은 안드로이드 교육 강좌 다른 앱과 연동하기에서 확인하실 수 있습니다.

디테일에 주목하라


특별히 신경써야 할 디테일은 앱 아이콘의 품질과 일관성입니다. 반드시 앱 아이콘 (특히 런처 아이콘)이 모든 해상도에서 선명하고 완벽한 픽셀로 표시되게하고 가능한 아이콘 가이드라인을 따르도록 하세요. 아이콘 디자인에 어려움이 있거나 여력이 없으면, Android Asset Studio 툴을 사용하여 제작하는 방법도 있습니다.

'Interesting > TIPTECH' 카테고리의 다른 글

태블릿 앱 품질 체크리스트  (0) 2013.01.30
핵심 앱 품질 가이드라인  (0) 2013.01.30
Google Analytics  (0) 2013.01.21
트렐로 도입을 위한 시범 운영을 해보고있습니다.  (6) 2013.01.21
SNG 관련 용어들  (0) 2013.01.18

+ Recent posts