Top

아이폰 애플리케이션 성능 튜닝

  • 원서명iPhone Applications Tune-Up (ISBN 9781849690348)
  • 지은이로얄 모세스
  • 옮긴이조한진, 이용환, 이준환
  • ISBN : 9788960774834
  • 30,000원
  • 2013년 10월 31일 펴냄
  • 페이퍼백 | 304쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 모바일 프로그래밍

책 소개

현재 무수히 많은 아이폰 앱이 사용되고 있으며, 또한 많은 아이폰 앱이 개발 중에 있다. 일반 사용자들이 만족스럽게 사용하게 하려면 반응 속도가 빠른 고성능 앱을 만드는 것이 무엇보다도 중요하다. 이 책은 아이폰 앱의 반응성과 좋은 성능을 고려하여, 경쟁력 있는 iOS 앱을 개발하는 데 도움을 준다. 성능에 대한 기본 개념을 설명하고 예제를 통해 iOS 개발자가 반드시 알아야 할 기술과 팁을 제공한다. 이 책을 통해 iOS 앱을 개발할 때 필요한 성능 향상 방법을 배우고, 빠르고 강력하며 경쟁력 있는 최고 성능의 아이폰 앱을 개발할 수 있을 것이다.

이 책에서 다루는 내용
  • 애플리케이션 성능과 병목현상에 대한 기본 원리
  • 성능 기반의 개발 방식에 대한 장점과 기술
  • 적절한 벤치마킹과 측정 유틸리티를 통한 애플리케이션 분석
  • iOS와 디바이스의 기능 및 한계
  • 네트워크와 커뮤니케이션 성능 향상
  • 기본 언어 구문의 잘못된 사용으로 인한 일반적인 위험 요소
  • 애플리케이션의 간편성과 성능을 향상시키는 디자인 패턴
  • 객체와 컴포넌트의 라이프사이클
  • 좀더 향상된 코드를 생성하기 위한 단위 테스트, 예외 처리
  • 빠르고 효율적인 데이터 저장과 기록
이 책의 대상 독자

이 책은 새로운 그리고 기존의 엑스코드 프로젝트에서의 애플리케이션 성능 병목현상을 해결하는 데 관심 있는 iOS 애플리케이션 개발자를 위한 것이다. 독자들은 iOS 개발, 오브젝티브C 구문, 애플의 엑스코드 개발 환경의 사용에 대한 기본 개념과 원칙과 친숙해야 한다.

이 책의 구성
  • 1장, 성능, 병목현상과 기초에서는 성능 기반 개발 및 열악한 애플리케이션 성능의 효과를 기반으로 하는 핵심 원칙들을 확인한다.
  • 2장, 성능을 고려한 설계에서는 안정성과 효율성을 위한 엑스코드 프로젝트의 적절한 구성 방법을 배운다.
  • 3장, 유지보수에서는 프로젝트의 핵심 원칙과 소스코드 유지보수성에 초점을 맞춘다.
  • 4장, 신뢰성에서는 예외 처리 및 단위 테스트가 왜 그리고 어떻게 프로젝트 신뢰성과 성능을 향상시키는가에 대해서 배운다.
  • 5장, 성능 측정과 벤치마킹에서는 엑스코드의 자연스럽고도 강력한 성능 측정 및 진단 도구의 활용법을 살펴본다.
  • 6장, 구문과 프로세스 성능에서는 기본 구문과 다른 일반적인 코딩 작업 안에 숨겨진 성능 장점을 찾아본다.
  • 7장, 네트워크 성능에서는 성능을 증가시키기 위해 언제 어떻게 네트워크 소켓을 사용할 것인지를 살펴보고, 네트워크 성능의 기본에 대하여 알아본다.
  • 8장, 메모리 성능에서는 애플리케이션 성능을 향상시키는 객체 유지 및 가비지 컬렉션을 이해하고 활용한다.
  • 9장, 애플리케이션과 객체 라이프사이클에서는 아이템 렌더러, 객체, 컴포넌트 라이프사이클 및 적절한 사용이 성능에 어떻게 영향을 미치는가에 대해 상세히 살펴본다.
  • 10장, 애니메이션, 뷰, 디스플레이 성능에서는 애니메이션화되고 계층화된 콘텐츠를 통한 성능 이익을 알아보고 어떠한 영향을 미치는가에 대해 살펴본다.
  • 11장, 데이터베이스와 저장소 성능에서는 캐시의 적절한 구현 및 활용, 압축, SQLite, 코어 데이터, 데이터 동기화를 통해 애플리케이션 성능을 향상시키는 방법에 대해 살펴본다.
  • 12장, 보편적인 코코아 설계 패턴에서는 모든 개발자가 익숙해야 하는 가장 중요하고 영향을 많이 미치는 설계 패턴에 대해 상세히 살펴본다.
  • 13장, 엑스코드 장점에서는 성능을 고려하여 iOS 프로젝트의 컴파일, 구축, 준비, 출시에 대한 모든 측면을 살펴본다.

