메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

스위프트 프로그래밍

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

한빛미디어

집필서

절판

  • 저자 : 야곰
  • 출간 : 2017-01-02
  • 페이지 : 520 쪽
  • ISBN : 9788968484667
  • 물류코드 :2466
  • 초급 초중급 중급 중고급 고급
4.9점 (8명)
좋아요 : 130

언어 스위프트를 제대로 배워보자!

 

문법 소개를 넘어 다양한 예제를 통해 문법을 익혀볼 수 있는 이 책에는 함수형 프로그래밍 및 프로토콜 지향 프로그래밍의 개념과 이해, 활용까지 담았다. 함수형 프로그래밍과 프로토콜 지향 프로그래밍에 익숙하지 않은 프로그래머라도 이 책의 예제를 통해 다양한 개념에 친숙하게 다가갈 수 있으리라 믿는다. 기본에서부터 고급 내용까지, 책의 내용을 순차적으로 따라가면 어느새 스위프트를 마스터할 수 있을 것이다.

 

 

detail.jpg

 

야곰 저자

야곰

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 종료되지 않는 함수

 

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.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 접근제어 구현 참고사항

 

 

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.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 프로토콜의 연관 타입

 

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. 컴파일러 제어 구문

F. 사용 가능 조건 확인

G. 속성

H. 타입 별칭 및 호환 타입

대상 독자

 - 스위프트를 배우고자 하는 개발자
 - 다른 프로그래밍 언어를 사용해본 경험이 있는 프로그래밍 초보자

 

키워드: SWIFT, 프로그래밍

1. 어떤 책인가요

이 책은 애플(Apple)이 강력하게 밀고 있는 새로운 언어 Swift (3.x) 를 소개하는 책이다. 간결하고 명료한 문체로 Swift를 소개한다.

Swift는 Safe, Fast, Expressive의 특징을 갖는 언어로 애플(Apple)이 Objective-C를 대체하기 위해 만들었다. 다중 패러다임 프로그래밍 언어로 명령형, 객체지향형 그리고 함수형까지 모두 지원한다.

2. 누가 읽어야 하나요

Mac 개발환경에 첫 발을 내딛으려는 <입문자>라면 이 책이 큰 도움이 될 것이다. 매킨토시 환경에서 프로그래밍을 처음 시작한다면 아무래도 이전의 Objective-C 보다는 Swift부터 시작하는 게 더 좋지 않을까?

3. 어떤 점이 좋았나요

책을 읽으면서 아래와 같은 이유로 참 잘 쓴 책이라는 생각이 들었습니다.

  • 쉽게 읽히는 문체

책을 읽다보면 저자와 대화를 나누고 있는 듯한 착각이 듭니다. 저자가 독자에게 말로 설명해주는 것처럼 친절하게 설명을 합니다. 그리고 책에 오타가 거의 없습니다.

  • 명료한 설명과 적절한 예제

새로운 키워드가 나왔을 때 어떠한 형식으로 사용되는지 설명하는 부분과 간결한 예제가 Swift 언어를 이해하는 데 큰 도움이 되었다.

위 사진에서 보듯이 새로운 키워드가 나오면 어떠한 형태로 사용되는지 명료하게 작성해서 새로운 개념을 익히는 데 많은 도움이 된다. 그리고 아래 사진처럼 예제가 정성스럽게 작성되어 있어 어려운 개념을 빠르고 쉽게 이해할 수 있었다.

앞에서 올린 사진에는 나오지 않았지만 이 책은 함수형 프로그래밍에서 가장 많이 사용되는 맵, 필터, 리듀스를 차근차근히 설명해서 결국에는 독자가 가장 추상화된 표현까지 쉽게 이해하도록 돕는다.

맵(map)은 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 반환하는 함수고, 필터(filter)는 컨테이너 내부의 값을 걸러서 추출해 새로운 컨테이너에 값을 담아 반환하는 함수이다. 그리고 리듀스(reduce)는 컨테이너 내부의 콘텐츠를 하나로 합쳐주는 기능을 수행하는 함수이다.

  • 키워드 활용 예와 다양한 도표

