[eBook] 스위프트 프로그래밍 - 객체지향, 함수형, 프로토콜 지향 패러다임까지 한번에! (Swift3)
야곰 지음 / 한빛미디어 / 2017년 3월
평점 :
판매중지


키워드: 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에 내가 만든 앱을 등록하겠다.

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


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo