책 소개
현재 무수히 많은 아이폰 앱이 사용되고 있으며, 또한 많은 아이폰 앱이 개발 중에 있다. 일반 사용자들이 만족스럽게 사용하게 하려면 반응 속도가 빠른 고성능 앱을 만드는 것이 무엇보다도 중요하다. 이 책은 아이폰 앱의 반응성과 좋은 성능을 고려하여, 경쟁력 있는 iOS 앱을 개발하는 데 도움을 준다. 성능에 대한 기본 개념을 설명하고 예제를 통해 iOS 개발자가 반드시 알아야 할 기술과 팁을 제공한다. 이 책을 통해 iOS 앱을 개발할 때 필요한 성능 향상 방법을 배우고, 빠르고 강력하며 경쟁력 있는 최고 성능의 아이폰 앱을 개발할 수 있을 것이다.
이 책에서 다루는 내용
- 애플리케이션 성능과 병목현상에 대한 기본 원리
- 성능 기반의 개발 방식에 대한 장점과 기술
- 적절한 벤치마킹과 측정 유틸리티를 통한 애플리케이션 분석
- iOS와 디바이스의 기능 및 한계
- 네트워크와 커뮤니케이션 성능 향상
- 기본 언어 구문의 잘못된 사용으로 인한 일반적인 위험 요소
- 애플리케이션의 간편성과 성능을 향상시키는 디자인 패턴
- 객체와 컴포넌트의 라이프사이클
- 좀더 향상된 코드를 생성하기 위한 단위 테스트, 예외 처리
- 빠르고 효율적인 데이터 저장과 기록
이 책의 대상 독자
이 책은 새로운 그리고 기존의 엑스코드 프로젝트에서의 애플리케이션 성능 병목현상을 해결하는 데 관심 있는 iOS 애플리케이션 개발자를 위한 것이다. 독자들은 iOS 개발, 오브젝티브C 구문, 애플의 엑스코드 개발 환경의 사용에 대한 기본 개념과 원칙과 친숙해야 한다.
이 책의 구성
- 1장, 성능, 병목현상과 기초에서는 성능 기반 개발 및 열악한 애플리케이션 성능의 효과를 기반으로 하는 핵심 원칙들을 확인한다.
- 2장, 성능을 고려한 설계에서는 안정성과 효율성을 위한 엑스코드 프로젝트의 적절한 구성 방법을 배운다.
- 3장, 유지보수에서는 프로젝트의 핵심 원칙과 소스코드 유지보수성에 초점을 맞춘다.
- 4장, 신뢰성에서는 예외 처리 및 단위 테스트가 왜 그리고 어떻게 프로젝트 신뢰성과 성능을 향상시키는가에 대해서 배운다.
- 5장, 성능 측정과 벤치마킹에서는 엑스코드의 자연스럽고도 강력한 성능 측정 및 진단 도구의 활용법을 살펴본다.
- 6장, 구문과 프로세스 성능에서는 기본 구문과 다른 일반적인 코딩 작업 안에 숨겨진 성능 장점을 찾아본다.
- 7장, 네트워크 성능에서는 성능을 증가시키기 위해 언제 어떻게 네트워크 소켓을 사용할 것인지를 살펴보고, 네트워크 성능의 기본에 대하여 알아본다.
- 8장, 메모리 성능에서는 애플리케이션 성능을 향상시키는 객체 유지 및 가비지 컬렉션을 이해하고 활용한다.
- 9장, 애플리케이션과 객체 라이프사이클에서는 아이템 렌더러, 객체, 컴포넌트 라이프사이클 및 적절한 사용이 성능에 어떻게 영향을 미치는가에 대해 상세히 살펴본다.
- 10장, 애니메이션, 뷰, 디스플레이 성능에서는 애니메이션화되고 계층화된 콘텐츠를 통한 성능 이익을 알아보고 어떠한 영향을 미치는가에 대해 살펴본다.
- 11장, 데이터베이스와 저장소 성능에서는 캐시의 적절한 구현 및 활용, 압축, SQLite, 코어 데이터, 데이터 동기화를 통해 애플리케이션 성능을 향상시키는 방법에 대해 살펴본다.
- 12장, 보편적인 코코아 설계 패턴에서는 모든 개발자가 익숙해야 하는 가장 중요하고 영향을 많이 미치는 설계 패턴에 대해 상세히 살펴본다.
- 13장, 엑스코드 장점에서는 성능을 고려하여 iOS 프로젝트의 컴파일, 구축, 준비, 출시에 대한 모든 측면을 살펴본다.
목차
목차
- 1장, 성능, 병목현상과 기초
- 성공과 성능
- 성능 인식
- 성능 기초
- 성능 접근
- 프로세스 관리
- 메모리
- 저장장치
- 네트워크
- 사용자 인터페이스
- 좋은 이웃되기
- 애플리케이션 설계 및 구조
- 애플리케이션 성능
- 요약
- 2장, 성능을 고려한 설계
- 프로젝트 준비하기
- 프로젝트 구성
- 프로젝트 구조
- 그룹과 파일
- 코드 구조
- 요약
- 3장, 유지보수
- 변수 명명 규칙
- 메소드 명명 규칙
- 카멜 케이스 명명 규칙
- 구문 효율성
- 가독성과 압축성의 비교
- 도트 구문
- 리팩토링
- 라이브러리 부풀리기
- LIPO
- 주석달기
- 문서화
- 요약
- 4장, 신뢰성
- 예외 처리
- 오류 검사
- 단위 테스트
- 로직 단위 테스트를 위한 프로젝트 준비하기
- 애플리케이션 단위 테스트를 위한 프로젝트 준비하기
- 요약
- 5장, 성능 측정과 벤치마킹
- 정적 분석기
- 인스트루먼트
- 요약
- 6장, 구문과 프로세스 성능
- 반복 루프
- 객체 재사용
- 비트마스크
- 정렬하기
- 버블 정렬
- 선택 정렬
- 버켓 정렬
- 퀵 정렬
- 실행 루프
- 타이머
- 세마포어
- 요약
- 7장, 네트워크 성능
- 소켓
- 스트림
- 프로토콜
- 대역폭
- 압축
- 파사드 패턴
- 요약
- 8장, 메모리 성능
- 가비지 콜렉션
- alloc
- dealloc
- copy
- retain
- release
- autorelease
- didReceiveMemoryWarning
- 요약
- 9장, 애플리케이션과 객체 라이프사이클
- 사전준비
- 애플리케이션 라이프사이클
- 애플리케이션 구동 시퀀스
- 애플리케이션 실행
- 애플리케이션 종료 시퀀스
- 애플리케이션 초기화
- awakeFromNib
- application:didFinishLaunchingWithOptions
- applicationDidBecomeActive
- applicationWillEnterForeground
- applicationWillResignActive
- applicationDidEnterBackground
- applicationWillTerminate
- 객체 라이프사이클
- 객체 초기화
- 요약
- 10장, 애니메이션, 뷰, 디스플레이 성능
- 뷰 성능
- 애니메이션 콘텐츠
- 코어 애니메이션
- 항목 렌더러
- 요약
- 11장, 데이터베이스와 저장소 성능
- 디스크
- 캐시
- 압축
- SQLite
- 코어 데이터
- 요약
- 12장, 보편적인 코코아 설계 패턴
- 설계 패턴은 왜 중요한가
- 싱글톤
- 중재자
- 딜리게이트
- 어댑터
- 데코레이터
- MVC
- 요약
- 13장, 엑스코드 장점
- 분산 빌드
- 데드 코드 스트리핑
- 컴파일러
- 디버거
- 소스코드 관리
- 요약