책의 저자가 단순히 Swift의 키워드만 소개하지 않는다. 어떤 키워드가 등장하면 어디에서 어떻게 주로 사용되는지 활용할 수 있는 방안도 제공한다.

또한 아래와 같이 개념을 직관적으로 설명하는 도표가 다수 들어있어 책을 읽으면서 쉽게 새로운 개념을 이해할 수 있었다.

  • Swift 언어에 대한 설명

새로운 키워드를 소개할 때 실제 API 문서의 내용과 언어의 철학을 함께 소개해서 이해의 폭을 더 넓힐 수 있었다.

4. 어떤 점이 아쉬웠나요

  • 새로 등장한 용어를 설명하지 않을 때가 간혹 있음

새로운 연산자 혹은 용어가 나올 때 설명을 하지 않고 넘어가는 경우가 간혹있다. 예를 들어 218쪽에는 클로저(Closure)라는 용어가 처음 등장하는데 이에 대해 설명하지 않는다. 40쪽에서 커링(Currying)이라는 용어가 처음 나올 때 주석으로 설명을 했던 것처럼 간단히 소개하는 게 좋지 않았을까 싶다. 

참고로 커링(Currying)은 여러 개의 매개변수를 갖는 함수를 하나의 매개변수를 가지는 함수의 나열로 표현하는 방법이고, 클로저(Closure)는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말한다.

303쪽에서도 as 연산자가 처음으로 등장하는 데 새로운 용어에 대해 간략한 설명조차 없어서 다소 아쉬웠다. 참고로 as 연산자는 스위프트의 타입캐스팅을 위해 사용되는 연산자이다. 책에서는 331쪽에서 처음 소개한다.

  • 지나친 직역이 가끔 보임

전체적으로 글을 읽는 데 문제가 없었으나 데이터 타입 안심과 같은 표현은 지나친 직역인 것 같아서 아쉬웠다. 한글 용어 다음에 영어 표현을 함께 써주면 좀 더 낫지 않았을까? 어차피 Swift 공식 문서 등을 참고하다보면 영어 표현을 알아야 하지 않는가?

5. 요약

Swift 입문을 빠르게 하고 싶은 개발자라면 이 책은 결코 후회없는 선택이 될 것이다. 잘 쓴 책이다. 사라.

6. 마치면서

Swift를 한 마디로 요약하면 이렇게 말하고 싶다.

한 없이 엄격하고 한 없이 자상한 언어, Swift

Swift는 굉장히 엄격한 언어이다. 예를 들어 값 타입(구조체와 열거형)의 인스턴트 메서드에서 자신 내부의 값이 변경될 경우 mutating 키워드로 반드시 명시를 해야 한다거나, 암묵적 타입 캐스팅이 불가하다는 것은 다소 충격이었다.

하지만 동시에 Swift는 매우 자유로운 언어이다. 단, Swift가 정한 규칙만 지킨다면 말이다. 예를 들어, Swift는 Extension을 통해 기본적으로 제공되는 Int, String 등의 구조체에 자유롭게 기능을 확장할 수 있다. 제네릭, 익스텐션, 프로토콜, 프로토콜 초기구현 등을 사용하면 고리타분한 Java와 다르게 굉장히 재미있는 프로그래밍이 가능하다.

7. 앞으로는 무엇을 할까

우선은 아래 사이트에 필요한 자료를 찾아서 읽겠다.

그리고 iOS 관련한 책을 보면서 올해 App Store에 내가 만든 앱을 등록하겠다.

추신. 책에 대한 상세한 설명은 <한빛미디어 공식 홈페이지> 에서 확인하실 수 있습니다.


스위프트 프로그래밍 이제는 배워야 할 때!!



스위프트는 2014 WWDC에 공개되면서 애플의 공식언어가 되었다. 

 

기존의 오브젝트씨의 단점을 보완하고 현대적 이론들을 포함하고 있다. 

 

스위프트는 애플진영의 앱을 만드는데 사용되겠지만 객체지향, 함수형, 프로토콜 지향 패러다임을 공부하기에도 부족하지 않은 언어이다. 

 

어찌보면 비슷하고, 조금만 돌려보면 다른 이론들을 한권에 책에 엮어 내는 것이 쉽지 않았을 것이다. 

 

