자바 개발자를 위한 오브젝티브C
- 원서명Learn Objective-C for Java Developers (ISBN 9781430223696)
- 지은이제임스 뷰캐넥
- 옮긴이이태상
- ISBN : 9788960771727
- 35,000원
- 2010년 12월 31일 펴냄 (절판)
- 페이퍼백 | 792쪽 | 185*235mm
- 시리즈 : 모바일 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
이 책은 자바 개발자들이 자바 개발 경험을 십분 활용해 맥 플랫폼의 기본 언어인 오브젝티브C와 코코아 프레임워크에 쉽게 적응하는 데 목적을 둔다. 또한 오브젝티브C의 모든 기본적인 내용뿐만 아니라 인트로스펙션, 네트워크, 멀티스레드, 메모리 관리 등 실전 개발에 필요한 각종 프로그래밍 기법과 고급 기능들을 설명하며, 각종 디자인 패턴을 적용하는 예를 통해 이미 알고 있는 설계 사상을 그대로 활용하는 방법을 알려준다. 아이폰, 아이패드, 맥 애플리케이션 개발을 꿈꾸는 모든 자바 개발자는 이 책을 통해 손쉽게 언어의 벽을 넘어 본격적으로 자신만의 앱 개발에 집중할 수 있다.
[ 소개 ]
우리 모두는 자바를 사랑한다. 그러나 그에 못지 않게 최근의 맥 OS X과 iOS에서의 개발은 굉장히 멋지며, 자바 이후로 가장 흥분되는 새로운 환경이다. 오브젝티브C를 배우지 않아도 된다면 좋겠지만 모르고 넘어갈 수는 없는 문제다. 하지만 여러분이 뼛속까지 자바쟁이라면 이미 오브젝티브C에 대해 생각보다는 더 많이 알고 있는 셈이다. 자바와 오브젝티브C, 이 두 언어는 비슷한 점이 많기에 여러분의 맥과 아이폰 개발 생산성을 빠르게 향상시켜주려고 이 책을 집필하기로 마음먹었다.
자바와 오브젝티브C는 둘 다 객체지향 언어이며, 상속 모델, 문자열 클래스, 가비지 컬렉션, 직렬화, 스레드, 인트로스펙션, 통신 등에 매우 유사한 방법을 사용한다. 또한 모델 뷰 컨트롤러(MVC) 같은 입증된 디자인 패턴을 사용할 수 있다. 이런 사항들은 이 책을 보기 전에도 이미 여러분이 어느 정도 알고 있는 개념이다!
이 책은 오브젝티브C를 빠르게 이해하고 숙달하기 위해 이미 알고 있는 자바 지식을 잘 활용하는 방법을 보여준다. 가장 중요한 점은, 이 책이 오브젝티브C만의 독특한 기능을 이용하고 설계에 통합시킬 수 있는 방법을 보여준다는 점이다. 분명히 좀 더 쉬운 길이 있는데도 밑바닥부터 시작함으로써, 애써 익혀둔 자바 지식을 낭비하지 말기 바란다. 자바 지식을 잘 활용해 오브젝티브C의 학습 곡선을 뛰어넘어 여러분 스스로를 최고로 만들기 바란다. 여러분이 기대하는 수준 이상으로 맥 OS X과 아이폰 애플리케이션을 빨리 작성할 수 있게 될 것이다.
[ 이 책에서 다루는 내용 ]
● 익숙한 자바 프로그래밍 기술을 활용해 맥과 아이폰 애플리케이션의 고유 언어인 오브젝티브C를 배운다.
● 맥과 아이폰의 숙련된 개발자가 꼭 알아야 할 코코아와 엑스코드 등 애플의 개발 환경을 습득한다.
● 예제를 통해 공부하고 추후 참조와 심화 학습에 이용한다. 모든 내용은 편리하게 구성돼 있으며, 디자인 패턴에 따라 각 기술을 참조할 수 있다.
[ 이 책의 대상 독자 ]
이 책은 가능한 한 빠른 시간 안에 오브젝티브C를 배우거나 탐구하려는 모든 자바 개발자를 위한 책이다.
[ 이 책의 구성 ]
이 책은 크게 오브젝티브C 언어, 실전 기술, 디자인 패턴, 고급 오브젝티브C라는 네 부분으로 구성했다.
1부에서는 오브젝티브C 언어 자체의 기초를 공부한다. 오브젝티브C가 자바와 얼마나 비슷하거나 다른지를 설명하며, 언어의 문법, 클래스 선언, 상속 등의 자세한 내용을 알아본다.
2부에서는 가비지 컬렉션, 파일 시스템, 인트로스펙션 등과 같은 특정 기술들을 알아본다. 각 장의 예제에서는 자바 코드와 동일한 오브젝티브C 코드를 나란히 보여준다. 각 표에서는 친숙한 자바 클래스와, 그와 동일한 역할을 하는 코코아 클래스를 함께 보여준다. 그 다음에는 주로 오브젝티브C에서만 가능한 고급 주제들을 다룬다.
3부는 디자인 패턴에 대한 내용으로 구성된다. 자바 개발자는 팩토리 패턴이나 모델 뷰 컨트롤러 패턴 등과 같은 중요한 여러 디자인 패턴을 사용한다. 각 장에서는 각 패턴을 오브젝티브C에서 구현하는 방법을 설명하며, 종종 놀랄만한 내용들이 소개될 것이다.
마지막 4부에서는 메모리 관리, 오브젝티브C와 C의 혼합, 오브젝티브C 런타임 환경 같은 오브젝티브C의 고급 주제들을 다룬다.
1부는 빠짐없이 읽기 바란다. 2부와 3부는 순서대로 읽어가도 좋고, 아니면 일단 건너뛰었다가 필요하면 나중에 다시 참고하는 것도 좋다. 4부의 고급 주제들은 아이폰의 메모리 관리를 사용하는 방법 등의 특정 상황에 대한 해법을 제시하므로 필요할 때 읽으면 된다. 각 장은 대부분 기초에서 시작해 점점 특별한 내용으로 진행되므로, 일단 원하는 것을 배웠다면 다음 장으로 넘어가도 된다.
[ 소개 ]
우리 모두는 자바를 사랑한다. 그러나 그에 못지 않게 최근의 맥 OS X과 iOS에서의 개발은 굉장히 멋지며, 자바 이후로 가장 흥분되는 새로운 환경이다. 오브젝티브C를 배우지 않아도 된다면 좋겠지만 모르고 넘어갈 수는 없는 문제다. 하지만 여러분이 뼛속까지 자바쟁이라면 이미 오브젝티브C에 대해 생각보다는 더 많이 알고 있는 셈이다. 자바와 오브젝티브C, 이 두 언어는 비슷한 점이 많기에 여러분의 맥과 아이폰 개발 생산성을 빠르게 향상시켜주려고 이 책을 집필하기로 마음먹었다.
자바와 오브젝티브C는 둘 다 객체지향 언어이며, 상속 모델, 문자열 클래스, 가비지 컬렉션, 직렬화, 스레드, 인트로스펙션, 통신 등에 매우 유사한 방법을 사용한다. 또한 모델 뷰 컨트롤러(MVC) 같은 입증된 디자인 패턴을 사용할 수 있다. 이런 사항들은 이 책을 보기 전에도 이미 여러분이 어느 정도 알고 있는 개념이다!
이 책은 오브젝티브C를 빠르게 이해하고 숙달하기 위해 이미 알고 있는 자바 지식을 잘 활용하는 방법을 보여준다. 가장 중요한 점은, 이 책이 오브젝티브C만의 독특한 기능을 이용하고 설계에 통합시킬 수 있는 방법을 보여준다는 점이다. 분명히 좀 더 쉬운 길이 있는데도 밑바닥부터 시작함으로써, 애써 익혀둔 자바 지식을 낭비하지 말기 바란다. 자바 지식을 잘 활용해 오브젝티브C의 학습 곡선을 뛰어넘어 여러분 스스로를 최고로 만들기 바란다. 여러분이 기대하는 수준 이상으로 맥 OS X과 아이폰 애플리케이션을 빨리 작성할 수 있게 될 것이다.
[ 이 책에서 다루는 내용 ]
● 익숙한 자바 프로그래밍 기술을 활용해 맥과 아이폰 애플리케이션의 고유 언어인 오브젝티브C를 배운다.
● 맥과 아이폰의 숙련된 개발자가 꼭 알아야 할 코코아와 엑스코드 등 애플의 개발 환경을 습득한다.
● 예제를 통해 공부하고 추후 참조와 심화 학습에 이용한다. 모든 내용은 편리하게 구성돼 있으며, 디자인 패턴에 따라 각 기술을 참조할 수 있다.
[ 이 책의 대상 독자 ]
이 책은 가능한 한 빠른 시간 안에 오브젝티브C를 배우거나 탐구하려는 모든 자바 개발자를 위한 책이다.
[ 이 책의 구성 ]
이 책은 크게 오브젝티브C 언어, 실전 기술, 디자인 패턴, 고급 오브젝티브C라는 네 부분으로 구성했다.
1부에서는 오브젝티브C 언어 자체의 기초를 공부한다. 오브젝티브C가 자바와 얼마나 비슷하거나 다른지를 설명하며, 언어의 문법, 클래스 선언, 상속 등의 자세한 내용을 알아본다.
2부에서는 가비지 컬렉션, 파일 시스템, 인트로스펙션 등과 같은 특정 기술들을 알아본다. 각 장의 예제에서는 자바 코드와 동일한 오브젝티브C 코드를 나란히 보여준다. 각 표에서는 친숙한 자바 클래스와, 그와 동일한 역할을 하는 코코아 클래스를 함께 보여준다. 그 다음에는 주로 오브젝티브C에서만 가능한 고급 주제들을 다룬다.
3부는 디자인 패턴에 대한 내용으로 구성된다. 자바 개발자는 팩토리 패턴이나 모델 뷰 컨트롤러 패턴 등과 같은 중요한 여러 디자인 패턴을 사용한다. 각 장에서는 각 패턴을 오브젝티브C에서 구현하는 방법을 설명하며, 종종 놀랄만한 내용들이 소개될 것이다.
마지막 4부에서는 메모리 관리, 오브젝티브C와 C의 혼합, 오브젝티브C 런타임 환경 같은 오브젝티브C의 고급 주제들을 다룬다.
1부는 빠짐없이 읽기 바란다. 2부와 3부는 순서대로 읽어가도 좋고, 아니면 일단 건너뛰었다가 필요하면 나중에 다시 참고하는 것도 좋다. 4부의 고급 주제들은 아이폰의 메모리 관리를 사용하는 방법 등의 특정 상황에 대한 해법을 제시하므로 필요할 때 읽으면 된다. 각 장은 대부분 기초에서 시작해 점점 특별한 내용으로 진행되므로, 일단 원하는 것을 배웠다면 다음 장으로 넘어가도 된다.
목차
목차
- 1부 언어
- 1장 개요
- 오브젝티브C란
- 역사
- 현대적인 객체지향 언어
- 최고의 컴파일러
- 성능
- 동적인 실행
- 개발자 생산성
- 새로운 언어 학습
- 용어와 문화적 충격
- 어느 쪽이 더 좋은가?
- 정리
- 오브젝티브C란
- 2장 자바와 C 언어의 주요 차이점
- 기본 자료형
- 상수
- typedef
- 포인터
- 구조체
- 객체 참조
- 배열
- static
- 함수
- extern
- 전처리기
- #include와 #import
- #define
- #if
- 자동 변수 초기화
- 레이블: break, continue, goto
- 정리
- 3장 오브젝티브C
- 오브젝티브C 클래스 정의
- 객체 포인터
- 메시지 전송
- 메소드 이름 지정
- 파라미터와 반환 자료형
- 메소드 셀렉터
- 인스턴스 변수
- isa
- 프로퍼티
- 프로퍼티 속성
- 프로퍼티 재정의
- 프로퍼티 접근
- 범위
- 클래스 이름 범위
- 인스턴스 변수 범위
- 메소드 범위
- @class 명령
- self와 super
- 클래스 메소드
- 객체 인스턴스 생성
- init 메소드 작성
- 초기화 메소드 연결
- 지정 초기화 메소드
- 간편 생성자 메소드
- 소멸자
- 오브젝티브C에서 제공하지 않는 개념
- 4장 엑스코드 프로젝트
- 프로젝트 다운로드
- 프로젝트 생성
- 시작하기
- 애플리케이션 설계
- 사용자 인터페이스 설계
- 컨트롤러 추가
- 객체 바인딩
- 배열 컨트롤러 추가
- 비즈니스 로직
- 애플리케이션 디버깅
- 샌드박스 애플리케이션 작성
- 정리
- 5장 프로토콜과 카테고리
- 프로토콜
- 비공식 프로토콜
- 공식 프로토콜과 비공식 프로토콜의 혼용
- 카테고리
- 카테고리를 활용한 구성
- 메소드 숨기기
- 외부 클래스에 기능 추가
- 익스텐션
- 정리
- 6장 메시지 전송
- 메시지 컴파일
- 선언하지 않은 메소드
- 모호한 메소드
- 메소드 강제 호출
- 메소드 전송 코드 직접 작성
- 메시지 직접 전송
- 지연 메시지
- 객체지향적 메소드 호출
- 메소드 직접 호출
- 가변 인자
- 구현하지 않은 메소드의 호출
- 정리
- 메시지 컴파일
- 7장 nil의 이해
- nil에 메시지 전달
- nil 객체의 반환 값
- nil을 염두에 둔 설계
- 프로퍼티 접근자
- 부재중 동작
- 없음의 일관성
- 공짜는 없다
- 정리
- 2부 실전 기술
- 8장 문자열과 기본 자료형
- 기본 자료형의 래핑
- 스칼라 자료형 변환
- 문자열을 기본 자료형으로 변환
- 배열의 래핑
- 임의 값의 래핑
- nil의 래핑
- 문자열
- 객체를 문자열로 변환
- C 문자열
- 문자열 포매팅
- NSFormatter
- NSNumberFormatter
- NSDateFormatter
- 정리
- 기본 자료형의 래핑
- 9장 가비지 컬렉션
- 가비지 컬렉션 활성화
- 가비지 컬렉션 대응 코딩
- finalize 메소드 작성
- 약한 참조 활용
- 강한 참조 활용
- 가비지 컬렉션 요청
- 가비지 컬렉션과 포인터
- 쓰기 배리어
- 수집 가능한 메모리 할당
- 가비지 컬렉션의 주의 사항
- 피해야 할 디자인 패턴
- 디버깅
- 정리
- 10장 인트로스펙션
- 메소드 테스트
- 클래스 멤버십 테스트
- 키 밸류 코딩
- 키 밸류 코딩의 사용
- KVC 호환 클래스 설계
- 커스텀 키 밸류
- 클래스 조사
- 프로토콜 조사
- 메소드 조사
- 프로퍼티 조사
- 인스턴스 변수 조사
- 정리
- 11장 파일
- 파일 시스템 API
- 파일 시스템 항목 식별
- 파일명과 경로명
- 작업 디렉토리
- 파일 URL
- 디렉토리 생성과 삭제
- 특별한 디렉토리 찾기
- 사용자의 파일 요청
- 심볼릭 링크, 하드 링크, 별칭
- 디렉토리 내용으로 작업
- 파일 속성
- 고급 파일 메소드
- NSWorkspace
- 임의 파일 접근
- NSFileManager 위임
- 기타 API
- 정리
- 12장 직렬화
- 아카이빙
- 아카이브 유형
- 아카이브 코더
- 아카이브와 문서
- 클래스에 키 아카이브 기능 추가
- 클래스에 연속 아카이브 기능 추가
- 키 아카이브와 연속 아카이브 모두 지원
- 아카이브 이모저모
- 오브젝티브C 직렬화
- 프로퍼티 리스트
- XML
- 객체 복사
- 정리
- 아카이빙
- 13장 통신
- 단일 프로세스 내의 통신
- 다른 프로세스와의 통신
- 저수준 통신
- 고수준 통신
- 네트워킹
- 네트워크 서비스
- URL 로딩
- 정리
- 14장 예외 처리
- 예외의 사용
- 자바의 예외 처리와 다른 점
- 잡기나 지정하기가 없음
- 어떤 객체든 던질 수 있음
- 예외 다시 던지기
- 예외 처리 순서
- 예외 체인
- 호출 스택
- 성능
- 잡을 수 없는 예외
- 레거시 예외
- 어서션
- 예외의 대안
- 단순 오류
- POSIX 오류 코드
- 코어 파운데이션 오류 코드
- 코코아 오류
- 오류와 예외의 혼합
- 정리
- 15장 스레드
- 스레드 API
- 스레드의 시작
- 스레드 관리
- 스레드 잠재우기
- 스레드 프로퍼티
- 스레드 특정 값
- 우선순위
- 스택 크기
- 이름
- 스레드의 종료
- 실행 루프
- 실행 루프의 시작
- 실행 루프 모드
- 실행 루프의 중지
- 실행 루프 커스터마이징
- 스레드 알림
- 스레드 동기화
- @synchronize 지시어
- 상호배제 세마포어 객체
- 스핀 락
- 작업 객체
- 타이머
- 정리
- 3부 프로그래밍 패턴
- 16장 컬렉션 패턴
- 불변 컬렉션
- 순서 있는 컬렉션
- 공통적인 메소드
- NSArray, NSMutableArray
- NSPointerArray
- 사전 컬렉션
- 공통적인 메소드
- NSDictionary, NSMutableDictionary
- NSMapTable
- Set 컬렉션
- 공통적인 메소드
- NSSet, NSMutableSet
- NSCountedSet
- NSIndexSet
- NSHashTable
- 컴포지트 패턴 507
- 컬렉션 동등성 규약
- 컬렉션 비교
- 이터레이터 패턴
- 고속 열거
- 열거자
- 컬렉션 객체 접근
- 열거에 대한 추가 지원
- 컬렉션 정렬
- 오브젝티브C 메시지를 사용하는 정렬
- C 함수를 사용하는 정렬
- 정렬 설명자
- 컬렉션 필터링
- 컬렉션 동시성
- 컬렉션 복사본 열거
- 컬렉션 변경 유예
- 스레드 안전성
- 가비지 컬렉션과 약한 컬렉션
- 정리
- 17장 위임 패턴
- 위임 패턴의 이해
- 위임 객체 사용
- 위임 메소드
- 위임 프로토콜
- 위임 패턴 적용
- 정리
- 18장 공급자/구독자 패턴
- 알림
- 알림 센터
- 동기식 알림 게시
- 차별화된 관찰자
- 관찰자 제거
- 알림 큐
- 알림 큐잉
- 알림 병합
- 알림 꺼내기
- 분산 알림
- 분산 알림 센터
- 프로퍼티 리스트 값
- 비동기식 알림 통지
- 분산 알림 센터 중단
- 정리
- 19장 관찰자 패턴
- 키 밸류 관찰
- KVO 등록
- 키 밸류 변경 알림 처리
- 관찰자 탈퇴
- KVO 호환 클래스
- KVO 알림 수동 발송
- 프로퍼티 의존성
- KVO 재정의
- KVO 최적화
- 정리
- 20장 MVC 패턴
- MVC의 이해
- MVC의 변형
- MVC의 이점
- 바인딩
- 인터페이스 빌더
- NIB 문서
- NIB 문서 창
- 객체 프로퍼티
- 위치보유자 객체
- 연결
- 소유자 객체
- 커스텀 객체
- 객체의 인스턴스화
- NIB 객체 초기화
- 뷰
- 뷰의 기하학
- 커스텀 뷰
- 문서 모델
- 이벤트와 응답자
- 동적 애플리케이션
- 이벤트
- 이벤트 객체
- 키 이벤트
- 마우스 이벤트
- 응답자 체인
- 데이터 모델
- 레거시 테이블과 트리 모델
- 컬렉션 컨트롤러
- 코어 데이터
- 커스텀 데이터 모델 객체
- 컨트롤러
- 커스텀 컨트롤러
- NSController
- 틱택토에 관해
- Info.plist
- 되돌리기
- 자원
- 지역화된 자원
- 정리
- MVC의 이해
- 21장 지연 초기화 패턴
- 패턴의 구현
- 전역 변수의 지연 초기화
- +initialize 클래스 메소드
- 정리
- 22장 팩토리 패턴
- URL 팩토리
- 행렬 클래스
- 자바 Matrix 팩토리
- 오브젝티브C Matrix 클러스터
- 정리
- 23장 싱글톤 패턴
- 싱글톤 구현
- 지연 싱글톤
- 싱글톤 팩토리
- 정리
- 4부 고급 오브젝티브C
- 24장 메모리 관리
- C 메모리 할당
- 오브젝티브C 참조 카운팅
- 오토릴리즈 풀
- 오토릴리즈 풀의 수명
- 반환된 참조
- 오토릴리즈된 객체
- 메모리 관리 패턴
- 새로운 객체 패턴
- 오토릴리즈된 객체 패턴
- 오토릴리즈된 객체의 반환
- 세터 패턴
- init 패턴
- dealloc 패턴
- 암묵적으로 보유된 객체
- 메모리 관리 환경의 문제
- 과다 보유되거나 덜 반환된 객체
- 과다 반환되거나 덜 보유된 객체
- 조기 반환된 객체
- 순환 참조
- 오토릴리즈 풀 생성
- 메모리 관리와 가비지 컬렉션의 혼합
- 정리
- 25장 C와 오브젝티브C의 혼용
- 오브젝티브C에서 C 사용
- 오브젝티브C에서 C 함수 호출
- C에서 오브젝티브C 객체 사용
- 코어 파운데이션
- 무료 브릿지
- C 메모리 관리
- 정리
- 오브젝티브C에서 C 사용
- 26장 런타임
- 프로세스
- 환경
- 커맨드라인 인자
- 프로세스 속성
- 버전
- 패키지와 번들
- 프레임워크
- 사용자 기본값
- isa 스위즐링
- 64비트 프로그래밍
- 정리
- 프로세스
도서 오류 신고
정오표
[ p489 -[NSSet filteredSetUsingPredicate:] 행 ]
se을 → set을
se을 → set을