스위프트 4: 프로토콜지향 프로그래밍 (확장성 있는 iOS 프로그래밍을 위한 | 3 판)

스위프트 4: 프로토콜지향 프로그래밍 (확장성 있는 iOS 프로그래밍을 위한 | 3 판)

$25.71
Description
스위프트가 해마다 발전하면서 프로토콜지향 프로그래밍 역시 계속해서 변화하고 있다. 스위프트 2에서 처음으로 언급된 프로토콜지향 프로그래밍은 스위프트가 3, 4로 업데이트 되면서 클래스보다는 구조체나 열거형, 프로토콜을 더 활용하는 방식으로 진화하고 있다. 이 책에서는 스위프트 4를 기반으로 iOS 프로그래밍을 함에 있어 더욱 견고하고 확장성 있는 구조를 위한 여러 가지 노하우를 설명한다.
저자

존호프만

존호프만(JonHoffman)
정보통신기술분야에서25년이넘는경력을쌓았다.20년이넘게시스템관리,네트워크관리,네트워크보안,애플리케이션개발과설계분야에서근무해왔다.현재신테크시스템즈(Syn-TechSystems)에서시니어소프트웨어엔지니어로근무중이다.
2008년부터iOS플랫폼으로다양한제품을개발했으며,그중몇가지는앱스토어에등록된앱이고,서드파티와여러엔터프라이즈애플리케이션도포함돼있다.또한안드로이드와윈도우플랫폼에대한모바일애플리케이션도개발해왔다.정보통신기술분야에서의도전이야말로삶의원동력이며,이러한도전을이겨내는것을최고의기쁨으로여긴다.
다른관심사로는가족과함께시간을보내거나로봇프로젝트와3D프린팅이있다.또한태권도를진정으로즐기며,2014년초에는큰딸인케일리(Kailey)와함께검은띠를따기도했다.2014년겨울에는아내인킴(Kim)이검은띠를땄으며,최근에는막내딸이검은띠를따려고노력하고있다.

목차

1장.프로토콜시작
프로토콜문법
프로토콜정의
프로퍼티요구사항
메소드요구사항
선택가능한요구사항
프로토콜상속
프로토콜컴포지션
프로토콜을타입으로사용
프로토콜과다형성
프로토콜과형변환
연관타입과프로토콜
델리게이션
프로토콜을사용해설계
스위프트표준라이브러리의프로토콜
요약

2장.타입선택
클래스
구조체
접근제어
열거형
튜플
프로토콜
값타입과참조타입
참조타입만을위한재귀적데이터타입
참조타입만을위한상속
다이내믹디스패치
스위프트내장타입
Copy-on-write
요약

3장.확장
확장정의
프로토콜확장
문장유효성
스위프트표준라이브러리확장
Equatable프로토콜따르기
요약

4장.제네릭
제네릭함수
제네릭타입제약
제네릭타입
연관타입
제네릭서브스크립트
Copy-on-write
프로토콜지향설계방식에서의제네릭
스위프트표준라이브러리와제네릭
요약

5장.객체지향프로그래밍
객체지향프로그래밍
샘플코드를위한요구사항
객체지향프로그래밍언어로서의스위프트
객체지향설계방식의문제점
요약

6장.프로토콜지향프로그래밍
샘플코드를위한요구사항
프로토콜지향프로그래밍언어로서의스위프트
프로토콜지향프로그래밍과객체지향프로그래밍요약
객체지향프로그래밍과프로토콜지향프로그래밍의차이점
프로토콜,프로토콜확장과슈퍼클래스비교
이동수단타입구현
값타입과참조타입사용
승자는…
요약

7장.스위프트에서디자인패턴적용
디자인패턴이란?
생성패턴
싱글턴패턴
빌더디자인패턴
팩토리메소드패턴
구조디자인패턴
브리지패턴
퍼사드패턴
프록시디자인패턴
행위디자인패턴
커맨드디자인패턴
스트래티지패턴
옵저버패턴
요약

8장.사례연구
로깅서비스
요구사항
설계
결론
데이터접근계층
요구사항
설계
데이터모델계층
데이터도우미계층
브리지계층
데이터접근계층사용
결론
요약

출판사 서평

