한빛출판네트워크

IT/모바일

스위프트 프로그래밍 2판

객체지향, 함수형, 프로토콜 지향 패러다임까지 한 번에!(Swift 4)

한빛미디어

집필서

절판

스위프트 프로그래밍 2판
좋아요: 43
  • 저자 : 야곰
  • 출간일 : 2017-10-01
  • 페이지 : 540쪽
  • ISBN : 9791162240052
  • 물류코드 :10005

합계 : 28,800

  • 스위프트 4에 맞춰 개정한 스위프트의 A to Z 

    스위프트 4의 핵심은 스위프트 3의 불편한 점을 개선해 ‘좀 더 편리하게 프로그래밍하자’입니다. 이를 위해 String 관련 편의성 증가, 여러 줄 리터럴 문법, 서브스크립트 문법 강화 등 언어 스펙을 변경했습니다. 다양한 예제를 접하면서 스위프트 4의 새로운 부분을 자연스럽게 익혀볼 수 있습니다.

     

    프로그래밍 패러다임을 친절하게 설명합니다.

    최근 주목받는 여러 프로그래밍 패러다임 중 스위프트에는 함수형 및 프로토콜 지향 프로그래밍의 개념이 포함되어 있습니다. 이 책은 두 패러다임에 맞춰 스위프트로 프로그래밍할 때 필요한 개념과 활용법을 자세하게 설명합니다. 스위프트 문법과 함께 프로그래밍 패러다임을 이해하는 데 큰 도움이 될 것입니다.

     

     

  • [저자] 야곰

    yagom’s blog(http://blog.yagom.net)를 운영하는 iOS 개발자. 2010년부터 iOS 관련 개발에 열정을 쏟고 있습니다. iOS, macOS 개발자 커뮤니티인 맥부기(http://cafe.naver.com/mcbugi) 에서 강좌를 연재했고, OSXDev(http://osxdev.org) 커뮤니티 활동도 합니다. 컴퓨터교육을 전공했으며 비전공자와 학생들에게 컴퓨터 지식을 더 쉽고 재미있게 알리는 데 관심이 많아 후배 프로그래머와 지식을 나누는 데도 힘을 쏟고 있습니다. 내일 걱정은 모레 하는 것이 좋다는 긍정적인 마음가짐을 빼면 시체라고 말하며, 스스로 개발자라고 생각하지 않는 것을 보면 괴짜임이 틀림없습니다. 무엇보다 여행과 요리를 좋아합니다.

    저서로는 『iOS 7 핵심 노트』, 『iOS 8 핵심 노트』, 『iOS 9 핵심 노트』, 『만들면서 배우는 Swift』, 『스위프트 프로그래밍』(이상 한빛미디어)이 있습니다. 

  • PART I 스위프트 기초

     

    CHAPTER 1 스위프트

    __1.1 스위프트의 역사

    __1.2 스위프트의 언어적 특성

    ____1.2.1 객체지향

    ____1.2.2 함수형

    ____1.2.3 프로토콜 지향

    __1.3 스위프트 실행 환경

    ____1.3.1 Xcode – 플레이그라운드

    ____1.3.2 REPL

    ____1.3.3 웹

    ____1.3.4 모바일

     

    CHAPTER 2 스위프트 처음 시작하기

    __2.1 기본 명명 규칙

    __2.2 콘솔 로그

    ____2.2.1 print() 함수

    ____2.2.2 문자열 보간법

    __2.3 주석

    ____2.3.1 주석 남기기

    ____2.3.2 마크업 문법을 활용한 문서화 주석

    __2.4 변수와 상수

    ____2.4.1 변수

    ____2.4.2 상수

     

    CHAPTER 3 데이터 타입 기본

    __3.1 Int와 UInt

    __3.2 Bool

    __3.3 Float과 Double

    __3.4 Character

    __3.5 String

    ____3.5.1 특수문자

    __3.6 Any, AnyObject와 nil

     

    CHAPTER 4 데이터 타입 고급

    __4.1 데이터 타입 안심

    ____4.1.1 데이터 타입 안심이란

    ____4.1.2 타입 추론

    __4.2 타입 별칭

    __4.3 튜플

    __4.4 컬렉션 타입

    ____4.4.1 배열

    ____4.4.2 딕셔너리

    ____4.4.3 세트

    __4.5 열거형

    ____4.5.1 기본 열거형

    ____4.5.2 원시 값

    ____4.5.3 연관 값

    ____4.5.4 순환 열거형

     

    CHAPTER 5 연산자

    __5.1 연산자의 종류

    ____5.1.1 할당 연산자

    ____5.1.2 산술 연산자

    ____5.1.3 비교 연산자

    ____5.1.4 삼항 조건 연산자

    ____5.1.5 범위 연산자

    ____5.1.6 부울 연산자

    ____5.1.7 비트 연산자

    ____5.1.8 복합 할당 연산자

    ____5.1.9 오버플로 연산자

    ____5.1.10 기타 연산자

    __5.2 연산자 우선순위와 결합방향

    __5.3 사용자정의 연산자

    ____5.3.1 전위 연산자 정의와 구현

    ____5.3.2 후위 연산자 정의와 구현

    ____5.3.3 중위 연산자 정의와 구현

     

    CHAPTER 6 흐름 제어

    __6.1 조건문

    ____6.1.1 if 구문

    ____6.1.2 switch 구문

    __6.2 반복문

    ____6.2.1 for-in 구문

    ____6.2.2 while 구문

    ____6.2.3 repeat-while 구문

    __6.3 구문 이름표

     

    CHAPTER 7 함수

    __7.1 함수와 메서드

    __7.2 함수의 정의와 호출

    ____7.2.1 기본적인 함수의 정의와 호출

    ____7.2.2 매개변수

    ____7.2.3 반환 타입

    ____7.2.4 데이터 타입으로서의 함수

    __7.3 중첩 함수

    __7.4 종료되지 않는 함수

    __7.5 반환 값을 무시할 수 있는 함수

     

    CHAPTER 8 옵셔널

    __8.1 옵셔널 사용

    __8.2 옵셔널 추출

    ____8.2.1 강제 추출

    ____8.2.2 옵셔널 바인딩

    ____8.2.3 암시적 추출 옵셔널

     

    PART II 객체지향 프로그래밍과 스위프트

     

    CHAPTER 9 구조체와 클래스

    __9.1 구조체

    ____9.1.1 구조체 정의

    ____9.1.2 구조체 인스턴스의 생성 및 초기화

    __9.2 클래스

    ____9.2.1 클래스 정의

    ____9.2.2 클래스 인스턴스의 생성과 초기화

    ____9.2.3 클래스 인스턴스의 소멸

    __9.3 구조체와 클래스의 차이

    ____9.3.1 값 타입과 참조 타입

    ____9.3.2 스위프트의 기본 데이터 타입은 모두 구조체

    __9.4 구조체와 클래스 선택해서 사용하기

     

    CHAPTER 10 프로퍼티와 메서드

    __10.1 프로퍼티

    ____10.1.1 저장 프로퍼티

    ____10.1.2 지연 저장 프로퍼티

    ____10.1.3 연산 프로퍼티

    ____10.1.4 프로퍼티 감시자

    ____10.1.5 전역변수와 지역변수

    ____10.1.6 타입 프로퍼티

    ____10.1.7 키 경로

    __10.2 메서드

    ____10.2.1 인스턴스 메서드

    ____10.2.2 타입 메서드

     

    CHAPTER 11 인스턴스 생성 및 소멸

    __11.1 인스턴스 생성

    ____11.1.1 프로퍼티 기본값

    ____11.1.2 이니셜라이저 매개변수

    ____11.1.3 옵셔널 프로퍼티 타입

    ____11.1.4 상수 프로퍼티

    ____11.1.5 기본 이니셜라이저와 멤버와이즈 이니셜라이저

    ____11.1.6 초기화 위임

    ____11.1.7 실패 가능한 이니셜라이저

    ____11.1.8 함수를 사용한 프로퍼티 기본값 설정

    __11.2 인스턴스 소멸

     

    CHAPTER 12 접근제어

    __12.1 접근제어란

    ____12.1.1 접근제어의 필요성

    ____12.1.2 모듈과 소스파일

    __12.2 접근수준

    ____12.2.1 공개 접근수준, public

    ____12.2.2 개방 접근수준, open

    ____12.2.3 내부 접근수준, internal

    ____12.2.4 파일외부비공개 접근수준, fileprivate

    ____12.2.5 비공개 접근수준, private

    __12.3 접근제어 구현

    __12.4 접근제어 구현 참고사항

    __12.5 private와 fileprivate

    __12.6 읽기 전용 구현

     

    PART III 함수형 프로그래밍과 스위프트

     

    CHAPTER 13 클로저

    __13.1 기본 클로저

    __13.2 후행 클로저

    __13.3 클로저 표현 간소화

    ____13.3.1 문맥을 이용한 타입 유추

    ____13.3.2 단축 인자 이름

    ____13.3.3 암시적 반환 표현

    ____13.3.4 연산자 함수

    __13.4 값 획득

    __13.5 클로저는 참조 타입

    __13.6 탈출 클로저

    ____13.6.1 withoutActuallyEscaping

    __13.7 자동 클로저

     

    CHAPTER 14 옵셔널 체이닝과 빠른종료

    __14.1 옵셔널 체이닝

    __14.2 빠른종료

     

    CHAPTER 15 맵, 필터, 리듀스

    __15.1 맵

    __15.2 필터

    __15.3 리듀스

    __15.4 맵, 필터, 리듀스의 활용

     

    CHAPTER 16 모나드

    __16.1 컨텍스트

    __16.2 함수객체

    __16.3 모나드

     

    PART IV 확장

     

    CHAPTER 17 서브스크립트

    __17.1 서브스크립트 문법

    __17.2 서브스크립트 구현

    __17.3 복수 서브스크립트

     

    CHAPTER 18 상속

    __18.1 클래스 상속

    __18.2 재정의

    ____18.2.1 메서드 재정의

    ____18.2.2 프로퍼티 재정의

    ____18.2.3 프로퍼티 감시자 재정의

    ____18.2.4 서브스크립트 재정의

    ____18.2.5 재정의 방지

    __18.3 클래스의 이니셜라이저 – 상속과 재정의

    ____18.3.1 지정 이니셜라이저와 편의 이니셜라이저

    ____18.3.2 클래스의 초기화 위임

    ____18.3.3 2단계 초기화

    ____18.3.4 이니셜라이저 상속 및 재정의

    ____18.3.5 이니셜라이저 자동 상속

    ____18.3.6 요구 이니셜라이저

     

    CHAPTER 19 타입캐스팅

    __19.1 기존 언어의 타입 변환과 스위프트의 타입 변환

    __19.2 스위프트 타입캐스팅

    __19.3 데이터 타입 확인

    __19.4 다운캐스팅

    __19.5 Any, AnyObject의 타입캐스팅

     

    CHAPTER 20 프로토콜

    __20.1 프로토콜이란

    __20.2 프로토콜 정의

    __20.3 프로토콜 요구사항

    ____20.3.1 프로퍼티 요구

    ____20.3.2 메서드 요구

    ____20.3.3 가변 메서드 요구

    ____20.3.4 이니셜라이저 요구

    __20.4 프로토콜의 상속과 클래스 전용 프로토콜

    __20.5 프로토콜 조합과 프로토콜 준수 확인

    __20.6 프로토콜의 선택적 요구

    __20.7 프로토콜 변수와 상수

    __20.8 위임을 위한 프로토콜

     

    CHAPTER 21 익스텐션

    __21.1 익스텐션이란

    __21.2 익스텐션 문법

    __21.3 익스텐션으로 추가할 수 있는 기능

    ____21.3.1 연산 프로퍼티

    ____21.3.2 메서드

    ____21.3.3 이니셜라이저

    ____21.3.4 서브스크립트

    ____21.3.5 중첩 데이터 타입

     

    CHAPTER 22 제네릭

    __22.1 제네릭 함수

    __22.2 제네릭 타입

    __22.3 제네릭 타입 확장

    __22.4 타입 제약

    __22.5 프로토콜의 연관 타입

    __22.6 제네릭 서브스크립트

     

    CHAPTER 23 프로토콜 지향 프로그래밍

    __23.1 프로토콜 초기구현

    __23.2 맵, 필터, 리듀스 직접 구현해보기

    __23.3 기본 타입 확장

     

    PART V 스위프트 고급

     

    CHAPTER 24 타입 중첩

    __24.1 중첩 데이터 타입

     

    CHAPTER 25 패턴

    __25.1 와일드카드 패턴

    __25.2 식별자 패턴

    __25.3 값 바인딩 패턴

    __25.4 튜플 패턴

    __25.5 열거형 케이스 패턴

    __25.6 옵셔널 패턴

    __25.7 타입캐스팅 패턴

    __25.8 표현 패턴

     

    CHAPTER 26 where 절

    __26.1 where 절의 활용

     

    CHAPTER 27 ARC

    __27.1 ARC란

    __27.2 강한참조

    ____27.2.1 강한참조 순환 문제

    __27.3 약한참조

    __27.4 미소유참조

    __27.5 미소유참조와 암시적 추출 옵셔널 프로퍼티

    __27.6 클로저의 강한참조 순환

    ____27.6.1 획득목록

     

    CHAPTER 28 오류처리

    __28.1 오류처리란

    __28.2 오류의 표현

    __28.3 오류 포착 및 처리

    ____28.3.1 함수에서 발생한 오류 알리기

    ____28.3.2 do-catch 구문을 이용하여 오류처리

    ____28.3.3 옵셔널 값으로 오류처리

    ____28.3.4 오류가 발생하지 않을 것이라고 확신하는 방법

    ____28.3.5 다시던지기

    ____28.3.6 후처리 defer

     

    부록

    __A. 스위프트의 주요 프로토콜

    __B. 스위프트의 주요 함수

    __C. 스위프트의 예약어

    __D. 디버깅 식별자

    __E. 컴파일러 제어 구문

    ____E.1 조건부 컴파일 블록

    ____E.2 라인 제어 구문

    __F. 사용 가능 조건 확인

    __G. 속성

    ____G.1 선언 속성

    ____G.2 타입 속성

    __H. 타입 별칭 및 호환 타입

  • 스위프트를 제대로 이해하고 싶은 개발자를 위한 책

    스위프트는 애플 관련 애플리케이션 개발에서 주로 사용하는 프로그래밍 언어입니다. 그런 이유로 보통 스위프트 서적이 출간되면 애플 개발 관련 내용을 중심으로 스위프트를 다룹니다. 하지만 스위프트는 오픈 소스로 공개된 이후 다양한 분야에서 사용하려는 시도가 늘고 있어, 스위프트를 제대로 이해하려면 스위프트라는 프로그래밍 언어 고유의 특징을 잘 알아야 합니다.

     

    이 책은 ‘스위프트를 제대로 이해하자’라는 콘셉트를 충실히 지키고자 스위프트의 기본 개념과 함께 함수형 및 프로토콜 지향 프로그래밍 패러다임을 이용하는 스위프트 프로그래밍 방법론을 소개합니다. 이러한 방법론을 다양한 예제를 코딩하면서 자연스럽게 익힐 수 있도록 했습니다. 또한 기존 『스위프트 프로그래밍』의 내용을 기반으로 2017년 6월 공개한 스위프트 4 스펙에 맞춰 내용을 수정하고 보강했습니다.

     

    ★ Part 1. 스위프트 기초

    스위프트의 역사와 데이터 타입, 연산자, 흐름 제어, 함수, 옵셔널 등 스위프트로 프로그래밍하는 데 꼭 필요한 기초 문법을 살펴봅니다. 특히 흐름 제어는 다른 프로그래밍 언어와 차이가 있으므로 반드시 살펴봐야 하는 부분입니다.

     

    ★ Part 2. 객체지향 프로그래밍과 스위프트

    많은 프로그래머에게 익숙한 객체지향 프로그래밍 방식으로 스위프트를 사용하는 핵심 문법인 구조체, 클래스, 프로퍼티, 메서드, 인스턴스 등을 소개합니다.

     

    ★ Part 3. 함수형 프로그래밍과 스위프트

    함수형 프로그래밍 패러다임으로 스위프트를 사용하는 데 필요한 핵심 문법이 모여 있습니다. 다른 프로그래밍 언어의 람다 개념인 클로저, 옵셔널로 지정된 객체지향 요소를 다루는 옵셔널 체이닝, 대부분의 함수형 프로그래밍 언어에서 등장하는 개념인 맵, 필터, 리듀스, 모나드 등을 소개합니다.

     

    ★ Part 4. 확장

    스위프트에서 타입의 기능을 확장하는 방법은 많습니다. 기능이나 속성을 물려받아 수직 확장할 수 있는 상속도 있고, 타입에 기능을 추가하여 수평적으로 확장할 수 있는 익스텐션도 있습니다. 다양한 확장 기법으로 타입을 더욱 유용하게 사용할 수 있도록 구성하는 방법을 알아봅니다.

     

    ★ Part 5. 스위프트 고급

    스위프트를 더욱 강력하고 유용하게 사용할 수 있도록 도와줄 고급 기능과 문법에 대해 알아봅니다. 메모리 관리를 위해 꼭 알아두어야 할 ARC, 각종 오류를 제어하는 기법도 살펴봅니다.

     

     

    ★ Etc Part. 동영상 강의도 만나보세요.

    다음 3개 사이트에서 이 책의 무료 동영상 강의를 만나볼 수 있습니다.

     

    ★ 대상 독자

    • 스위프트를 처음 배우는 현업 프로그래머
    • 기존 프로그래밍과 스위프트의 차이를 알고 싶은 대학생

     




    •  


        아는 분이 스위프트 관련으로 면접을 본다고 하여 도움이 될까하여 2017년 9월에 swift 3버전을 구매해서 빠르게 공부했는데, 어느새 swift 4가 나오다니. 정말 "애플"스럽지 아니한가?


       



      1. 바뀐점



      (1) 표지색과 2판 표시


      -> 표지 색은 이번이 더 맘에 드는 것 같다.


       



      2. 목차상 추가된 부분



      (1) 12.5 private와 fileprivate



      (2) 12.6 읽기 전용 구현



      (3) 22.6 제네릭 서브스크립트


       



      3. 오탈자


        1판에 오탈자 등록된 내용은 수정되었으나, 2판으로 넘어오면서 페이지가 바뀌면서 생기는 문제등으로 인한 오탈자 등이 보이나 이는 홈페이지에 오탈자가 등록되어 있다.


       



      4. 마음에 드는 점



      (1) 동영상 강의


      -> 책이라는 게 아무래도 저자의 언어이다 보니 이해하기가 힘든 경우가 많고, 난독증이 있는 분들은 여러 줄에 걸친 한 문장을 읽기 어렵다. 그렇게 때문에 필자의 동영상 강의가 있으면 이해 안가는 부분을 여러번 돌려 볼 수 있어서 아주 맘에 들었다.


       



      (2) 도식화


      -> 데이터 타입 고급 편, 옵셔널 체이닝과 빠른 종료, 모나드 등에 헤깔리기 쉬운 부분에 최대한 많은 도식화 및 다이어그램으로 작성되어 있어서 개념을 쉽게 잡고 넘어갔다.


       



      (3) 저자의 생각


      -> "스위프트를 다른 언어에 끼워맞추려 노력하지 말라"고 저자는 책 서두에 당부에 글을 적어 두었다. 이는 나도 100% 동감하는 바이다. 종종 스위프트 동영상 강의나 오프라인 모임을 나가면 C#은 어떻고 C++ , 자바에서는 어떻고 그래서 스위프트도 이럴거다라고 하시는 분들을 종종 만나게 된다. 물론 공통되거나 비슷한 개념은 있겠지만 그렇다고 스위프트를 다른 언어에 끼워맞추는 것은 정말 아닌 것 같다.


       



      5. 아쉬운 점



      (1) 생각할 수 있는 포인트


      -> 독자가 챕터가 끝나거나 파트가 끝나고 나서 이제까지 배운 것들을 혼자서 고민해 볼 수 있는 포인트가 없어서 아쉽다.


       


       


        1판에서 봤던 내용은 일단 스킵하고 추가된 내용하고 기억속에서 잊혀져 가는 것들만 다시 찾아서 보고, 소스 코드만 보는 데도 시간이 꽤 걸렸다. 하지만, 그 시간이 아쉽지 않을만큼 좋은 내용이었다. 

    • 한빛미디어의 리뷰이벤트 협찬을 받아 읽고 작성하는 글입니다.


       


      제목 : 스위프트 프로그래밍 Swift4


      저자 : 야곰


      출판사 : 한빛미디어


      출판일 : 2017-10-01


      페이지 : 540


       


      이 책은 개정판(?) 으로써 기존 편은 2017년 1월에 Swift3 문법으로 나왔었습니다.



      1년도 지나지 않은 시점에 Swift4 문법을 기본으로 한 2편이 이책입니다.


       


      기본에 충실하고 기초적인 문법부터 Swift 개발할 때 알아두면 좋은 개념이나 기능들이 잘 정리된 책이라 생각합니다.


      Swift를 제대로 이해하지 못하고 그저 간단한 앱 몇개만 만들어 본 저에게는 이 책을 읽고 난 이후에 Swift 개발시


      무언가 단단하고 부끄럽지 않은 코드로 작성한 앱을 만들 수 있을 것 같은 느낌을 받았습니다.


       


      이 책을 접하기 전에는 유튜브 동영상을 따라하고 블로그나 API 문서에 나오는대로 코드를 복사하고 안될 때는 될때까지


      문법을 변경하거나 이것저것 시도를 하였습니다.


       


      급하게 Swift를 배워야 하는 이유로 기본적인 것을 놔두고 기능 위주의 개발을 진행함으로써 기본에 대한 많은 갈증과


      부족함을 느끼고 있었습니다. 책을 다 읽지는 못하였지만 제가 가진 고민을 해결하기 위한 좋은 책이라고 생각됩니다.


       



      유튜브나 강의 동영상을 제공하는 컨텐츠에서는 배우기에는 다소 부족한 기본적인 개념과 이해를 할 수 있을 것 같고



      튼튼하고 부끄럽지 않은 코드작성의 밑거름이 되는 생각을 가질 수 있는 좋은 책이라고 생각됩니다.



       


    • "이 포스트는 한빛미디어 출판사의 '나는 리뷰어다' 프로그램의 일환으로 책을 지원받아 리뷰를 작성했음을 미리 명시합니다"


       


       


      사실 스위프트 언어는 저에게 애증의 존재입니다.


      맥북으로 개발을 하고 개발을 업으로 삼고 있는 저에게는 iOS 앱을 만들거나 OS X앱을 만들어서 앱스토어에 업로드하고, 판매하여 수익을 얻는 경험을 해보고 싶기 때문이죠.


       


      그런 관점에서 볼때 스위프트는 저에게 항상 친근하게 다가왔지만 장벽으로도 다가왔습니다. (물론 기존의 objective-C는 너무.. 가까이 하기에는 먼 친구였죠) 


       


      하지만 많은 사람들이 가장 일반적으로 생각하기에도 스위프트라는 언어는 objective-C 와 마찬가지로 iOS, OSX을 만드는 언어다 라고만 생각하고 있죠. 마치 안드로이드 개발자가 안드로이드를 만들기 위해 필요한 수단 중 하나로 JAVA라는 언어를 사용하는 것과 같은 이치입니다. 하지만 이 책은 그러한 편견을 깨고 오로지 스위프트에만 집중한 책이다 라고 할 수 있습니다.


       


       





       


      스위프트는 표지에서 알 수 있다시피 현대의 모던한 기능을 대부분 갖추고 있습니다. 스칼라나 고언어와 같은 함수형 스타일을 차용하고 있고 강력하게 타입을 강제하여 컴파일 수준에서 많은 에러를 잡아내도록 해서 최소한도의 에러를 런타임에 넘기겠다는 계산이 깔려있는 언어입니다.


       


      책도 이러한 스위프트의 특징을 잘 서술하고 있습니다. 사실 이 책의 저자인 "야곰"님은 페이스북 페이지등에서 많이 출몰하시며 스위프트 관련 강좌를 많이 업로드하고 계시기에 조금만 관심이 있었다면 이분에 대한 명성을 알 수 있습니다.


       



      명성에 걸맞은 책이 나왔다고 확신합니다. 책의 문장을 하나하나 읽을 때마다 저자의 스위프트 내공을 알 수 있을 정도로 내용이 알차게 있습니다.


       


       


       





       


      시작할 때에는 간단하게 스위프트가 어떻게 해서 시작하게 된 언어인지, 현재는 어떻고 앞으로의 미래에 대하여 조망하면서 거국적으로 스타트를 끊게 됩니다. 이러한 방식의 구성은 스위프트 언어를 완성도 있고 멋진 언어로 소개할 수 있는 방법이지만, 요즘과 같이 너무 많은 정보가 쏟아져나오는 시기에는 "아 이걸 언제 다 배우나" 싶은 정도의 시작이어서 조금은 아쉬웠습니다.


       


      책의 구성은 다른 프로그래미 언어의 책 구성과 비슷하게 이루어져있습니다. 처음에 어떻게 Hello World를 출력하는지부터 시작하여 데이터 타입, 연산자 등의 대하여 서술하고, 함수, 메소드 객체지향의 개념 함수형 프로그램의 개념, 스위프트의 꽃인 프로토콜 지향 패러다임에 관한 내용 등 정말 많은 내용이 포함되어 있습니다.


       


      이 책의 장점이자 단점이 책에 너무 많은 내용이 있다는 점입니다. 많은 내용이 있어서 초심자가 읽어도 별 무리 없이 읽을 수 있지만, 너무 내용이 많아서 이걸 다 어떻게 소화하지 하는 걱정부터 앞서기 시작합니다.


       


      또한 저는 프로그래밍 언어 책과 같은 언어를 배워야 하는 책의 경우에는 '백문이불여일타' 라는 격언을 많이 공감하여 미니 프로젝트와 같이 직접 생각해보면서 프로그래밍을 하는 것이 필요하다고 생각합니다. 하지만 이 책은 백과사전과 같이 스위프트의 개념을 나열하는 것에만 급급하여 내용을 잘 버무리지 못한 점이 아쉬운점이라고 생각합니다.


       


       


       





       


       


      다른 책과 달리 이 책은 가끔씩 위의 사진과 같이 주석으로 코드 실행 결과를 보여주기도 하지만, 어떠한 예제에서는 해당 코드의 출력값을 알려주지 않는 나름의 '불친절함'을 보유하고 있습니다. 사실 그냥 생각해보면 저자가 귀찮아서 안했나 싶지만.. 또 한번 생각해보니 이렇게 예제 코드의 출력 값을 세세하게 알려주지 않음으로써 조금이라도 열의를 가지고 있는 독자라면 직접 코드를 작성해서 결과를 알아낼 수 있겠구나 하는 나름의 결론에 도달할 수 있었습니다.


       


      이 책은 말 그대로 "스위프트"에 집중한 책인 만큼 스위프트를 통해서 일반적인 프로그램을 만들고 싶은 분이나 이 책을 기점으로 추가 자료를 통해서 iOS를 공부하고 싶은 분에게는 이 책이 너무 맞는 책이지만, 간단하게 스위프트를 맛보고 싶거나 iOS 개발을 위한 스위프트 책을 찾고 있다면 이 책은 적절하지 않다고 할 수 있습니다.


       


      그럼 오늘의 리뷰는 여기서 마치겠습니다 :)


       


      다음에 만날때 까지 모두 안녕~


       

    • 이것이 iOS다

      송종근

닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?