스위프트 3 가 발표된 이후로 국내에도 스위프트 3 내용을 다루는 책들이 하나둘씩 출간되고 있습니다. 그리고 지금부터 이야기할 <스위프트 프로그래밍> 역시 그중 한 권입니다.
이 책은 기존에 있던 책들과는 달리 iPhone이나 Mac App 개발에 필요한 내용을 다루지는 않습니다. 개인적으로는 이러한 점 때문에 스위프트란 언어 자체에 좀 더 집중할 수 있었습니다.
책은 크게 다섯 개의 파트로 구성되어 있으며 각 파트별 목차는 다음과 같습니다.
Part Ⅰ 스위프트 기초
1. 스위프트
2. 스위프트 처음 시작하기
3. 데이터 타입 기본
4. 데이터 타입 고급
5. 연산자
6. 흐름 제어
7. 함수
8. 옵셔널
Part Ⅱ 객체지향 프로그래밍과 스위프트
9. 구조체와 클래스
10. 프로퍼티와 메서드
11. 인스턴스 생성 및 소멸
12. 접근제어
Part Ⅲ 함수형 프로그래밍과 스위프트
13. 클로저
14. 옵셔널 체이닝과 빠른종료
15. 맵, 필터, 리듀스
16. 모나드
Part Ⅳ 확장
17. 서브스크립트
18. 상속
19. 타입캐스팅
20. 프로토콜
21. 익스텐션
22. 제네릭
23. 프로토콜 지향 프로그래밍
Part Ⅴ 스위프트 고급
24. 타입 중첩
25. 패턴
26. where 절
27. ARC
28. 오류처리
Part1, 2 까지는 스위프트 언어에 대한 기본적이고 전반적인 내용을 설명합니다. 스위프트를 처음 배우는 독자뿐만 아니라 스위프트를 조금 공부해 본 독자에게도 유용한 내용이 많았습니다. 특히, 스위프트 언어를 사용하는 데 있어 지켰으면 하는 규칙을 반복적으로 설명함으로써 자연스럽게 그러한 규칙이 손에 익히도록 한 점이 좋았습니다. 다만 중간중간 난이도가 갑자기 높아지는 부분이 있어 초심자에게는 책 앞부분에서 조금 힘들 수도 있겠다는 생각이 들었습니다.
Part3 는 아마도 이 책에서 가장 흥미로운 부분이 아닌가 싶습니다. 최근 함수형 프로그래밍의 인기를 그대로 반영한 듯한 목차부터 기본서에는 잘 나오지 않는 <모나드> 까지. 개인적으로 가장 흥미를 가지고 읽은 부분이 아닐까 싶습니다. 다만 <맵, 필터, 리듀스> 나 <모나드> 부분은 Part 4 이후에 나왔으면 어땠을까? 하는 생각이 계속 들었습니다. 사실 제네릭이나 프로토콜을 제대로 알지 못한 상태에서는 Part3 의 내용을 완벽하게 이해하기는 힘들기 때문입니다. 개인적으로 Part 4, 5 를 읽은 다음 Part3 를 읽는다면 더욱 이해하기 쉬울 것이라고 생각합니다.
Part4와 Part5 에서는 스위프트가 가진 특징들을 잘 성명해 주고 있습니다. 특히 스위프트 2부터 자주 언급되고 있는 <프로토콜 지향 프로그래밍> 에 대한 개념과 스위프트를 어떻게 하면 더욱 스위프티하게 사용할 수 있는지를 잘 설명해 주고 있습니다.
마지막에 있는 부록 역시 내용이 알찹니다. Part6 로 분류해도 좋을 정도로 그냥 지나치기에는 아까운 내용이 많으니 반드시 필독하시길 권합니다.
책을 읽는 동안 스위프트가 가진 매력을 설명하기 위해 저자가 얼마나 많은 고민을 했는지 어렴풋이 느낄 수 있었습니다. 특히 기본서에는 잘 언급되지 않는 내용들도 포함시키면서 초보 개발자뿐만 아니라 스위프트로 개발을 하고 있는 개발자에게도 좋을 내용들이 많아 스터디 교재로도 훌륭하겠다는 생각이 들었습니다.
다만 앞부분에서 내용을 간단하게 다루고 뒷부분에서 좀 더 심화 내용을 다루다 보니 흐름이 잠깐씩 끊기는 부분은 아쉬운 점으로 남았습니다. 또한 초판의 경우 중간중간 오탈자가 보이는데 이러한 오탈자로 인해 설명이 잘못되는 부분도 있어 초판을 구입한 독자라면 반드시 한빛 미디어 사이트에서 오탈자를 확인해 봐야 할 것입니다. (한및미디어 사이트: http://www.hanbit.co.kr/media/books/book_view.html?p_code=B5682208459)
또한, 초반부에 설명한 사이트 중 일부가 문을 닫아 사용할 수 없는 경우도 있었습니다. 사실 이러한 부분은 어쩔 수 없는 부분이기도 하지만 최신 도서인 점을 감안하면 마지막 검수 단계에서 한번 더 확인되었으면 어땠을까 하는 아쉬움이 듭니다.
마지막으로 스레드 관련 부분이 없는 점이 조금 아쉬웠습니다. GCD가 스위프트 언어 자체에서 지원하는 기능은 아니지만 그래도 언어에서 스레드를 어떻게 다루는지에 대한 간단한 설명이 있었으면 어땠을까 하는 생각이 들었습니다.
이 책은 스위프트라는 언어가 가진 매력을 보여주기에 충분한 책입니다. 코코아나 코코아 터치 프래임워크에서 벗어나 언어가 가진 본질적인 매력을 느끼고자 하시는 기존 개발자나 스위프트를 처음부터 제대로 공부하고 자하는 개발자에게는 더없이 좋은 책이 될 것입니다. 개인적으로는 한 두세 번 정도 정독을 해야 책에서 전달하고자 하는 내용을 이해하는데 무리가 없을 것으로 생각됩니다. 그만큼 책 내용이 가볍지 않으며 난이도는 조금 있는 편이라고 생각합니다.
이 책은 기존에 있던 책들과는 달리 iPhone이나 Mac App 개발에 필요한 내용을 다루지는 않습니다. 개인적으로는 이러한 점 때문에 스위프트란 언어 자체에 좀 더 집중할 수 있었습니다.
책은 크게 다섯 개의 파트로 구성되어 있으며 각 파트별 목차는 다음과 같습니다.
Part Ⅰ 스위프트 기초
1. 스위프트
2. 스위프트 처음 시작하기
3. 데이터 타입 기본
4. 데이터 타입 고급
5. 연산자
6. 흐름 제어
7. 함수
8. 옵셔널
Part Ⅱ 객체지향 프로그래밍과 스위프트
9. 구조체와 클래스
10. 프로퍼티와 메서드
11. 인스턴스 생성 및 소멸
12. 접근제어
Part Ⅲ 함수형 프로그래밍과 스위프트
13. 클로저
14. 옵셔널 체이닝과 빠른종료
15. 맵, 필터, 리듀스
16. 모나드
Part Ⅳ 확장
17. 서브스크립트
18. 상속
19. 타입캐스팅
20. 프로토콜
21. 익스텐션
22. 제네릭
23. 프로토콜 지향 프로그래밍
Part Ⅴ 스위프트 고급
24. 타입 중첩
25. 패턴
26. where 절
27. ARC
28. 오류처리
Part1, 2 까지는 스위프트 언어에 대한 기본적이고 전반적인 내용을 설명합니다. 스위프트를 처음 배우는 독자뿐만 아니라 스위프트를 조금 공부해 본 독자에게도 유용한 내용이 많았습니다. 특히, 스위프트 언어를 사용하는 데 있어 지켰으면 하는 규칙을 반복적으로 설명함으로써 자연스럽게 그러한 규칙이 손에 익히도록 한 점이 좋았습니다. 다만 중간중간 난이도가 갑자기 높아지는 부분이 있어 초심자에게는 책 앞부분에서 조금 힘들 수도 있겠다는 생각이 들었습니다.
Part3 는 아마도 이 책에서 가장 흥미로운 부분이 아닌가 싶습니다. 최근 함수형 프로그래밍의 인기를 그대로 반영한 듯한 목차부터 기본서에는 잘 나오지 않는 <모나드> 까지. 개인적으로 가장 흥미를 가지고 읽은 부분이 아닐까 싶습니다. 다만 <맵, 필터, 리듀스> 나 <모나드> 부분은 Part 4 이후에 나왔으면 어땠을까? 하는 생각이 계속 들었습니다. 사실 제네릭이나 프로토콜을 제대로 알지 못한 상태에서는 Part3 의 내용을 완벽하게 이해하기는 힘들기 때문입니다. 개인적으로 Part 4, 5 를 읽은 다음 Part3 를 읽는다면 더욱 이해하기 쉬울 것이라고 생각합니다.
Part4와 Part5 에서는 스위프트가 가진 특징들을 잘 성명해 주고 있습니다. 특히 스위프트 2부터 자주 언급되고 있는 <프로토콜 지향 프로그래밍> 에 대한 개념과 스위프트를 어떻게 하면 더욱 스위프티하게 사용할 수 있는지를 잘 설명해 주고 있습니다.
마지막에 있는 부록 역시 내용이 알찹니다. Part6 로 분류해도 좋을 정도로 그냥 지나치기에는 아까운 내용이 많으니 반드시 필독하시길 권합니다.
책을 읽는 동안 스위프트가 가진 매력을 설명하기 위해 저자가 얼마나 많은 고민을 했는지 어렴풋이 느낄 수 있었습니다. 특히 기본서에는 잘 언급되지 않는 내용들도 포함시키면서 초보 개발자뿐만 아니라 스위프트로 개발을 하고 있는 개발자에게도 좋을 내용들이 많아 스터디 교재로도 훌륭하겠다는 생각이 들었습니다.
다만 앞부분에서 내용을 간단하게 다루고 뒷부분에서 좀 더 심화 내용을 다루다 보니 흐름이 잠깐씩 끊기는 부분은 아쉬운 점으로 남았습니다. 또한 초판의 경우 중간중간 오탈자가 보이는데 이러한 오탈자로 인해 설명이 잘못되는 부분도 있어 초판을 구입한 독자라면 반드시 한빛 미디어 사이트에서 오탈자를 확인해 봐야 할 것입니다. (한및미디어 사이트: http://www.hanbit.co.kr/media/books/book_view.html?p_code=B5682208459)
또한, 초반부에 설명한 사이트 중 일부가 문을 닫아 사용할 수 없는 경우도 있었습니다. 사실 이러한 부분은 어쩔 수 없는 부분이기도 하지만 최신 도서인 점을 감안하면 마지막 검수 단계에서 한번 더 확인되었으면 어땠을까 하는 아쉬움이 듭니다.
마지막으로 스레드 관련 부분이 없는 점이 조금 아쉬웠습니다. GCD가 스위프트 언어 자체에서 지원하는 기능은 아니지만 그래도 언어에서 스레드를 어떻게 다루는지에 대한 간단한 설명이 있었으면 어땠을까 하는 생각이 들었습니다.
이 책은 스위프트라는 언어가 가진 매력을 보여주기에 충분한 책입니다. 코코아나 코코아 터치 프래임워크에서 벗어나 언어가 가진 본질적인 매력을 느끼고자 하시는 기존 개발자나 스위프트를 처음부터 제대로 공부하고 자하는 개발자에게는 더없이 좋은 책이 될 것입니다. 개인적으로는 한 두세 번 정도 정독을 해야 책에서 전달하고자 하는 내용을 이해하는데 무리가 없을 것으로 생각됩니다. 그만큼 책 내용이 가볍지 않으며 난이도는 조금 있는 편이라고 생각합니다.
Comments
Post a Comment