Top

스위프트와 프로토콜지향 프로그래밍 [빠르고 강력한 애플리케이션 구현]

  • 원서명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장까지의 내용을 모두 종합해 구성했다.

저자/역자 소개

지은이의 말

스위프트 설계의 진수는 프로토콜지향 프로그래밍이라는 매우 강력한 아이디어에 있다. 프로토콜지향 프로그래밍은 더 나은 코드 유지, 개발자의 생산성 증대, 뛰어난 애플리케이션 성능을 비롯한 많은 장점이 있다. 이 책은 작성한 코드를 향상시킬 수 있게 프로토콜지향 프로그래밍 패러다임에 담긴 아이디어를 적용하는 방법을 알려준다.
스위프트의 프로토콜지향 프로그래밍 세계를 소개하고, 실제 예제와 함께 이 새로운 프로그래밍 패러다임에 담긴 아이디어를 보여준다. 뿐만 아니라 프로토콜지향 프로그래밍의 개념을 학습시킴으로써 프로토콜 확장을 사용해 코드의 복잡성을 줄이는 방법을 보여준다. 간단한 프로토콜을 만드는 것을 시작으로, 프로토콜을 확장하는 방법은 물론 프로토콜에 행위를 지정하는 방법 역시 배울 수 있다.
이 책을 마치고 나면 실제 애플리케이션을 개발하는 데 프로토콜지향 프로그래밍의 능력을 활용할 수 있을 것이다.

지은이 소개

존 호프만(Jon Hoffman)

정보통신 기술 분야에서 20년이 넘는 경력을 보유하고 있다. 20년이 넘도록 시스템 관리, 네트워크 관리, 네트워크 보안, 애플리케이션 개발과 설계 분야에서 근무해 왔다. 현재는 신테크 시스템즈(Syn-Tech Systems)에서 시니어 소프트웨어 엔지니어로 근무 중이다.
2008년부터 iOS 플랫폼으로 다양한 제품을 개발해 왔다. 이 중에서 몇 가지는 앱스토어에 등록된 앱이고, 서드파티와 여러 엔터프라이즈 애플리케이션도 포함돼 있다.
2014년 1월에 팩트출판사에서 첫 번째 저서인 『iOS and OS X Network Programming Cookbook』을 출간했다.
정보통신 기술 분야에서의 도전이야말로 삶의 원동력이며, 이러한 도전을 이겨내는 것을 최고의 기쁨으로 여기고 있다. 다른 취미로는 야구 경기 관람(힘내라 삭스)과 농구 경기 관람(힘내라 셀틱)이 있다. 또한 태권도를 진정으로 즐기며, 2014년 초에는 큰 딸인 케일리(Kailey)와 함께 검은 띠를 따기도 했다. 2014년 겨울에는 아내인 킴(Kim)이 검은 띠를 땄으며, 최근에는 막내딸이 검은 띠를 따려고 노력하고 있다.

옮긴이의 말

스위프트는 객체지향 프로그래밍을 지원하는 언어다. 동시에 객체지향 프로그래밍이 가진 문제점을 해결하기 위해 여러 기능을 제공하고 있다. 그중 가장 주목받는 것이 바로 프로토콜지향 프로그래밍(Protocol Oriented Programming)이다. 특히 애플이 WWDC 15에서 스위프트가 프로토콜지향 프로그래밍을 지원하는 언어라고 공식적으로 발표한 이후, 프로토콜지향 프로그래밍에 대한 관심은 계속해서 높아지고 있다. 프로토콜지향 프로그래밍은 스위프트 언어의 근간을 이룬다고 볼 수 있다. 수많은 클래스로 이루어졌던 오브젝티브C와는 달리 스위프트에서는 구조체와 프로토콜이 클래스를 대신하며, 이를 위해 애플은 구조체와 프로토콜에 많은 기능을 부여했다. 스위프트를 잘 활용하려면 기존 객체지향 관점이 아닌 새로운 관점에서 스위프트를 바라봐야 한다.
이 책은 스위프트를 더욱더 잘 사용하고 싶은 개발자를 위한 책으로, 처음부터 객체지향 프로그래밍과 프로토콜지향 프로그래밍의 차이점을 살펴보면서 프로토콜지향 프로그래밍이 가진 강점을 보여준다. 또한 스위프트 2에서 추가된 새로운 에러 처리 패턴과 프로토콜 확장(Protocol Extension)을 통해 스위프트에 더해진 강력한 기능들도 함께 소개한다. 그리고 디자인 패턴과 사례연구를 통해 실무에서 프로토콜지향 프로그래밍을 어떻게 적용할 수 있는지 상세히 알려준다.
애플은 WWDC 16에서 다시 한 번 스위프트에서 프로토콜지향 프로그래밍의 중요성을 강조했다. 값 타입(Value Type)과 프로토콜, 구조체를 기반으로 한 프로그래밍은 기존 객체지향 프로그래밍에 익숙한 개발자에게는 다소 낯설지도 모른다. 이 책은 이러한 독자들이 새로운 프로그래밍 패러다임을 익히는 데 도움이 될 것이다.

