[확장성 있는 iOS 프로그래밍을 위한]
스위프트 4 프로토콜지향 프로그래밍 3/e
- 원서명Swift 4 Protocol-Oriented Programming - Third Edition: Bring predictability, performance, and productivity to your Swift applications (ISBN 9781788470032)
- 지은이존 호프만(Jon Hoffman)
- 옮긴이강경구
- ISBN : 9791161752280
- 25,000원
- 2018년 10월 31일 펴냄
- 페이퍼백 | 292쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 모바일 프로그래밍
책 소개
요약
스위프트가 해마다 발전하면서 프로토콜지향 프로그래밍 역시 계속해서 변화하고 있다. 스위프트 2에서 처음으로 언급된 프로토콜지향 프로그래밍은 스위프트가 3, 4로 업데이트 되면서 클래스보다는 구조체나 열거형, 프로토콜을 더 활용하는 방식으로 진화하고 있다. 이 책에서는 스위프트 4를 기반으로 iOS 프로그래밍을 함에 있어 더욱 견고하고 확장성 있는 구조를 위한 여러 가지 노하우를 설명한다.
이 책에서 다루는 내용
■ 객체지향 프로그래밍과 프로토콜지향 프로그래밍간의 차이점
■ 스위프트에서 제공하는 서로 다른 타입 비교 및 위험 사항
■ 제네릭과 제네릭 프로그래밍에 대한 집중 탐구
■ 커스텀 타입에서 Copy-On-Write를 구현하는 방법
■ 프로토콜지향 방식으로 여러 디자인 패턴 구현
■ 프로토콜을 우선으로 한 애플리케이션 설계 및 타입 구현
이 책의 대상 독자
적어도 스위프트 프로그래밍 언어에 대한 기본 지식이 있고 프로토콜지향 프로그래밍이 무엇인지를 이해하고자 하는 개발자를 대상으로 한다. 또한 프로그래밍 패러다임의 다른 요소를 완전히 이해하고자 하는 개발자를 위해 집필했다. 모든 장에서는 해당 주제를 완전히 이해할 수 있도록 이를 적절히 구현하는 방법을 보여주는 예제 코드를 작성했으며, 이는 내용을 뒷받침하기 때문에 코드를 보고 작성하는 개발자에게도 안성맞춤이다.
이 책의 구성
1장, ‘프로토콜 시작’에서는 프로토콜이란 무엇이며, 스위프트 프로그래밍 언어에서 프로토콜이 어떻게 사용되는지를 살펴본다. 또한 매우 유연하면서도 재사용이 가능한 코드를 작성할 때 프로토콜을 어떻게 사용할 수 있는지도 살펴본다.
2장, ‘타입 선택’에서는 스위프트가 제공하는 여러 가지 타입(구조체, 클래스, 열거형, 튜플)에 관해 알아본다. 어떤 상황에서 다양한 타입을 사용하는지에 대한 예와 어떤 상황에서 사용하지 않는지에 대한 예도 살펴본다.
3장, ‘확장’에서는 확장과 프로토콜 확장이 어떻게 스위프트 프로그래밍 언어와 함께 사용되는지 살펴본다. 그리고 어떻게 확장이 프로토콜지향 프로그래밍과 사용될 수 있는지에 대한 예도 살펴본다.
4장, ‘제네릭’에서는 제네릭이 얼마나 강력한지를 보여준다. 애플은 제네릭이 스위프트의 가장 강력한 기능 중 하나라고 이야기해왔다. 따라서 매우 유연한 타입을 만들기 위해 제네릭을 사용하는 방법을 알아보며, 커스텀 타입을 위한 Copy-on-Write 기능을 구현하는 방법도 살펴본다.
5장, ‘객체지향 프로그래밍’에서는 객체지향 접근법을 사용해 비디오 게임의 캐릭터를 어떻게 개발할 수 있는지 알아본다. 프로토콜지향 프로그래밍에 담긴 개념의 진정한 진가를 알아보려면 프로토콜지향 프로그래밍이 해결하고자 하는 문제점을 이해해야만 한다.
6장, ‘프로토콜지향 프로그래밍’에서는 5장과 동일한 비디오 게임 캐릭터를 개발하는 대신, 설계 시에 프로토콜지향 접근법을 채용한다. 그런 다음 프로토콜지향 접근법이 제공하는 장점을 살펴보기 위해 객체지향 접근법과 프로토콜지향 접근법을 비교해본다.
7장, ‘스위프트에서 디자인 패턴 적용’에서는 프로토콜지향 프로그래밍을 사용해 몇 가지 디자인 패턴을 구현하는 것을 살펴본다. 각각의 디자인 패턴에 대해 디자인 패턴이 해결하고자 하는 문제점을 살펴보고 패턴을 구현하는 방법을 살펴본다.
8장, ‘사례 연구’에서는 두 가지 사례 연구를 살펴본다. 현업에서 프로토콜지향 프로그래밍을 사용하는 방법을 독자에게 보여주기 위해 1장부터 6장까지의 모든 내용을 종합해 구성했다.
목차
목차
- 1장. 프로토콜 시작
- 프로토콜 문법
- 프로토콜 정의
- 프로퍼티 요구 사항
- 메소드 요구 사항
- 선택 가능한 요구 사항
- 프로토콜 상속
- 프로토콜 컴포지션
- 프로토콜을 타입으로 사용
- 프로토콜과 다형성
- 프로토콜과 형 변환
- 연관 타입과 프로토콜
- 델리게이션
- 프로토콜을 사용해 설계
- 스위프트 표준 라이브러리의 프로토콜
- 요약
- 프로토콜 문법
- 2장. 타입 선택
- 클래스
- 구조체
- 접근 제어
- 열거형
- 튜플
- 프로토콜
- 값 타입과 참조 타입
- 참조 타입만을 위한 재귀적 데이터 타입
- 참조 타입만을 위한 상속
- 다이내믹 디스패치
- 스위프트 내장 타입
- Copy-on-write
- 요약
- 3장. 확장
- 확장 정의
- 프로토콜 확장
- 문장 유효성
- 스위프트 표준 라이브러리 확장
- Equatable 프로토콜 따르기
- 요약
- 4장. 제네릭
- 제네릭 함수
- 제네릭 타입 제약
- 제네릭 타입
- 연관 타입
- 제네릭 서브스크립트
- Copy-on-write
- 프로토콜지향 설계 방식에서의 제네릭
- 스위프트 표준 라이브러리와 제네릭
- 요약
- 5장. 객체지향 프로그래밍
- 객체지향 프로그래밍
- 샘플 코드를 위한 요구 사항
- 객체지향 프로그래밍 언어로서의 스위프트
- 객체지향 설계 방식의 문제점
- 요약
- 6장. 프로토콜지향 프로그래밍
- 샘플 코드를 위한 요구 사항
- 프로토콜지향 프로그래밍 언어로서의 스위프트
- 프로토콜지향 프로그래밍과 객체지향 프로그래밍 요약
- 객체지향 프로그래밍과 프로토콜지향 프로그래밍의 차이점
- 프로토콜, 프로토콜 확장과 슈퍼클래스 비교
- 이동수단 타입 구현
- 값 타입과 참조 타입 사용
- 승자는…
- 요약
- 7장. 스위프트에서 디자인 패턴 적용
- 디자인 패턴이란?
- 생성 패턴
- 싱글턴 패턴
- 빌더 디자인 패턴
- 팩토리 메소드 패턴
- 구조 디자인 패턴
- 브리지 패턴
- 퍼사드 패턴
- 프록시 디자인 패턴
- 행위 디자인 패턴
- 커맨드 디자인 패턴
- 스트래티지 패턴
- 옵저버 패턴
- 요약
- 8장. 사례 연구
- 로깅 서비스
- 요구 사항
- 설계
- 결론
- 데이터 접근 계층
- 요구 사항
- 설계
- 데이터 모델 계층
- 데이터 도우미 계층
- 브리지 계층
- 데이터 접근 계층 사용
- 결론
- 요약
- 로깅 서비스
도서 오류 신고
정오표
정오표
[p.140 : 2행]
var queue2 = queue2
->
var queue2 = queue1