안드로이드 개발자는 프레임워크에 대해 잘 이해하고 코드를 작성해야 하며 성능 문제를 미연에 예방할 수 있는 좋은 코딩 습관을 가지고 있어야 한다. 더욱 빠르게 문제를 찾아내어 수정하는 연습도 게을리해서는 안 된다. 이런 연습을 할 때 이 책이 도움을 줄 것이다. 다양한 성능 측정 도구를 살펴보고 실제로 사용해보면서 도구들에 미리 익숙해질 수 있다. 개발중인 앱에 문제가 발생하고 있는 상황에서 무엇을 봐야할지 막막할 때 이 책은 좋은 가이드가 될 것이다.
[예스24 제공]
저자소개
저자 : 더그 실라스
저자 더그 실라스(DOUG SILLARS)는 AT&T 개발자 프로그램의 수석 성능 지원 전문가이다. 전세계 수많은 모바일 개발자들이 그의 성능 기술을 적용하여 앱을 개발하였다. AT&T에서 그가 개발했던 툴과 뛰어난 성능 기술들은 모바일 앱이 데이터와 배터리 소모를 줄이면서 빠르게 동작하도록 해준다. 아내와 함께 셋 아이에게 홈스쿨링을 하면서 워싱턴주의 한 섬에서 살고 있다.
역자 : 전병권
역자 전병권은 안드로이드를 사랑하는 개발자이며, 기술은 인간의 삶을 이롭게 해야 한다는 신념을 가지고 있다.
GDG KOREA ANDROID 운영자로 참여했고, 다음, SK플래닛, 스타트업 등을 거쳐 현재는 라이엇게임즈에서 플레이어를 만족시키기 위해 노력하고 있다.
개발자가 되고 싶은 입문자를 위한 『개발자가 되고 싶으세요? IT 입문 지식을 말하다』(로드북, 2015)에 공저로 참여했다.
목차
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 성능 기준 적용하기
출판사 서평
샘플원고 살펴보기 → www.roadbook.co.kr/172
_대상 독자
이 책은 안드로이드 성능을 중심으로 다양한 주제를 다루고 있습니다.
모바일과 모바일 앱 개발자라면, 누구나 앱 성능에 관한 다양한 연구에 흥미를 느낄 것입니다.
비안드로이드 앱 개발자라면, 앱 성능에 관한 논의와 문제들은 유용하지만 안드로이드에 특화된 도구들에 대한 내용은 별로 도움되지 않을 수 있습니다.
테스터라면, 안드로이드 앱 성능을 분석할 수 있는 많은 도구에 대한 사용법을 알게 될 것입니다.
_주요 내용
성능 문제를 미리 해결할 수 있는 기술을 알려주는 책!
모바일 앱의 98%는 여전히 성능 개선 여지를 가지고 있다. 이 책에서는 모바일 앱 성능의 위험요소에 대해 다루고 각 이슈들을 테스트 해볼 수 있는 도구를 소개한다. 이 책의 목표는 주요 성능 문제가 실제 고객에게 영향을 미치기 전에 문제를 미리 해결할 수 있는 기술을 습득하도록 돕는 것이다.
_주요 내용
· 재정적인 문제가 생기지 않도록 테스트 환경을 구성할 수 있는 아이디어를 제시한다.
· 앱의 배터리 이슈를 고객이 어떻게 알게 되는지 알아보고 정확히 분석할 수 있게 해주는 도구들을 배워본다.
· 사용자 화면에서 가장 크게 전력을 소모하면서도 가장 중요한 사용자 인터페이스의 구조를 어떻게 설계하는지 알려준다.
· 가비지 컬렉션, 메모리 릭이 앱 성능에 어떻게 영향을 주는지 같은 메모리나 CPU 이슈를 소개하고 문제 해결 방법을 학습한다.
· 앱이 서버와 어떻게 통신하는지, 느린 네트워크에서 어떻게 앱 성능을 테스트 하는지 알아본다.
· 목표했던 최적의 UX가 실제로 모든 사용자에게 적용되는지 최종 사용자 모니터링을 하고 분석 데이터를 활용하는 방법을 알아본다.
“간단한 알고리즘에 관한 주제뿐 아니라 하드웨어, 플랫폼이 어떻게 동작하는지, 다양한 도구들로 어떤 정보를 얻을 수 있는지도 다루고 있다. 엔지니어의 시각을 플랫폼으로 확장하는 데 도움이 되는 책이다. 뷰와 이벤트 리스너뿐만 아니라 메모리 영역과 스레드 문제까지 폭넓게 다루고 있다. 새벽 4시, 앱이 엉망으로 구동되고, 커피 머신은 고장 나고, 창업 지원센터의 좁은 방에서 양배추 냄새가 나더라도 이 책과 함께한다면 아침 10시 벤처 투자자와의 만남을 잘 준비할 수 있을 것이다.”
_콜트 맥안리스(Google Developer Advocate)
“개발 중인 앱에 문제가 발생하고 있는 상황에서 무엇을 봐야할지 막막할 때 이 책은 좋은 가이드가 될 것입니다. 많은 기기를 지원하기 위한 자체 디바이스 랩을 구축하는 데에도 도움을 받을 수 있습니다. 또 안드로이드 프래임워크 내부가 어떤 방식으로 동작하는지에 대한 정보도 어느 정도 얻을 수 있습니다. 많은 안드로이드 개발자가 이 책을 읽고 더 안정적이고 유저들의 사랑을 받는 좋은 앱을 개발할 수 있게 되기를 바랍니다.”
_역자 서문 중에서
네티즌 리뷰
(1건)- 안드로이드 앱 성능 최적화
- 2016.11.04
- 안드로이드 앱 성능 최적화 작가 더그 실라스 출판 로드북 발매 2016.11.07. 리뷰보기 안드로이드의 앱 성능을 최적화
시키는 방법에 대해서 다루고 있는 책이다.책에서도 얘기를 하지만리소스를 너무 잡아먹는 앱의 경우는 고객들이... - http://blog.naver.com/jaeoo/220853649363 작성자명 : jaeoo 블로그명: jaeoo님의 블로그
'(NAMGUNGEUN)' 카테고리의 다른 글
한신대학교 교육대학원 한국어교육전공(한국어교원2급 과정) (0) | 2017.12.12 |
---|---|
안드로이드 플랫폼 포팅과 활용 (0) | 2017.12.12 |
안드로이드 프로그래밍 단계별로 배우는,Android 7.1, 8.0 지원 (0) | 2017.12.11 |
안드로이드 앱 만들기 하루 만에 배우는 (0) | 2017.12.11 |
임베디드 안드로이드 안드로이드 포팅, 확장, 커스터마이징하기 (0) | 2017.12.11 |