옮긴이 소개

강경구

안드로이드와 iOS 모바일 애플리케이션 개발을 하고 있으며, 새로운 기술이 나올 때마다 프로젝트에 어떻게 적용할 수 있을까 고민한다. 프로그래밍 언어를 배우는 것을 좋아하며, 다른 사람과 지식을 공유하고 이야기하는 것을 즐긴다. 최근에는 Go와 스위프트를 관심 있게 살펴보고 있다.

목차

목차
  • 1. 객체지향 프로그래밍과 프로토콜지향 프로그래밍
    • 객체지향 프로그래밍 언어로서의 스위프트
    • 프로토콜지향 프로그래밍 언어로서의 스위프트
    • 프로토콜지향 프로그래밍과 객체지향 프로그래밍 요약
    • 객체지향 프로그래밍 대 프로토콜지향 프로그래밍
      • 프로토콜과 프로토콜 확장 대 슈퍼클래스
      • 음료 타입 구현
      • 값 타입 대 참조 타입
    • 승자는…
    • 요약

  • 2. 타입 선택
    • 클래스
    • 구조체
    • 열거형
    • 튜플
    • 프로토콜
    • 값 타입 대 참조 타입
    • 재귀적 데이터 타입(참조 타입 전용)
    • 상속(참조 타입 전용)
    • 스위프트 내장 데이터 타입과 자료 구조
    • 요약

  • 3. 에러 처리
    • guard문 사용
    • 에러 처리
    • 반환 값을 사용한 에러 처리
    • NSError를 사용한 에러 처리
    • 스위프트 2에서 에러 처리
      • 에러 표시
      • 에러 던지기
      • 에러 잡기
    • 에러 처리를 사용하는 경우
    • 요약

  • 4. 프로토콜의 모든 것
    • 프로토콜 문법
      • 프로토콜 정의
      • 프로퍼티 요구 사항
      • 메소드 요구 사항
      • 선택적 요구 사항
      • 프로토콜 상속
    • 프로토콜 컴포지션
    • 프로토콜을 타입으로 사용
    • 프로토콜과 다형성
    • 프로토콜과 타입 캐스팅
    • 프로토콜과 연관 타입
    • 델리게이션
    • 프로토콜을 사용한 설계와 개발
    • 요약

  • 5. 타입 확장
    • 확장 정의
    • 프로토콜 확장
    • 문장 유효성
    • 요약

  • 6. 스위프트에서 디자인 패턴 적용
    • 디자인 패턴이란?
    • 생성 패턴
      • 싱글턴 패턴
        • 문제의 이해
        • 해결책의 이해
        • 싱글턴 패턴 구현
      • 빌더 디자인 패턴
        • 문제의 이해
        • 해결책의 이해
        • 빌더 패턴 구현
      • 팩토리 메소드 패턴
        • 문제의 이해
        • 해결책의 이해
        • 팩토리 메소드 패턴 구현
    • 구조 디자인 패턴
      • 브리지 패턴
        • 문제의 이해
        • 해결책의 이해
        • 브리지 패턴 구현
      • 파사드 패턴
        • 문제의 이해
        • 해결책의 이해
        • 파사드 패턴 구현
      • 프락시 디자인 패턴
        • 문제의 이해
        • 해결책의 이해
        • 프락시 패턴 구현
    • 행위 디자인 패턴
      • 커맨드 디자인 패턴
        • 문제의 이해
        • 해결책의 이해
        • 커맨드 패턴 구현
      • 스트래티지 패턴
        • 문제의 이해
        • 해결책의 이해
        • 스트래티지 패턴 구현
      • 옵저버 패턴
        • 문제의 이해
        • 해결책의 이해
        • 옵저버 패턴 구현
    • 요약

  • 7. 사례연구
    • 로깅 서비스
      • 요구 사항
      • 설계
      • 결론
    • SQLite.swift를 이용한 데이터 접근 계층
      • 요구 사항
      • 설계
      • 연결 계층
      • 데이터 모델 계층
      • 데이터 헬퍼 계층
      • 결론
    • 계산기 애플리케이션
      • 요구 사항
      • 설계
      • 결론
    • 요약

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안