★이책에서다루는내용★
■객체지향프로그래밍과프로토콜지향프로그래밍간의차이점
■스위프트에서제공하는서로다른타입비교및위험사항
■제네릭과제네릭프로그래밍에대한집중탐구
■커스텀타입에서Copy-On-Write를구현하는방법
■프로토콜지향방식으로여러디자인패턴구현
■프로토콜을우선으로한애플리케이션설계및타입구현

★이책의대상독자★
적어도스위프트프로그래밍언어에대한기본지식이있고프로토콜지향프로그래밍이무엇인지를이해하고자하는개발자를대상으로한다.또한프로그래밍패러다임의다른요소를완전히이해하고자하는개발자를위해집필했다.모든장에서는해당주제를완전히이해할수있도록이를적절히구현하는방법을보여주는예제코드를작성했으며,이는내용을뒷받침하기때문에코드를보고작성하는개발자에게도안성맞춤이다.

1장,‘프로토콜시작’에서는프로토콜이란무엇이며,스위프트프로그래밍언어에서프로토콜이어떻게사용되는지를살펴본다.또한매우유연하면서도재사용이가능한코드를작성할때프로토콜을어떻게사용할수있는지도살펴본다.
2장,‘타입선택’에서는스위프트가제공하는여러가지타입(구조체,클래스,열거형,튜플)에관해알아본다.어떤상황에서다양한타입을사용하는지에대한예와어떤상황에서사용하지않는지에대한예도살펴본다.
3장,‘확장’에서는확장과프로토콜확장이어떻게스위프트프로그래밍언어와함께사용되는지살펴본다.그리고어떻게확장이프로토콜지향프로그래밍과사용될수있는지에대한예도살펴본다.
4장,‘제네릭’에서는제네릭이얼마나강력한지를보여준다.애플은제네릭이스위프트의가장강력한기능중하나라고이야기해왔다.따라서매우유연한타입을만들기위해제네릭을사용하는방법을알아보며,커스텀타입을위한Copy-on-Write기능을구현하는방법도살펴본다.
5장,‘객체지향프로그래밍’에서는객체지향접근법을사용해비디오게임의캐릭터를어떻게개발할수있는지알아본다.프로토콜지향프로그래밍에담긴개념의진정한진가를알아보려면프로토콜지향프로그래밍이해결하고자하는문제점을이해해야만한다.
6장,‘프로토콜지향프로그래밍’에서는5장과동일한비디오게임캐릭터를개발하는대신,설계시에프로토콜지향접근법을채용한다.그런다음프로토콜지향접근법이제공하는장점을살펴보기위해객체지향접근법과프로토콜지향접근법을비교해본다.
7장,‘스위프트에서디자인패턴적용’에서는프로토콜지향프로그래밍을사용해몇가지디자인패턴을구현하는것을살펴본다.각각의디자인패턴에대해디자인패턴이해결하고자하는문제점을살펴보고패턴을구현하는방법을살펴본다.
8장,‘사례연구’에서는두가지사례연구를살펴본다.현업에서프로토콜지향프로그래밍을사용하는방법을독자에게보여주기위해1장부터6장까지의모든내용을종합해구성했다.

[역자의말]
스위프트는Mac과iOS앱개발에있어오브젝티브C를대체하는언어로빠르게자리잡았다.그와동시에사용자의니즈에빠르게대응해변화하고있으며,프로토콜지향프로그래밍패러다임역시이러한흐름에맞춰변화해왔다.특히제네릭이강화되면서프로토콜지향프로그래밍역시더욱유연해지고확장성있는패러다임으로발전하게됐다.3판에서는개선된스위프트의내용을반영해1판에서소개하지못했던제네릭이추가됐고예제역시상황에맞게개선됐다.
개발을하다보면객체지향프로그래밍만으로는해결하기어려운문제를종종마주치게된다.이책에서는프로토콜지향프로그래밍에대한내용을이야기하는것뿐만아니라,기존객체지향프로그래밍과어떠한차이가있는지,객체지향프로그래밍에서해결하기어려웠던문제를프로토콜지향프로그래밍에서는어떤방식으로해결했는지를설명한다.또한다양한예제를통해새로운패러다임을자연스럽게체득할수있게했다.