스위프트와 프로토콜지향 프로그래밍 [빠르고 강력한 애플리케이션 구현]
- 원서명Protocol-Oriented Programming with Swift (ISBN 9781785882944)
- 지은이존 호프만(Jon Hoffman)
- 옮긴이강경구
- ISBN : 9788960779037
- 25,000원
- 2016년 08월 30일 펴냄 (절판)
- 페이퍼백 | 292쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/pop-swift)
요약
이 책은 스위프트를 더욱더 잘 사용하고 싶은 개발자를 위한 책이다. 책에서는 객체지향 프로그래밍과 프로토콜지향 프로그래밍의 차이점을 보여주면서 프로토콜지향 프로그래밍이 가진 강점을 설명하며, 스위프트 2에서 추가된 새로운 에러 처리 패턴과 프로토콜 확장(Protocol Extension)을 통해 스위프트에 더해진 강력한 기능들을 함께 소개한다. 또한, 디자인 패턴과 사례 연구를 통해 실무에서 프로토콜지향 프로그래밍을 어떻게 적용할 수 있는지에 대해 상세히 설명함으로써 실무에도 도움이 될 것이다.
이 책에서 다루는 내용
■ 객체지향 프로그래밍과 프로토콜지향 프로그래밍 간의 차이점
■ 참조 타입과 값 타입 간의 차이점 및 각 타입을 사용해야 하는 경우
■ 코드의 복잡성을 줄이는 데 튜플을 활용할 수 있는 방법
■ 프로토콜의 개념과 사용 방법
■ 유연한 코드를 작성하기 위해 프로토콜 확장을 구현하는 방법
■ 프로토콜지향적인 접근 방법으로 여러 디자인 패턴을 구현하는 방법
■ 프로토콜지향 프로그래밍을 사용해 실제 설계 문제를 해결하는 방법
이 책의 대상 독자
이 책은 적어도 스위프트 프로그래밍 언어의 기초 지식을 갖고 있으며 프로토콜지향 프로그래밍으로 실제 애플리케이션을 구현하거나 배우고자 하는 스위프트 개발자를 위한 책이다. 또한 프로토콜지향 프로그래밍을 이해하고자 하는 개발자나 프로그래밍 패러다임의 다른 요소를 완전히 이해하고자 하는 개발자들에게도 적합하다.
이 책의 구성
1장, ‘객체지향 프로그래밍과 프로토콜지향 프로그래밍’에서는 서로 다른 두 패러다임을 잘 이해할 수 있도록 객체지향 프로그래밍과 프로토콜지향 프로그래밍 간의 차이점을 보여준다. 1장의 마지막에서는 프로토콜지향 프로그래밍의 기본적인 이해와 프로토콜지향 프로그래밍이 제공하는 기본 기능에 대한 기초 지식을 습득한다.
2장, ‘타입 선택’에서는 스위프트가 제공하는 여러 타입(구조체, 클래스, 열거형, 튜플)을 살펴본다. 또한 여러 예제를 통해 언제 다양한 타입을 사용해야 하는지를 보여준다.
3장, ‘에러 처리’에서는 에러를 잡거나 알릴 수 있는 다양한 방법을 살펴본다. 기존 에러 핸들링 패턴뿐만 아니라 스위프트2의 새로운 기능인 do-try-catch 블록문도 다룬다.
4장, ‘프로토콜의 모든 것’에서는 말 그대로 프로토콜의 모든 것을 살펴본다. 프로토콜을 사용하는 것의 장점과 프로그램 설계 단계에서부터 프로토콜로 시작해야 하는 이유를 보여준다.
5장, ‘타입 확장’에서는 확장(extensions)을 자세히 다룬다. 구조체나 클래스 같은 스위프트의 기본 타입을 확장하는 방법과 프로토콜의 확장도 살펴보면서 이러한 것들이 왜 프로토콜지향 프로그래밍에서 중요한지를 살펴본다.
6장, ‘스위프트에서 디자인 패턴 적용’에서는 프로토콜지향 프로그래밍을 사용해 몇 가지의 디자인 패턴을 구현한다. 각각의 디자인 패턴에 대해 설계상의 문제점을 살펴보고, 이러한 문제점을 해결하고 패턴을 구현하는 방법을 살펴본다.
7장, ‘사례연구’에서는 3가지의 사례를 살펴본다. 이 장은 현업에서 프로토콜지향 프로그래밍을 디자인 패턴과 함께 사용하는 방법을 보여주기 위해 1장부터 6장까지의 내용을 모두 종합해 구성했다.
목차
목차
- 1. 객체지향 프로그래밍과 프로토콜지향 프로그래밍
- 객체지향 프로그래밍 언어로서의 스위프트
- 프로토콜지향 프로그래밍 언어로서의 스위프트
- 프로토콜지향 프로그래밍과 객체지향 프로그래밍 요약
- 객체지향 프로그래밍 대 프로토콜지향 프로그래밍
- 프로토콜과 프로토콜 확장 대 슈퍼클래스
- 음료 타입 구현
- 값 타입 대 참조 타입
- 승자는…
- 요약
- 2. 타입 선택
- 클래스
- 구조체
- 열거형
- 튜플
- 프로토콜
- 값 타입 대 참조 타입
- 재귀적 데이터 타입(참조 타입 전용)
- 상속(참조 타입 전용)
- 스위프트 내장 데이터 타입과 자료 구조
- 요약
- 3. 에러 처리
- guard문 사용
- 에러 처리
- 반환 값을 사용한 에러 처리
- NSError를 사용한 에러 처리
- 스위프트 2에서 에러 처리
- 에러 표시
- 에러 던지기
- 에러 잡기
- 에러 처리를 사용하는 경우
- 요약
- 4. 프로토콜의 모든 것
- 프로토콜 문법
- 프로토콜 정의
- 프로퍼티 요구 사항
- 메소드 요구 사항
- 선택적 요구 사항
- 프로토콜 상속
- 프로토콜 컴포지션
- 프로토콜을 타입으로 사용
- 프로토콜과 다형성
- 프로토콜과 타입 캐스팅
- 프로토콜과 연관 타입
- 델리게이션
- 프로토콜을 사용한 설계와 개발
- 요약
- 프로토콜 문법
- 5. 타입 확장
- 확장 정의
- 프로토콜 확장
- 문장 유효성
- 요약
- 6. 스위프트에서 디자인 패턴 적용
- 디자인 패턴이란?
- 생성 패턴
- 싱글턴 패턴
- 문제의 이해
- 해결책의 이해
- 싱글턴 패턴 구현
- 빌더 디자인 패턴
- 문제의 이해
- 해결책의 이해
- 빌더 패턴 구현
- 팩토리 메소드 패턴
- 문제의 이해
- 해결책의 이해
- 팩토리 메소드 패턴 구현
- 싱글턴 패턴
- 구조 디자인 패턴
- 브리지 패턴
- 문제의 이해
- 해결책의 이해
- 브리지 패턴 구현
- 파사드 패턴
- 문제의 이해
- 해결책의 이해
- 파사드 패턴 구현
- 프락시 디자인 패턴
- 문제의 이해
- 해결책의 이해
- 프락시 패턴 구현
- 브리지 패턴
- 행위 디자인 패턴
- 커맨드 디자인 패턴
- 문제의 이해
- 해결책의 이해
- 커맨드 패턴 구현
- 스트래티지 패턴
- 문제의 이해
- 해결책의 이해
- 스트래티지 패턴 구현
- 옵저버 패턴
- 문제의 이해
- 해결책의 이해
- 옵저버 패턴 구현
- 커맨드 디자인 패턴
- 요약
- 7. 사례연구
- 로깅 서비스
- 요구 사항
- 설계
- 결론
- SQLite.swift를 이용한 데이터 접근 계층
- 요구 사항
- 설계
- 연결 계층
- 데이터 모델 계층
- 데이터 헬퍼 계층
- 결론
- 계산기 애플리케이션
- 요구 사항
- 설계
- 결론
- 요약
- 로깅 서비스