간편결제, 신용카드 청구할인
삼성카드 6% (49,070원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (49,590원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (36,540원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (41,760원)
(최대할인 4만원 / 2만원 이상 결제)
Close

Programming iOS 5 한국어판 : iOS 프로그래밍의 모든 것

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 11
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

58,000원

  • 52,200 (10%할인)

    2,900P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    주문수량
    감소 증가
    • 이벤트/기획전

    • 연관도서(53)

    • 사은품(5)

    출판사 서평

    [ 요약 ]

    이 책은 iOS를 개발하기 위해 알아야 하는 C 언어는 물론 오브젝티브C에 관한 기본 지식과 객체지향 프로그래밍의 본질, 개발 툴의 사용법과 함께 인스턴스화, 참조, 객체 간의 통신, 사용 중인 객체의 관리 방법 등 코코아 객체에 관한 모든 것을 소개하고, 주요 인터페이스 위젯과 기타 공통적으로 해야 할 작업에 관한 개관 등 iOS 프로그래밍을 하는 데 필요한 모든 기본 원리를 속속들이 다룬다.

    [ 소개 ]

    "뉴버그는 내가 가장 좋아하는 저자다. 그 밖에 무슨 말이 더 필요하겠는가." - 존 그루버 / 블로그 데어링 파이어볼(Daring Fireball) 운영자

    코코아 터치의 모든 기본기를 완벽하게 배우고, 아이폰과 아이패드 앱 개발 중에 발생하는 문제를 회피하는 방법을 익힌다. iOS 버전 5를 다루는 이번 개정증보판에서는 코코아에 대해 더 많은 내용을 파악하고, 오브젝티브C와 엑스코드를 효과적으로 활용하는 방법을 배운다. iOS 5를 철저하면서도 차근차근 다루는 이 책은 iOS 초보자에게는 물론, 이미 숙련된 개발자에게도 레퍼런스를 제공할 것이다.

    ARC 메모리 관리, 스토리보드, 부모 뷰 컨트롤러, 페이지 뷰 컨트롤러, 외형 프락시, 코어 이미지, 이미터 레이어 등 iOS 5에 새로 도입된 기능들에 대해 배운다.

    이 책에서 다루는 내용

    - 오브젝티브C 언어의 세부 사항과 객체지향 프로그래밍의 개념
    - 엑스코드(Xcode) 프로젝트의 구조와 전체 과정
    - 클래스 간과 수신 이벤트 간의 관계와 모델-뷰-컨트롤러 구조 등의 코코아 핵심 개념
    - 뷰와 레이어의 관리, 그리기, 합성, 애니메이션 방법
    - 뷰 컨트롤러와 그들 간의 관계, 그리고 nib과 스토리보드 관리
    - 스크롤 뷰, 테이블 뷰, 컨트롤 등의 모든 기본 인터페이스 객체
    - 소리, 비디오, 센서, 지도 등 코코아 프레임워크의 기능
    - 스레드와 네트워크 등의 고급 주제

    목차

    1부 개발 언어

    1장 C 언어
    ___컴파일, 구문, 주석
    ___변수 선언, 초기화, 데이터 형식
    ___구조체
    ___포인터
    ___배열
    ___연산자
    ___흐름 제어와 조건
    ___함수
    ___포인터 매개변수와 주소 연산자
    ___파일
    ___표준 라이브러리
    ___기타 전처리 지시자
    ___데이터 형식 한정자

    2장 객체 기반 프로그래밍
    ___객체
    ___메시지와 메소드
    ___클래스와 인스턴스
    ___클래스 메소드
    ___인스턴스 변수
    ___객체 기반 프로그래밍 철학

    3장 오브젝티브C 객체와 메시지
    ___인스턴스는 포인터로 참조
    ______인스턴스 참조, 초기화, nil
    ______인스턴스 참조와 대입
    ______인스턴스 참조와 메모리 관리
    ___메시지와 메소드
    ______메시지 전송
    ______메소드 선언
    ______메소드 호출의 중첩
    ______재정의 금지
    ______매개변수 목록
    ______인식할 수 없는 셀렉터
    ___형 변환과 id 형식
    ___메시지의 데이터 형식
    ___C 함수
    ___CFTypeRefs
    ___블록

    4장 오브젝티브C 클래스
    ___클래스와 상위 클래스
    ___인터페이스와 구현
    ___헤더 파일과 구현 파일
    ___클래스 메소드
    ___클래스의 비밀

    5장 오브젝티브C 인스턴스
    ___인스턴스가 만들어지는 과정
    ______자동으로 만들어주는 인스턴스
    ______인스턴스를 완전히 처음부터 만드는 방법
    ______Nib를 기반으로 인스턴스를 생성하는 방법
    ___다형성
    ___self
    ___super
    ___인스턴스 변수와 접근자
    ___키/값 코딩
    ___프로퍼티
    ___초기화 메소드 작성법

    2부 IDE

    6장 엑스코드 프로젝트 분석
    ___새로운 프로젝트
    ___프로젝트 윈도우
    ______내비게이터 창
    ______유틸리티 창
    ______편집 창
    ___프로젝트 파일과 파일의 의존성
    ___타겟
    ______빌드 단계
    ______빌드 설정
    ______구성
    ______스킴과 실행 위치
    ___프로젝트에서 앱까지
    ______빌드 설정
    ______속성 리스트 설정
    ______Nib 파일과 스토리 보드 파일
    ______기타 리소스
    ______코드
    ______프레임워크와 SDK

    7장 Nib 관리
    ___Nib 편집 인터페이스 둘러보기
    ______닥
    ______캔버스
    ______인스펙터와 라이브러리
    ___Nib 로딩과 File's Owner
    ___Nib 작성과 로딩
    ___아웃렛 연결
    ______아웃렛을 생성하는 다른 방법
    ______아웃렛에 대한 추가설명
    ___동작 연결
    ___Nib 기반 인스턴스의 추가적인 초기화

    8장 문서화
    ___문서 윈도우
    ___클래스 문서 페이지
    ___샘플 코드
    ___다른 자원
    ______신속한 도움
    ______심볼
    ______헤더 파일
    ______인터넷 자원

    9장 프로젝트 라이프 사이클
    ___장치 아키텍처 선택
    ___지역화
    ___코드 편집
    ______자동 완성
    ______코드 조각
    ______실시간 문법 검사
    ___코드 탐색
    ___디버깅
    ______케이브맨 디버깅
    ______엑스코드 디버거
    ___단위 테스트
    ___정적 분석기
    ___클린
    ___시뮬레이터에서 실행
    ___장치에서 실행
    ___장치 관리
    ___버전 관리
    ___인스트루먼트
    ___배포
    ___애드 혹 배포
    ___최종 앱 준비
    ______앱의 아이콘
    ______기타 아이콘
    ______시작 이미지
    ______스크린샷
    ______프로퍼티 목록 설정
    ___앱스토어에 제출

    3부 코코아

    10장 코코아 클래스
    ___하위 클래스화
    ___카테고리
    ______클래스 분리
    ______비밀 메소드 선언
    ___프로토콜
    ___선택 메소드
    ___파운데이션 클래스
    ______유용한 구조체와 상수
    ______NSString과 관련 클래스
    ______NSDate와 관련 클래스
    ______NSNumber
    ______NSValue
    ______NSData
    ______동등과 비교
    ______NSIndexSet
    ______NSArray와 NSMUtableArray
    ______NSSet과 관련 클래스
    ______NSDictionary와 NSMutableDictionary
    ______NSNull
    ______불변성과 가변성
    ______프로퍼티 목록
    ___NSObject의 비밀 기능

    11장 코코아 이벤트
    ___이벤트의 사용 이유
    ___하위 클래스화
    ___알림
    ______내장 알림 수신
    ______등록 해제
    ______NSTimer
    ___델리게이션
    ___데이터 소스
    ___동작
    ___반응기 체인
    ______책임 전가
    ______nil 타겟 동작
    ___애플리케이션 일생 이벤트
    ___이벤트의 쇄도

    12장 접근자와 메모리 관리
    ___접근자
    ___키/값 코딩
    ___메모리 관리
    ______코코아 메모리 관리의 원칙
    ______메모리 관리의 황금룰
    ______ARC의 정의와 동작
    ______코코아 객체의 메모리 관리 방법
    ______자동 해제
    ______인스턴스 변수의 메모리 관리(ARC 이전)
    ______인스턴스 변수의 메모리 관리(ARC)
    ______유지 사이클과 약한 참조
    ______Nib 불러오기와 메모리 관리
    ______전역 변수의 메모리 관리
    ______포인터와 빈 Context Info의 메모리 관리
    ______CFTypeRefs의 메모리 관리
    ___프로퍼티

    13장 데이터 통신
    ___모달-뷰-컨트롤러
    ___인스턴스 가시성
    ______인스턴스화에 의한 가시성
    ______관계에 의한 가시성
    ______전역 가시성
    ___알림
    ___키/값 관찰

    4부 뷰

    14장 뷰
    ___윈도우
    ___하위 뷰와 상위 뷰
    ___프레임
    ___경계와 중심
    ___레이아웃
    ___변환
    ___가시성과 투명도

    15장 드로잉
    ___UIImage와 UIImageView
    ___그래픽스 컨텍스트
    ___UIImage 드로잉
    ___CGImage 드로잉
    ___CIFilter와 CIImage
    ___UIView 드로잉
    ___그래픽 컨텍스트 설정
    ___연결선과 드로잉
    ___잘라내기
    ___그레이디언트
    ___색과 패턴
    ___그래픽 컨텍스트 변환
    ___그림자
    ___점과 픽셀
    ___컨텐트 모드

    16장 레이어
    ___뷰와 레이어
    ___레이어와 하위 레이어
    ______레이어 계층 조작
    ______하위 레이어 위치 지정
    ______CAScrollLayer
    ______하위 레이어의 레이아웃
    ___레이어에서 그리기
    ______콘텐츠 크기 조정과 위치 지정
    ______자신을 그리는 레이어
    ___변환
    ______깊이
    ___그림자, 경계, 기타
    ___레이어와 키/값 코딩

    17장 애니메이션
    ___드로잉과 애니메이션, 스레딩
    ___UIImageView와 UIImage 애니메이션
    ___뷰 애니메이션
    ______애니메이션 블록
    ______애니메이션 블록 수정
    ______애니메이션 전환
    ______블록 기반 뷰 애니메이션
    ___암묵적인 레이어 애니메이션
    ______애니메이션 트랜잭션
    ______미디어 타이밍 함수
    ___코어 애니메이션
    ______CABasicAnimation과 상속
    ______CABasicAnimation 사용
    ______키 프레임 애니메이션
    ______프로퍼티를 애니메이션 가능하게 만들기
    ______그룹화된 애니메이션
    ______전환
    ______애니메이션 목록
    ___동작
    ______동작의 정의
    ______동작 검색
    ______동작 검색으로 연결
    ______프로퍼티가 아닌 동작
    ___이미터 레이어

    18장 터치
    ___터치 이벤트와 뷰
    ___터치 수신
    ___터치 제한
    ___터치 해석
    ___제스처 인식기
    ______제스처 인식기 클래스
    ______다중 제스처 인식기
    ______제스처 인식기의 하위 클래스화
    ______제스처 인식기 델리게이트
    ___터치 전달
    ______히트 테스트
    ______최초 터치 이벤트 전달
    ______제스처 인식기와 뷰
    ______터치 제외 논리
    ______인식
    ______터치와 반응기 체인

    5부 인터페이스

    19장 뷰 컨트롤러
    ___뷰 컨트롤러 계층 구조
    ___뷰 컨트롤러와 뷰 생성
    ______매뉴얼 뷰
    ______일반 자동 뷰
    ______분리된 nib의 뷰
    ______Nib에서 인스턴스화된 뷰 컨트롤러
    ______스토리보드로 인스턴스화된 뷰 컨트롤러
    ___회전
    ______회전 이벤트
    ______최초 방향
    ___나타낸 뷰 컨트롤러
    ______나타낸 뷰 애니메이션
    ______출력 스타일
    ______나타낸 뷰와 회전
    ___탭 바 컨트롤러
    ______탭 바 아이템
    ______탭 바 컨트롤러 설정
    ___내비게이션 컨트롤러
    ______바 버튼 아이템
    ______내비게이션 아이템
    ______툴바 아이템
    ______내비게이션 컨트롤러 설정
    ___페이지 뷰 컨트롤러
    ___컨테이너 뷰 컨트롤러
    ___스토리보드
    ___뷰 컨트롤러 일생 이벤트
    ___뷰 컨트롤러 메모리 관리

    20장 스크롤 뷰
    ___스크롤 뷰 생성
    ___스크롤하기
    ______페이징
    ______타일링
    ___확대 축소
    ______프로그램적으로 확대 축소
    ______상세 확대
    ___스크롤 뷰 델리게이트
    ___스크롤 뷰 터치
    ___스크롤 뷰 성능

    21장 테이블 뷰
    ___테이블 뷰 셀
    ______내장된 셀 형식
    ______맞춤형 셀
    ___테이블 뷰 데이터
    ______중요한 세 가지 질문
    ______테이블 뷰 섹션
    ______테이블 뷰 데이터 리플래싱
    ______가변 열 높이
    ___테이블 뷰 선택
    ___테이블 뷰 스크롤과 레이아웃
    ___테이블 뷰 검색
    ___테이블 뷰 편집
    ______테이블 아이템 삭제
    ______테이블 아이템에서 편집 가능한 아이템
    ______테이블 아이템 삽입
    ______테이블 아이템 재배치
    ______동적 테이블 컨텐트
    ___테이블 뷰 메뉴

    22장 팝오버와 스플릿 뷰
    ___팝오버 설정과 출력
    ___팝오버 관리
    ___팝오버 해제
    ___팝오버 전환
    ___자동 팝오버
    ___스플릿 뷰

    23장 텍스트
    ___UILabel
    ___UITextField
    ______편집과 키보드
    ______키보드 설정
    ______텍스트 필드 델리게이트와 제어 이벤트 메시지
    ______텍스트 필드 메뉴
    ___UITextView
    ___코어 텍스트

    24장 웹 뷰
    ___컨텐트 로딩
    ___웹 뷰와 통신

    25장 컨트롤과 기타 뷰
    ___UIActivityIndicatorView
    ___UIProgressView
    ___UIPickerView
    ___UISearchBar
    ___UIControl
    ______UISwitch
    ______UIStepper
    ______UIPageControl
    ______UIDatePicker
    ______UISlider
    ______UISegmentedControl
    ______UIButton
    ______맞춤형 컨트롤
    ___바
    ______UINavigationBar
    ______UIToolbar
    ______UITabBar
    ___외형 프락시

    26장 모달 대화상자
    ___경고창 뷰
    ___동작 화면
    ___대화상자 대체물
    ___지역 알림

    6부 추가 프레임워크

    27장 오디오
    ___시스템 소리
    ___오디오 세션
    ______인터럽트
    ______변경 전달
    ___오디오 플레이어
    ___소리의 원격 제어
    ___백그라운드에서 소리 재생
    ___소리에 대한 추가적인 주제

    28장 비디오
    ___MPMoviePlayerController
    ___MPMoviePlayerViewController
    ___UIVideoEditorController
    ___AV 파운데이션 비디오 소개

    29장 음악 라이브러리
    ___음악 라이브러리 탐색
    ___뮤직 플레이어
    ___뮤직 피커

    30장 사진 라이브러리와 이미지 캡처
    ___UIImagePickerController
    ______사진 라이브러리에서 선택
    ______카메라 사용
    ___AV 파운데이션으로 이미지 캡처
    ___Assets 라이브러리 프레임워크

    31장 주소록
    ___주소록 데이터베이스
    ___주소록 인터페이스
    ______ABPeoplePickerNavigationController
    ______ABPersonViewController
    ______ABNewPersonViewController
    ______ABUnknownPersonViewController

    32장 캘린더
    ___캘린더 데이터베이스
    ___캘린더 인터페이스

    33장 메일
    ___메일 메시지
    ___SMS 메시지

    34장 지도
    ___지도 표시
    ___애노테이션
    ___오버레이

    35장 센서
    ___위치
    ______맵 킷과 코어 로케이션
    ______지오코딩
    ______위치 매니저
    ___방향
    ___가속과 자세
    ______흔들기 이벤트
    ______가공되지 않은 가속도
    ______자이로스코프

    7부 마지막 주제

    36장 영구 저장소
    ___샌드박스
    ___기본 파일 동작
    ___파일 저장과 읽기
    ___사용자 기본 값
    ___파일 공유
    ___문서 형식
    ___문서 전달
    ___문서 구조
    ___XML
    ___SQLite
    ___그림 파일 형식

    37장 기본 네트워킹
    ___HTTP 요청
    ___봉주르
    ___푸시 알림
    ___기본 네트워킹을 넘어서

    38장 스레드
    ___메인 스레드
    ___스레드가 어려운 이유
    ___스레드의 세 가지 방법
    ______매뉴얼 스레드
    ______NSOperation
    ______그랜드 센트럴 디스패치
    ___스레드와 앱 백그라운드화

    39장 실행 취소
    ___실행 취소 매니저
    ___실행 취소 인터페이스
    ___실행 취소 구조

    40장 에필로그

    본문중에서

    애플은 아이폰OS 2를 발표하면서 놀라운 일을 실현해냈다. 맥에서 사용하던 코코아(Cocoa) 애플리케이션 프로그래밍 프레임워크를 개선해, 제한적인 메모리와 속도, 그리고 매우 작은 화면을 지닌 터치 기반 디바이스용 애플리케이션을 만들 수 있는 프레임워크로 재창조한 것이다. 애플의 결실인 코코아 터치 프레임워크는 여러모로 기존 코코아보다 한층 뛰어난 특징을 지니고 있다.

    프로그래밍 프레임워크는 일종의 퍼스낼리티를 지닌다. 프레임워크의 곳곳에 프레임워크를 만든 개발자의 통찰력과 기호가 드러나기 마련이다. 처음 코코아 터치를 마주한 순간 "와, 이걸 만든 사람은 정말 천재야!"라는 생각이 들었다. 인터페이스 위젯의 수는 가혹하리만치 제한적이었지만, 일부 위젯, 특히 UITableView 같은 위젯은 맥 OS X의 UITableView를 한층 뛰어넘어 막강하면서도 유연한 기능을 지니고 있었다. 더욱 중요한 점은 애플이 UIViewController라는 특별한 수단을 통해 철저한 관리하에 계층 구조로 이뤄진 인터페이스 블록 전체를 자유롭게 왕래하거나 다른 인터페이스로 교체할 수 있게 만들었다는 점이다. 그렇기 때문에 사용자를 혼란스럽게 만들지 않으면서도 다양한 인터페이스를 작은 아이폰 화면 안에 펼쳐 놓을 수 있다.

    더욱 인상적인 점은, 애플이 코코아를 근본적으로 철저하게 다시 구성해 코코아 터치(Cocoa Touch)를 만들어낼 기회를 놓치지 않았다는 점이다. 코코아는 맥 OS X이 나오기도 전인 넥스트스텝(NeXTStep) 시절에 태어난 매우 낡은 프레임워크다. 코코아는 점점 기능이 늘면서 덩치가 커져왔지만 하위 호환성을 유지할 수 있게 보수적인 자세를 고수해왔다. 하지만 애플은 코코아 터치를 만들면서 앞으로의 발전 가능성을 고려해 하위 호환성을 포기하는 과감한 결단을 내렸다.

    그렇기 때문에 코코아 터치는 맥 OS X용 코코아를 바탕으로 만들어지긴 했지만 분명 맥 OS X용 코코아와는 다르며, 맥 OS X용 코코아에 의해 제한을 받지도 않는다. 코코아 터치는 별개의 창작물로 봐야 하며, 더욱 가볍고 한층 뛰어난 코코아라고 할 수 있다. 수많은 선례가 있음에도 불구하고 절감의 법칙(Occam's Razor)을 제대로 실천해 멋진 시스템을 구축한 코코아 터치를 칭찬할 수밖에 없다. 맥 OS X의 애니메이션 레이어는 나중에 뷰에 덧붙여진 특징으로, 코코아 터치의 뷰는 항상 애니메이션 레이어를 지닌다. nib을 로드할 때 최상위 객체를 관리하는 방식 같은 메모리 관리 정책도 간결하고 명확하다.

    동시에 코코아 터치는 코코아의 형태를 유지하고 있다. 코코아 터치를 사용하려면 오브젝티브C를 알아야 한다. 오브젝티브C는 하이퍼카드의 하이퍼톡(HyperTalk)이나 애플의 애플스크립트처럼 프로그래머가 아니어도 쉽게 사용할 수 있는 스크립트 언어가 아니다. 상당히 거대하고 복잡한, 매우 어려운 언어다.

    수많은 무료 앱, 저렴한 앱의 확산과 함께 아이폰은 큰 인기를 끌었다. 뒤이어 아이패드 역시 인기를 끌면서 iOS 프로그래밍의 가치와 가능성을 깨달은 새로운 프로그래머들의 합류가 줄을 이었고, 앞으로도 계속 이어질 것이다(물론 맥 OS X과 iOS의 차이점을 잘 모르는 개발자도 있을 수 있다). 애플의 자체 연례 컨퍼런스인 WWDC는 이러한 추세를 반영해 맥 OS X보다 iOS의 비중을 점점 높이고 있다.

    iOS 프로그래밍의 확산은 분명 환영할 일이지만, 기초를 등한시하고 일단 해보자는 경향도 나타나고 있다. iOS는 프로그래머에게 상상하는 바를 모두 이룰 수 있을 듯한 강력한 힘을 제공하지만, 힘을 다루려면 기본 원리를 알아야 한다. 종종 온라인상에서 재미있는 앱을 만드는 데 깊이 빠져들었지만, 즐겁게 뛰어 다녀야 할 세상의 기본 원리에 익숙하지 않아 한계를 겪고 좌절하는 프로그래머의 질문을 마주하곤 한다.

    상황이 이렇다 보니 iOS의 기초를 제대로 알려주는 책을 써야겠다는 생각이 들었다. 코코아를 좋아했기 때문에 오래 전부터 코코아에 관한 책을 쓰고 싶었지만, iOS의 인기에 영향을 받아 iOS에 관한 책을 쓰게 됐다. 사실 가제는 [코코아 터치 프로그래밍의 기초(Fundamentals of Cocoa Touch Programming)]였다. 목표했던 대로 학습에 도움을 주는 유익한 내용을 논리적인 순서대로 잘 정리해서 자세히 설명하려고 노력했다. C 언어는 물론 오브젝티브C에 관한 기본 지식과 객체지향 프로그래밍의 본질, 개발 툴의 사용법과 함께 인스턴스화, 참조, 객체 간의 통신, 사용 중인 객체의 관리 방법 등 코코아 객체에 관한 모든 것을 소개하고, 주요 인터페이스 위젯과 기타 공통적으로 해야 할 작업에 관한 개관 등 iOS 프로그래밍을 하는 데 필요한 기본 원리를 다뤘다. 한 장 한 장 넘길 때마다 새로운 지식을 배워가며 처음부터 끝까지 잘 읽기 바라고, 읽은 후에도 곁에 두고 볼 수 있는 참고서로 남았으면 한다.

    애플의 개발 문서와 예제 프로젝트를 가볍게 볼 생각은 없다. 애플이 제공하는 리소스는 훌륭할 뿐만 아니라 시간이 지날수록 점점 완성도가 높아지고 있다. 책을 준비할 때부터 상당 부분을 애플의 리소스에 의존했다. 하지만 애플의 리소스가 모든 기능을 논리 정연하고 순서에 맞게 설명하진 않는다는 점도 부인할 수 없는 사실이다. 온라인 문서는 독자의 수준을 가정할 수밖에 없고 독자가 문서를 주어진 순서대로 읽을지도 알 수 없다. 그리고 온라인 문서는 내용을 설명하기보다는 참고하기에 알맞은 형태다. 완전한 프로그램 형태의 예제는 아무리 주석이 잘 달려있더라도 따라가기가 어렵다. 즉, 보여주는 용도라면 몰라도 가르쳐주기엔 적당하지 않다.

    반면 책은 장에 따라 내용이 나뉘어있다. 객체 기반 프로그래밍을 다루는 2장보다 C언어의 기초를 다루는 1장이 앞에 있다는 사실로도 잘 알 수 있듯이, 나는 독자가 오브젝티브C를 배우기 전에 이미 C 언어에 관해 알고 있을 거라고 가정했다. 더불어 독자에게 좀 더 쉽게 다가가고자 직접 경험한 내용을 추가했다. 책 전반에 걸쳐 '초보 개발자가 흔히 저지르는 실수'라고 언급한 내용은 내가 저질렀던 실수와 다른 개발자가 저지르는 실수를 지켜본 경험을 옮긴 것이다. 처음 배울 때 으레 겪을만한 문제점들도 설명하려고 노력했다. 또한 직접 작성하거나 큰 앱에서 추출한 다양한 예제를 곁들여 설명한다. 거대하고 완벽한 프로그램을 예로 들어 프로그래밍 기법을 가르치기보다는 프로그램 개발에 필요한 사고 과정을 설명한다. 무엇보다도 책을 읽으면서 이런 사고 과정을 이해할 수 있기를 바란다.

    iOS는 엄청나게 방대하다. 너무 커서 책 한 권에 모두 망라하기는 불가능하다. 그리고 책을 통해 언급하기에 적절하지 않거나 필요 없는 내용도 있다. 이 책에서는 코코아 터치의 전 영역 중에서 제외해야 할 부분을 과감히 버리고 남은 부분을 설명했다. 제외한 내용 중 일부는 따로 책 한 권을 써도 충분한 분량이다. 그 밖의 내용은 때가 오면 애플의 문서를 통해 잘 알 수 있을 거다. 이 책은 기본 원리를 다루는 입문서다. 모쪼록 독자들이 이 책을 읽고 앞으로의 난관을 헤쳐 나갈 수 있게 기초를 확고하게 다짐으로써, 앞으로 즐겁고 보람 있는 iOS 프로그래밍을 할 수 있기를 바란다.
    (/ 저자 서문 중에서)

    애플의 iOS, 구글의 안드로이드 OS, 리서치 인 모션의 블랙베리 OS, HP 웹OS, 윈도우폰 OS 등 모바일용으로 구동되는 많은 운영체제가 있다. 그러나 그 중에서도 코코아 터치 프레임워크 같은 강력한 라이브러리를 기반으로 하는 애플의 iOS는 운영체제의 안정성과 성숙도뿐만 아니라 라이브러리의 성숙도까지 다른 모바일 기반 운영체제들을 압도한다. 안드로이드를 장착한 모바일 장치가 전 세계적으로 iOS를 장착한 기기보다 더 많이 팔렸다고 하더라도 기업의 입장에서는 마켓의 안정성이나 이윤을 고려할 때 애플의 앱스토어 마켓을 떠나서는 이윤 창출이 쉽지 않은 것이 현실이다. 기업의 상황이 이렇다 보니 개발자 입장에서도 자바 경험이 있어 자바 기반의 안드로이드 앱을 더욱 쉽게 배울 수 있는 조건임에도 불구하고, iOS 앱이 기반으로 하는 오브젝티브C를 처음부터 배울 수밖에 없는 것이 현실이다.

    뿐만이 아니라 애플이 제공하는 아이클라우드(iCloud)와 아이애드(iAd) 등과 관련된 개발도 점점 전문화되고 있다. 아이클라우드는 사용자의 데이터를 모든 기기에서 공유할 수 있는 편리함을 제공할 뿐만 아니라, 기계를 분실하거나 파손한 경우에도 아이클라우드에 저장한 자료를 안전하게 보관할 수 있다. 또한 아이애드는 엑스코드 외에 아이애드 프로듀서라는 프로그램을 통해 광고를 쉽게 제작하고 배포할 수 있으며, 앱과 연동할 수 있는 환경을 제공함으로써 또 다른 수익 창출 모델을 제시한다.

    iOS의 이러한 빠른 진화에 겁먹을 필요는 없다. iOS가 나날이 진화 중인 것이 사실이긴 하지만, 가장 중요한 것은 기초를 튼튼하게 다져놓는 것이라고 생각한다. 소프트웨어 개발자로 일할 때 가장 많이 들었던 말 중 하나는 "언어 하나를 완벽하게 배워두면, 다른 언어는 쉽게 익힐 수 있다."라는 조언이다. 지금 생각해도, 정말 일리가 있는 말임이 분명하다. 모든 프로그래밍의 근본은 비슷하기 때문이다. 따라서 기초를 탄탄히 하기 위해 노력하고, 어떤 작은 문제라도 직접 실험해봄으로써 몸으로 익히는 것은 매우 중요하고도 가장 좋은 방법이다.

    많은 개발자가 공감하겠지만 소프트웨어에 100%의 완전함이란 존재하지 않는다. iOS도 기존 기능을 유지 보수하고 새로운 기능을 이전 기능과 잘 호환시키려고 최선의 노력을 다하고 있음을 엿볼 수 있다. 이 책에서도 애플에서 미처 간파하지 못한 오동작이나 버그처럼 느껴지는 많은 부분을 지적한다. 또한 저자가 겪었던 어려운 상황에 대한 경험담에 근거해 네트워크 상황이나 기계의 자원 환경에 따라 동작이 달라질 수도 있는 여러 가지 상황을 언급한 부분에서는, iOS를 세부적으로 다루는 개발자들이 같은 실수를 되풀이하며 시간을 허비하는 일이 없기를 바라는 저자의 깊은 마음을 읽을 수 있다.

    한국어로는 초판의 번역서가 출판되지는 않았지만, 영문 초판을 거쳐 개정판이 나오는 과정에서 많은 독자의 리뷰와 iOS 5의 추가 기능들에 대해 상당 부분이 보완됐다. iOS의 완성도 못지않게 이 책의 구성 또한 매우 훌륭하다. 독자들이 충분한 시간을 두고 이 책이 제시하는 구성대로 꾸준하게 공부를 한다면 1년 안에 훌륭한 iOS 개발자가 될 것이라 확신한다. 더 나아가 iOS 개발에 어느 정도 자신감이 생긴다면, 단순히 개발을 하는 것뿐만 아니라 남들이 아직까지 개척하지 않은 앱을 창조해 직접 판매하는 것을 목표로 하기를 바란다. 이런 동기 부여가 있다면 개발이 지루해지거나 싫증나는 일은 없을 것이다.

    독자들이 이 책을 통해 훌륭한 iOS 개발자로 발돋움하길 기원해본다.
    (/ 옮긴이의 말 중에서)

    저자소개

    매트 뉴버그(Matt Neuburg) [저] 신작알림 SMS신청 작가DB보기
    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    서양고전학 박사로, 다수의 대학에서 강의해왔다. [맥테크(MacTech)] 매거진의 편집자이자 [TidBITS]의 객원 편집자이며, 다수의 OS X, iOS 애플리케이션 개발 서적을 저술했다. 저서로 [Programming iOS 8], [REALbasic: The Definitive Guide], [AppleScript: The Definitive Guide], [Swift로 하는 iOS 프로그래밍](에이콘, 2015) 등이 있다.

    생년월일 -
    출생지 -
    출간도서 0종
    판매수 0권

    국내에서 학업을 마치고 1년여 동안 미국의 연구 기관에서 방문 연구원으로 재직했다. 한국으로 돌아와 포스코 ICT에서 통신 시스템 소프트웨어 개발자로 3년 동안 근무했다. 그 후 미국의 조지 워싱턴 대학교의 컴퓨터 사이언스 학과에서 박사 과정을 마쳤고, 지금은 미국 뉴욕에 위치한 IBM T.J. 왓슨 리서치 센터(IBM T.J. Watson Research Center)에서 클라우드 컴퓨팅과 빅데이터에 관한 연구를 진행 중이다. 에이콘출판사에서 펴낸 [Concurrent Programming on Windows 한국어판](2012), [Creating iOS 5 Apps Develop and Design 한국어판](2012), [Programming i

    펼쳐보기

    이 상품의 시리즈

    에이콘 모바일 프로그래밍 시리즈(총 65권 / 현재구매 가능도서 54권)

    펼쳐보기

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      0.0 (총 0건)

      구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      0.0

      교환/환불

      교환/환불 방법

      ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

      • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용