사실 읽는 동안에도 쉽게 구별이 되는 것은 아니었다. 

 

그럼에도 불구하고 각종 이론들을 파트를 나눠 최대한 쉽게 설명하려고 한 노력이 눈에 보인다. 

 

한가지 언어를 배우기에 500page는 많다면 많고 적다면 적을 것이다. 

 

하지만 각종 예제코드를 포함하다보니 500page를 읽어내려가는데  상당한 시간이 걸렸다. 

 

프로그래밍 언어를 한두개 알고 있음에도 함수형, 프로토콜 지향 패러다임은 쉽게 이해되는 내용이 아니였다. 

 

대강 이해를 했다 치더라도 막상 홀로 적용해보는데 어려움이 있었다. 

 

중간중간에 노트와 팁을 두어 독자와의 간격을 좁히려는 노력이 있지만 프로그래밍을 처음배우는 사람에게는 크게 와닫지 않을 것 같았다. 

 

결국 이책은 개발언어를 어느 정도 알고있는 개발자를 타겟으로 쓰여졌다는 느낌을 받았다.

 

이책을 구입해서 봐야하는 이유가 사실 여기에 있다. 

 

너무 초급을 위한 책이면 한 번 읽고 나면 다시보기 어렵다. 

 

하지만 이책의 난이도와 챕터별로 잘 정리된 이론들은 언젠가 다시 봐야 한다. 

 

두 번 세 번 보고 또 보게 되어 있다. 

 

프로그래밍 언어라는 것은 공부했다 하더라도 꾸준히 사용하지 않으면 잊기 쉽고 한번 익힌 언어라도 계속해서 발전하기 떄문에라도 기본을 잘 다져놔야 한다. 

 

스위프트 개발자라면 책장속이 아닌 키보드 옆에 두고 레퍼런스로 써도 좋을 것 같다.

 

 

 

정리

- 여러가지 현대적 프로그래밍 이론을 한권의 책, 하나의 언어에서 배울수 있다. 

 

- 처음부터 쭉이어진 예제가 아닌 독립적 예제들로 원하는 부분만 공부할 수 있다.(나중에 다시볼때 좋다.)

 

- 노트와 팁에 정말 중요한 이야기가 다 있다.

 

- 문체가 간결하여 쉽게 읽혀진다.

 

 

 

 

 

- 다른 언어책들보다 얇다!!!

 

 

이번 미션은 처음으로 시도해보는 iOS앱 개발 관련 책이다.

 

맥북을 쓴지는 상당히 오래됐지만, Xcode 사용은 처음이다.

 

처음에 시도를 안해본건 아니나, C는 상대적으로 좀 약한 감이 있어서

 

Object-C는 엄두도 못내고 있었다.

 

swift는 하도 쉽다쉽다 홍보를 하고 있어서 이기회를 삼아 해보자 라고 시작하게 된것이다.

 

오히려 Object-C 를 경험을 하지 않았기 때문에 보다 쉬울 것이라고 생각하면서 읽기 시작했는데,

역시 초보자를 위한 입문서로 적절하다고 생각된다.

 

코드는 구글신의 도움으로 찾아서 개발하는게, 경험상 훨씬 빠르고 최신 버전을 이용할 수 있을꺼라 판단되고,

실제로도 그렇다.

 

그리고 스위프트를 하면 할수록 내가 엔지니어로 주로 다루던 파이썬과 많이 닮아있다고 생각이 많이 들었다.

 

이 책의 장점은 심각할 정도로 친절하다는 점이고,

 

단점은 그럼에도 불구하고 허들이 있다는 점이다.

 

좀더 자세히 얘기를 해보면, 아주 프로그래밍을 처음 배우는 사람에게도 강의교재로 쓸수 있을 정도로 자세히 많은 예제들과 진행되고 있지만,

혼자 독학하기엔 어렵다는 점이다.

 

물론 책 서문에도 다른 언어의 경험을 가진 사람이라면 이라는 단서는 있었지만,

입문서 이다 보니 동영상 강의나 다른 서브 자료들도 함께 있다면 조금더 쉽게 다가갈 수 있지 않았을까 한다.

