이미 소장하고 있다면 판매해 보세요.
|
1장. 안드로이드 성능 입문
_1.1 사용자에게 성능은 중요합니다 __1.1.1 전자상거래와 성능 최적화 __1.1.2 전자상거래 판매를 넘어서 __1.1.3 성능 개선과 인프라 비용 절감 _1.2 가장 큰 성능 실패: 서비스 중단 __1.2.1 순차적 정전과 같은 성능 __1.2.2 성능 문제에 대한 소비자의 반응 __1.2.3 스마트폰의 배터리 수명: 석탄 광산의 카나리아 _1.3 성능 문제를 테스트하기 __1.3.1 합성 테스트 __1.3.2 실제 사용자 모니터링(RUM) _1.4 결론 2장. 안드로이드 디바이스 랩 만들기 _2.1 고객들은 어떤 기기를 사용하나요 _2.2 기기 성능 분류 __2.1.1 화면 크기 __2.1.2 SDK 버전 __2.1.3 CPU/메모리와 저장장치 용량 _2.3 고객들은 어떤 네트워크를 사용하나요 _2.4 당신의 기기는 고객의 기기와 다릅니다 _2.5 테스팅 _2.6 디바이스 랩 구축하기 __2.6.1 기기를 사는 데 몇백만 원이 필요하다고요? __2.6.2 그래서 어떤 기기를 선택해야 하나요? __2.6.3 휴대폰 이외의 기기들 __2.6.4 안드로이드 오픈소스 프로젝트(AOSP) 기반 기기들 __2.6.5 기타 옵션들 __2.6.6 추가 고려 사항 __2.6.7 나만의 디바이스 랩 _2.7 결론 3장. 하드웨어 성능과 배터리 수명 _3.1 안드로이드의 하드웨어 기능 _3.2 덜 써야 더 쓴다 _3.3 배터리가 빨리 소모되는 원인은 무엇인가 __3.3.1 안드로이드 전력 프로파일 __3.3.2 화면 __3.3.3 무선신호 __3.3.4 CPU __3.3.5 추가 센서 __3.3.6 절전 모드! __3.3.7 wakelock과 alarm __3.3.8 도즈 프레임워크 _3.4 기본적인 배터리 소모 분석 __3.4.1 앱별 배터리 소모량 __3.4.2 배터리 정보와 데이터 사용량의 결합 __3.4.3 App Standby _3.5 배터리 모니터링 심화 과정 __3.5.1 batterystats __3.5.2 Battery Historian _3.6 JobScheduler _3.7 결론 4장. 화면과 UI 성능 개선하기 _4.1 UI 성능 벤치마킹 __4.1.1 쟁크 _4.2 안드로이드 UI 및 렌더링 성능 개선의 역사 _4.3 뷰 구성하기 __4.3.1 계층 구조 뷰어 _4.4 리소스 줄이기 __4.4.1 화면 겹쳐 그리기 문제 __4.4.2 오버드로 확인하기 __4.4.3 계층 구조 뷰어(Hierarchy Viewer)로 오버드로 확인하기 __4.4.4 킷캣에서 오버드로를 없애는 방법 _4.5 GPU 렌더링 프로파일링으로 쟁크 분석하기 __4.5.1 안드로이드 마시멜로에서의 GPU 렌더링 _4.6 쟁크를 넘어선 프레임 생략 __4.6.1 Systrace __4.6.2 Systrace로 살펴보는 화면 출력 __4.6.3 Systrace와 CPU로 인한 렌더링 차단 __4.6.4 ‘구글 I/O 2015’에서 발표된 Systrace 업데이트 __4.6.5 칩 공급 업체별 도구 _4.7 인지 성능 __4.7.1 스피너: 좋은점과 나쁜점 __4.7.2 로딩 시간을 숨겨주는 애니메이션 __4.7.3 즉각적인 업데이트의 착한 거짓말 __4.7.4 인지 성능을 향상시키기 위한 팁 _4.8 결론 5장. 메모리 성능 _5.1 안드로이드 메모리는 어떻게 동작하는가 __5.1.1 공유 메모리와 전용 메모리 __5.1.2 더티 메모리와 클린 메모리 __5.1.3 메모리 정리(가비지 컬렉션) __5.1.4 앱이 사용하는 메모리 용량 알아내기 __5.1.5 Procstats __5.1.6 안드로이드 메모리 부족 경고 _5.2 자바의 메모리 관리와 누수 _5.3 메모리 누수를 추적하기 위한 도구 __5.3.1 힙 덤프 __5.3.2 Allocation Tracker __5.3.3 메모리 누수 추가하기 __5.3.4 힙 심층 분석: MAT와 LeakCanary __5.3.5 이클립스 메모리 분석기 도구(MAT) __5.3.6 LeakCanary _5.4 결론 6장. CPU와 CPU 성능 최적화 _6.1 CPU 사용량 측정하기 _6.2 Systrace를 통한 CPU 사용량 분석 _6.3 Traceview(Legacy Monitor DDMS 도구) _6.4 Traceview(안드로이드 스튜디오) _6.5 다른 프로파일링 도구 _6.6 결론 7장. 네트워크 성능 _7.1 와이파이와 무선 통신망 신호 __7.1.1 와이파이 __7.1.2 무선 통신망 __7.1.3 RRC 상태 기계 _7.2 테스트 도구 __7.2.1 Wireshark __7.2.2 Fiddler __7.2.3 MITMProxy __7.2.4 ARO(AT&T Application Resource Optimizer) __7.2.5 하이브리드 앱과 WebPageTest.org _7.3 안드로이드를 위한 네트워크 최적화 __7.3.1 파일 최적화 __7.3.2 텍스트 파일 축소(사우더스의 “자바스크립트를 작게 하라” 항목) __7.3.3 이미지 __7.3.4 파일 캐싱 __7.3.5 파일을 넘어서 __7.3.6 연결의 그룹화 __7.3.7 앱에서 무선망 사용 여부 감지하기 __7.3.8 좋은 것에도 끝이 있는 법: 연결 종료 __7.3.9 반복되는 핑 __7.3.10 네트워킹 보안(HTTP 대 HTTPS) _7.4 전 세계 무선 통신망 적용 범위 __7.4.1 CDN __7.4.2 느린 네트워크에서 앱 테스트하기 __7.4.3 (파산을 막기 위해) 느린 네트워크 에뮬레이션하기 __7.4.4 네트워크에 따라 반응하는 앱 만들기 __7.4.5 지연시간에 대한 회계 __7.4.6 마지막 마일 지연 _7.5 기타 무선신호 __7.5.1 GPS __7.5.2 블루투스 _7.6 결론 8장. 최종 사용자 모니터링 _8.1 RUM 도구 사용하기 _8.2 RUM 분석: 샘플 앱 _8.3 크래시 __8.3.1 Crashlytics 크래시 보고서 살펴보기 __8.3.2 사용량 분석 __8.3.3 실시간 정보 _8.4 사용자를 구해주는 빅데이터? __8.4.1 RUM SDK 성능 _8.5 결론 부록 A. 조직 차원의 성능개선 _A.1 동의 얻기(성능에 중점을 둔 관리) _A.2 성능에 대해 이야기하기 _A.3 개발 _A.4 테스팅 _A.5 성능 기준 수치 __A.5.1 성능 기준 적용하기 |
|
성능 문제를 미리 해결할 수 있는 기술을 알려주는 책!
모바일 앱의 98%는 여전히 성능 개선 여지를 가지고 있다. 이 책에서는 모바일 앱 성능의 위험요소에 대해 다루고 각 이슈들을 테스트 해볼 수 있는 도구를 소개한다. 이 책의 목표는 주요 성능 문제가 실제 고객에게 영향을 미치기 전에 문제를 미리 해결할 수 있는 기술을 습득하도록 돕는 것이다. _주요 내용 * 재정적인 문제가 생기지 않도록 테스트 환경을 구성할 수 있는 아이디어를 제시한다. * 앱의 배터리 이슈를 고객이 어떻게 알게 되는지 알아보고 정확히 분석할 수 있게 해주는 도구들을 배워본다. * 사용자 화면에서 가장 크게 전력을 소모하면서도 가장 중요한 사용자 인터페이스의 구조를 어떻게 설계하는지 알려준다. * 가비지 컬렉션, 메모리 릭이 앱 성능에 어떻게 영향을 주는지 같은 메모리나 CPU 이슈를 소개하고 문제 해결 방법을 학습한다. * 앱이 서버와 어떻게 통신하는지, 느린 네트워크에서 어떻게 앱 성능을 테스트 하는지 알아본다. * 목표했던 최적의 UX가 실제로 모든 사용자에게 적용되는지 최종 사용자 모니터링을 하고 분석 데이터를 활용하는 방법을 알아본다. “간단한 알고리즘에 관한 주제뿐 아니라 하드웨어, 플랫폼이 어떻게 동작하는지, 다양한 도구들로 어떤 정보를 얻을 수 있는지도 다루고 있다. 엔지니어의 시각을 플랫폼으로 확장하는 데 도움이 되는 책이다. 뷰와 이벤트 리스너뿐만 아니라 메모리 영역과 스레드 문제까지 폭넓게 다루고 있다. 새벽 4시, 앱이 엉망으로 구동되고, 커피 머신은 고장 나고, 창업 지원센터의 좁은 방에서 양배추 냄새가 나더라도 이 책과 함께한다면 아침 10시 벤처 투자자와의 만남을 잘 준비할 수 있을 것이다.” _콜트 맥안리스(Google Developer Advocate) “개발 중인 앱에 문제가 발생하고 있는 상황에서 무엇을 봐야할지 막막할 때 이 책은 좋은 가이드가 될 것입니다. 많은 기기를 지원하기 위한 자체 디바이스 랩을 구축하는 데에도 도움을 받을 수 있습니다. 또 안드로이드 프래임워크 내부가 어떤 방식으로 동작하는지에 대한 정보도 어느 정도 얻을 수 있습니다. 많은 안드로이드 개발자가 이 책을 읽고 더 안정적이고 유저들의 사랑을 받는 좋은 앱을 개발할 수 있게 되기를 바랍니다.” _역자 서문 중에서 |