처음 처음 | 이전 이전 | 1 | 2 | 3 | 4 |다음 다음 | 마지막 마지막
[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
 
 
 
파이썬으로 웹 크롤러 만들기 - 초간단 나만의 웹 크롤러로 원하는 데이터를 가져오는 방법
라이언 미첼 지음, 한선용 옮김 / 한빛미디어 / 2016년 12월
평점 :
구판절판


이 도서는 파이썬을 기초 수준으로 알고 있는 사람에게 웹 크롤러(Web Crawler)를 만드는 방법을 단계별로 친절하게 알려준다.

1. 왜 읽어야 하나요?

수년 전부터 오픈 웹, 오픈 API 등의 용어가 범람하고 있다. 우리가 알고 있는 각종 포털 및 SNS 사이트부터 공공기관까지 대부분의 웹 서비스 업체는 자신들이 생산하는 데이터를 활용할 수 있는 방법을 제공한다.

참고: 대한민국 정부는 공공기관의 데이터를 민간에게 공개하는 것을 골자로 하는 정부 3.0 이라는 정책하에 공공데이터포털(www.data.go.kr)을 운영하고 있음

그러나 대부분의 경우 오픈 API는 사용이 제한적이거나 우리가 원하는 기능을 제공하지 않는 경우가 많아 해당 사이트에서 제공하는 데이터를 말랑말랑하게 다루기에는 많은 어려움이 있다. 책에서는 이러한 이유를 아래와 같이 소개하고 있다.

  • - 사이트에서 API를 제공하지 않거나 제공할 능력이 없음
  • - 사이트에서 제공하는 API사용에 제한이 있거나 제공하는 데이터 타입이 원하는 형식이 아닐 수 있음

만약 정보의 바다라고 하는 인터넷에서 본인 혹은 기업이 원하는 데이터를 자동으로 수집하고 가공하여 가치를 창조하는 일을 하고 싶다면 이 책은 큰 도움이 될 것이다.

2. 이 책의 장∙단점은 무엇인가요?

우선 이 책은 매우 친절합니다. 최근에 발간된 일부 컴퓨터 서적의 경우 책에서 나오는 각종 실습을 따라하는 데 필요한 환경설정을 다루지 않는 경우가 있었습니다. 그러나 이 책은 파이썬부터 BeautifulSoup 이라는 웹 문서 Parser 설치까지 안내를 합니다. 그리고 부록의 마지막 장에서는 웹 스크래이핑(=웹 크롤러)의 합법성과 윤리를 통해 혹시라도 발생할 수 있는 각종 법적 분쟁에 휘말리지 않도록 안내를 합니다. 그러나 무엇보다도  이 책의 가장 큰 장점은 단계별로 내용을 풀어가는 친절한 설명입니다. 또한, 심화내용을 배우기 원하는 독자를 위해 필요한 경우 레퍼런스를 제공합니다.

단점은 없습니다. 신경쓰이는 번역이나 오타도 발견하지 못했습니다. 최근에 읽었던 전문서적 중 가장 훌륭한 책이었습니다.

3. 총평

이 책은 검색 엔진을 이루는 구성요소 중 핵심 중 하나인 웹 크롤러(Web Crawler)를 만드는 방법을 매우 친절하게 소개합니다. 만약 웹에서 생산되는 다양한 데이터를 수집 및 가공하여 가치를 창조하는 어떤 서비스를 만들고 싶다면 이 책은 훌륭한 시작점이 될 수 있습니다. 웹 크롤러에 관심이 있는 분이라면 후회없는 선택이 될 수 있습니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
누구나 쉽게 스칼라 + 플레이 - 스칼라 입문부터 게시판, 채팅 프로그램 제작까지
고락윤 지음 / 한빛미디어 / 2016년 11월
평점 :
절판


이 책은 <누구나 쉽게 스칼라+플레이>라는 제목처럼 스칼라를 처음 시작하는 사람을 위한 도서입니다.

책 제목을 풀어서 설명하자면 이 책은 객체지향이자 함수형 언어인 스칼라(Scala)와 그 언어로 만들어진 웹 프레임워크인 플레이 프레임워크(Play Framework)를 다룹니다.

예전에 스칼라 언어를 만든 Martin Odersky의 Programming in Scala를 영문판으로 보다가 바쁘다는 핑계로 (사실은 잘 안 읽혀서) 완독을 못했던 경험이 있습니다. 반면에 이 책은 매우 쉽게 Scala와 Play 프레임워크를 학습할 수 있도록 만들었습니다.

가장 좋았던 점은 책의 구성과 문체입니다. 마치 저자와 직접 대화를 하는 듯한 느낌을 받았습니다. 학습을 하는 가장 좋은 방법은 대화하듯이 토론하며 공부하는 것인데 이 책은 저자와 한 마디, 한 마디를 주고 받으면서 공부하는 느낌이 들게해서 집중도 및 학습효과가 매우 뛰어났습니다.

또한 이 책은 Scala의 여러 가지 특성을 Java라는 대중화된 언어와 비교하여 설명함으로써 자칫하면 이해하기 어려운 개념을 매우 쉽게 설명합니다. 예를 들어, 트레이트(Trait)를 설명하는 책의 내용을 살펴보면 Java 언어의 인터페이스와 추상 클래스와 비교함으로써 독자의 이해력을 높입니다.

트레이트의 기능을 보면 사실 다중상속이 된다는 점을 제외하고는 추상 클래스와 그다지 다를 게 없고, 로직을 구현할 수 있다는 점을 제외한다면 인터페이스와 다른 게 없습니다.
한 가지 더 좋은 점을 언급하자면 스칼라에서 사용되는 용어를 무리하게 한글화하지 않았다는 점입니다. 예를 들어 앞에서 설명했던 트레이트(Trait)를 무리하게 ‘특성’이라는 용어로 번역하여 설명하지 않습니다.

반면에 아쉬웠던 점은 책에서 설명한 개발환경 설정이 OS X 환경에서는 제대로 동작하지 않았다는 것입니다. 또한, 스칼라 언어 자체에 대해서는 쉽게 설명했지만, 뒤에서 다룬 아카와 웹 소켓의 내용은 다소 빈약하여 아쉬움이 남았습니다.

하지만 이 책의 제목처럼 책의 주제가 스칼라 언어 자체와 플레이 프레임워크라는 점을 감안하면 아카와 웹 소켓에 대한 내용이 빈약하다고 비판을 하는 것은 적절하지 않은 것 같습니다.

참고로 아래 명령어를 실행하면 쉽게 Scala 개발환경을 구축할 수 있으니 유용하게 활용하시기 바랍니다.

1. Press Command+Space and type Terminal and press enter/return key.
2. Run in Terminal app:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null ; brew install caskroom/cask/brew-cask 2> /dev/null
and press enter/return key. Wait for the command to finish.
3. Run:
brew cask install scala-ide

출처: http://macappstore.org/scala-ide/

요약하자면, 스칼라를 입문하는 책으로써 대단히 만족스러웠습니다. 별 다섯 개가 아깝지 않습니다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
선겸(SunKyum) - 1집 시작 (The Beginning)
선겸 (SunKyum) 노래 / 미러볼뮤직 / 2016년 1월
평점 :
절판


새해를 시작하며 들으려고 샀어요~ ㅎ_ㅎ 기대됩니다!

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
선겸(SunKyum) - 1집 시작 (The Beginning)
선겸 (SunKyum) 노래 / 미러볼뮤직 / 2016년 1월
평점 :
절판


「시작」이라는 앨범제목처럼 2016년을 시작하면서 듣기 좋은 앨범입니다~

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
처음 처음 | 이전 이전 | 1 | 2 | 3 | 4 |다음 다음 | 마지막 마지막