iOS 개발을 처음 접하면서 부터 써오던 Objective-C 에서 요즘 대세인 Swift로 갈아타야겠다고 마음먹은지는 꽤 오래되었다. 적어도 일년은 지난것 같다. 그런데도 새로운 언어를 배워갈 시간이 부족하다는 핑계로 제대로 배워내지 못했다. 이미 잘 쓰고 있던 말을 뜯어고치는 일에는 어쩐지 즐거움과 동시에 짜증이 나는것이 사실이다. 그럼에도 예상보다 좀 더 오래 그리고 전문적으로 iOS 앱 개발을 해나가게 되어서, 이제는 그 필요를 더욱 절실히 느끼고 있다. 그러던 차에 한빛미디어에서 한달에 한권씩 서평을 쓸 수 있는 기회를 얻게되었다. 처음엔 책을 공짜로 접한다는 것에 가장 혹하긴 했지만, 막상 기회를 얻고나니 스위프트 라는 단어를 먼저 찾아보게 되었다. 때마침 목록에 있다. 밑바닥 부터 시작하는 딥러닝 책의 유혹을 뿌리치고 선택했다.

 

책을 만나기까지 그리 오래 걸리진 않았다. 언제오지... 하던차에 바로 왔다. 사실 저자도 안보고 제목만 보고 골랐었다. 저자는 '야곰'씨 였다. 처음 개발을 접했을 때 자주 드나들던 블로그의 운영자다. 그냥 정리를 잘 해놓은 분이구나 싶었는데, 코딩 교육 쪽에서 상당히 열심히 활동중이셨나 보다. 옛 시절의 추억을 떠올리게 하는 저자 부터 마음에 들었다. 설레는 마음으로 추천사를 찬찬히 살펴본다. 그냥 간단한 아이폰 개발 수준에 머무르지 않고 스위프트 언어에 담겨있는 철학을 소개해주고 있다는 말이 공통적이었다. 더욱 마음에 들기 시작한다. 사실 간단한 툴 사용법이나 스킬들은 구글링을 하는것이 훨씬 빠르고 최신버전을 배울 수 있다. 핵심부터 잘 배워서 알려줄 수 있는 수준이 되면 좋겠다.

 

주석 p.65

주석의 중요성을 어렸을 때 부터 들어왔던 터라 한동안은 모든 코드에 주석을 달곤했었다. 하지만 너무 과도한 주석은 독이 되기도 하고, 주석 없이도 직관적으로 이해 가능한 코드를 짜야한다는 것을 알게되었다. 그래도 문서화를 위해서 잘 정리된 주석이 있으면 좋다. 맥에서 옵션키를 누른채로 함수를 클릭하면 함수에 해당하는 주석을 볼 수 있기 때문에 팀 단위로 함께 작업할 때 유용할 것 같다. 함수앞에서 cmd + option + / 키를 사용하면 자동으로 형식을 만들어 주기 때문에 아주 편리하다. 책에서 단축키에 대한 내용을 자세히 알려주는 편인데 이부분은 없어서 약간 아쉬웠다. 그래도 친절하게 마크 다운으로 만들어 내는 예문이 있어서 두고두고 참고할 것 같다.

 

Tip

프로그래밍 초보를 위한 내용이 대부분인것 같다. 보통의 책들은 사전 처럼 모든 것들을 나열 해두고 중요도는 알아서 판단해야 하는 경우가 많은데, 저자의 경우 초보자의 입장에서 어떤게 중요한지 긴가민가 할 수 있다는 것을 알고 있다. 

 

책의 앞부분은 기본적인 언어 문법들인데 이런 것들은 암기를 한다기 보다는 익숙해져야 하는 것 같다. 이것도 언어기 때문에 자주 사용할 수록 손에 더 익고 자연스럽게 사용하게 되는 것 같다. 다만 경계해야 하는 부분은 습관이 생긴다는 것이다. 전체적인 구조를 생각하지 않으면 복잡하게 만드는 습관이 생기는 것 같다. 새로운 언어를 익힐 때는 좀 더 조심하게 되니까 이런 습관을 고치기 좋지 않을까.

 

함수형, 프로토콜 지향 프로그래밍에 대해서도 한 챕터씩 설명하며 스위프트 언어가 원하는 것을 잘 설명해주고 있다. 앱 개발에 대해서는 나오지 않지만 그보다 중요한 기본기를 탄탄하게 쌓기에 좋은 책인것 같다. Objective-c 에서 넘어오기 원하는 사람과 Mac을 사용중이라서 쉽게 실습해볼 수 있는 분들이 접하면 좋을 것 같다. 



출처: http://greatgift.tistory.com/82 [아름답고 쓸모없기를]

 

스위프트 프로그래밍 도서 리뷰

  • 출판사 : 한빛미디어
  • 저자 : 야곰
  • 발행일 : 2017-01-02

모바일 시대에 살아가고 있는 요즘, 모바일 앱 개발에 대한 도서들이 마구마구 쏟아집니다.
웹개발자로 살아가고 있는 저는 지난해 맥북을 구매하고 아이폰 개발을 도전해보려고 했습니다.
Objective-C에 관한 책들은 요즘에는 안나오는 것 같고… 그럼 javascript와 비슷한 문법을 사용하는 SWIFT를 도전해볼까? 라는 생각이 들어 SWIFT에 도전하려 이 책을 읽어보았습니다.

난이도

제가 판단하기에 이 책의 난이도는 중급 이상입니다. 프로그래밍에 대한 어느정도 기초지식을 가지고 시작하시는 것이 좋을 것 같습니다. 프로그래밍에 대한 기초적인 부분을 모르신다면 책의 내용을 전부 이해하기는 힘들 것 같습니다.

책의 구성

전체적으로 책의 구성이 SWIFT 문법에 맞추어져 있다보니 iOS, macOS 등 다른 어떠한 종류의 Apple의 어플리케이션 개발을 할 때라도 참고할 수 있는 책입니다.
시중에는 대부분이 iOS 개발책이 대부분입니다. SWIFT로 구현하는 앱개발 도서들도 많이 출판이 되었는데, 거의 아이폰에 국한도니 경우가 많았습니다. 하지만 이 책은 SWIFT 문법, 개념에 치중되어있어 새로운 언어를 배우고자하는 사람들에게 많은 도움이 될 것입니다. 저자의 다양한 경험과 노하우를 느낄 수 있습니다.

장점

  • 다양한 예제로 쉽게 따라해볼 수 있습니다.
  • SWIFT 문법에 집중해 볼 수 있습니다.
  • 설명에 대한 깊이가 있어 이 책 하나면 개념에 대한 공부는 충분할 것 같습니다.
  • 책 내용에 설명하기 힘든 부분을 부록으로 안내합니다.

단점

  • 프로그래밍 지식이 전혀 없으면 진행하기가 힘듭니다.
  • 개념에 대한 그림 설명이 더 있었으면 좋을듯 합니다.

 

오랫만에 단시간에 프로그래밍 도서를 접해보았습니다.
최신 유행하는 프로그래밍 언어의 장점만을 모아만든 “SWIFT”가 대박이 나길 바랍니다.

 

스위프트를 제대로 배우고 싶다면 이 책을 곁에 두고 열심히 보면 될 것 같습니다.

내용이 알차고 좋습니다~

이해하기쉽게 설명이 정말잘되어있고 특히 목차나순서가참마음에드네요^^

저는 사실 C언어 조금정도만 할 줄 아는 학생입니다….ㅠㅠㅠ

 하지만 꾸준히 관심을 갖고 공부했던 사람으로 필요했던 책이 이었기에 처음 구매할 때는 반심반의 하고 책을 구매했습니다. 하지만 책을 읽으면서 한장한장 재미있게 읽히는 놀라운 경험을 했습니다 ㅎㅎ 사실 스위프트라는 언어가 아주 쉬운 언어가 아니라는 것은 알고 있었지만 (앞으로도 많이 쉽지는 않겠지만 ㅠㅠㅠ……..) 야곰님 덕분에 재미있게 공부하고 있습니다. 게다가 제가 준비하고 있는 프로젝트에 많은 도움을 얻고 있습니다ㅎㅎ

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
스위프트 프로그래밍
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
스위프트 프로그래밍
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
스위프트 프로그래밍
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

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

자료실

최근 본 책0