저자/역자 소개

지은이 소개

로얄 모세스 (Loyal Moses)

뛰어난 사업가이며, 검증된 기업가일뿐만 아니라, 기술적으로 훌륭한 강연자, 저자, 작가라 할 수 있다. 또한 그는 모든 주요 운영체제 플랫폼에서 20년 이상의 프로그래밍 경험이 있으며, 다수의 프로그래밍 언어를 다룰 수 있는 개발자다. 오랫동안 다양한 기술적 배경을 통해 데스크탑, 웹 및 모바일 기기 개발에 대한 광범위한 네트워크 보안 및 전문 해킹 분야에 기본 지식 및 전문 기술을 가지고 있다. ~~ 전 세계적으로 이름을 떨친 Snort와 Syslog 네트워크 침입 관리 시스템인 Aanval을 보완해 아이폰과 아이패드에서 동작하는 침입 탐지 및 상관 관계 앱을 처음으로 제작했으며, 이 분야에서 전문가로 인정받고 있다. 또한 애플 앱 스토어에 최근까지 판매되고 있는 다수의 유용한 iOS 애플리케이션을 설계해 개발, 배포하고 있다. 뿐만 아니라 자신의 개인 블로그(http://www.loyalmoses.com)에 정기적으로 글을 올리며 운영하고 있다.

지은이의 말

코드의 모든 라인은 애플리케이션의 효율적인 성능을 향상시킬 수 있다. 이 책은 성능의 기본에 대해서 시작한다. 형편없는 성능이 애플리케이션의 성공에 미칠 수 있는 영향을 보여주면서 말이다. 애플의 앱 스토어에는 단지 짧은 성공을 누리는 애플리케이션으로 가득하며 이러한 실패의 원인을 최적화 결핍 탓으로 확대 해석하지 말아야 한다. 독자들은 각 장을 통해 단순한 구문에 대한 도움말 및 유용한 정보로부터 진보된 프로세스 관리, 네트워크, 메모리 최적화에 이르기까지 성능 튜닝의 모든 면을 배우게 될 것이다.

이론, 문법, 상세한 코드 예제 이외에도, 독자들은 애플의 강력한 성능 측정 및 주목할 필요가 있는 iOS 프로젝트의 특정 컴포넌트를 식별할 수 있도록 유틸리티 벤치마킹 활용을 배우게 될 것이다.

옮긴이 소개

조한진

한남대학교 컴퓨터공학과 학부와 대학원을 졸업했다. 2002년부터 극동대학교 교수로 부임해 정보보호 분야와 모바일 융합 분야를 연구 중이다. 2012년부터 스마트모바일학과에서 학생들을 지도하며, 현재 스마트모바일학과 학과장과 스마트 앱 창작터 센터장을 맡고 있다. 학회 활동으로는 한국콘텐츠학회에서 홍보위원장을 맡고 있다. 번역서로는 『와이어샤크 네트워크 완전 분석』(에이콘출판, 2011년), 『iPhone JavaScript Cookbook 한국어판』(에이콘출판, 2012년), 『(개정판) 와이어샤크를 활용한 실전 패킷 분석』(에이콘출판, 2012년), 『센차터치 프로그래밍』(에이콘출판, 2013년)이 있다.

이용환

단국대학교 전산과, 전자컴퓨터공학과에서 학부와 대학원을 졸업했다. 2009년부터 단국대학교 응용컴퓨터공학과 연구교수로 부임해 영상검색 및 인식, 컴퓨터비전 및 패턴인식, 증강현실 분야를 연구 중이다. 2010년부터 단국대, 극동대, 한라대 앱창작터의 아이폰 앱 개발 교육과정에서 강의한다. 국제 영상검색 표준인 JPEG JPSearch 분야에서 Co-editor를 맡고 있으며, 컴퓨터 비전 기반 증강현실 표준인 JPEG AR분야에 멤버로 참여하면서 표준화 활동을 수행하고 있다.

이준환

단국대학교 전자공학과에서 학부와 대학원을 졸업하였다. 2001년부터 극동대학교 교수로 부임하여, 신호처리 및 머신비전, 생체인식 분야를 연구하고 있다. 2012년부터 스마트모바일학과에서 학생들을 지도하고 있으며, 현재 극동대학교 기획처장을 맡고 있다. 학회활동으로는 한국디지털정보미디어학회에서 총무이사를 맡고 있다. 번역서로는 『와이어샤크 네트워크 완전 분석』(에이콘출판, 2011년), 『iPhone JavaScript Cookbook 한국어판』(에이콘출판, 2012년), 『센차터치 프로그래밍』(에이콘출판, 2013년)이 있다.

옮긴이의 말

2012년 보고자료에 의하면 스마트폰 가입자가 3,200만 명을 넘어섰다고 한다. 이 중에서 스마트폰 이용 후 생활이 전반적으로 편리해졌다고 답한 이가 86.7%에 달한다. 이렇게 많은 사람이 스마트폰을 사용하고 편리하다고 생각하는 이유는 다양한 모바일 애플리케이션(이하 앱) 때문일 것이다.

수많은 앱이 만들어지고 활용되는 과정에서 재미난 사실을 하나 소개하자. 애플에서는 단 한 번도 타사 모바일 시스템이나 기기에서 동작하는 앱을 만들어 본 적이 없다는 사실이다. 이에 반해, 구글이나 마이크로소프트 등 모바일 플랫폼의 여타 주요 경쟁사들은 애플 디바이스용 앱을 만든다. 따라서, 애플의 스마트 기기 사용자들은 애플 자체 지원 앱을 사용할 수 있을 뿐만 아니라 타사에서 개발된 앱도 손쉽게 사용할 수 있다. 그러나 안드로이드폰이나 윈도우폰을 사용할 경우, 이들 제조사의 주요 앱을 사용할 수는 있지만 애플에서 개발한 앱은 사용할 수가 없다. 일반 사용자 측면에서 볼 때는 애플의 기기를 사용한다는 것이 다양한 앱을 사용할 수 있기 때문에 매우 유리하다고 할 수 있다.

대학에 있으면서 아이폰 관련 강의를 하고, 정부지원 과제를 수행하면서 앱 개발 전체 과정을 지도하는 나 역시 많은 앱을 다운로드해 사용하며, 또한 여러 아이폰 앱을 개발했다. 아이폰 앱을 만들기 위해 iOS의 특징을 습득하고 그에 따른 오브젝티브C로 프로그래밍을 해야 하는 과정에서 앱의 효율적인 실행을 위해 여러 가지를 살펴보게 되었다. 또한 아이폰 앱을 등록하기 위해 실행 테스트를 하면서 개발하는 앱들이 스마트폰에 끼치는 영향을 살펴보던 중 이 책의 원서인 『iPhone Application Tune-up』을 알게 되었다. 책의 내용도 체계적으로 기술돼 있어서 아이폰 개발자가 손쉽게 접근할 수 있으리라 판단해 번역하기로 결정했다.

이 책은 아이폰 개발에 경험이 있는 개발자에게 성능을 고려한 앱 개발에 많은 도움을 줄 것이며, 체계적인 프로세스 관리, 네트워크 및 메모리 최적화 등 아이폰 개발상에서 반드시 고려해야 할 성능 문제를 해결하는 데 훌륭한 길잡이가 될 책이다.

대표역자 조한진 

목차

목차
  • 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장, 엑스코드 장점
  •   분산 빌드
  •   데드 코드 스트리핑
  •   컴파일러
  •   디버거
  •   소스코드 관리
  •   요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안