스위프트 5의 핵심 키워드는 ‘안정화’다. ABI 안정화 덕분에 버전과 환경에 크게 영향받지 않고 더 유연하게 스위프트를 사용할 수 있게 되었다. 최신 패러다임과 다양한 언어의 기능을 흡수하여 언어 전반에 걸쳐 안정화되었다. 기존 스위프트 업데이트의 주된 목적이 새로운 기능 추가였다면, 이번 스위프트 5는 비약적으로 발전한 기능을 세세하게 보정하고 다듬었다. 그렇다고 굵직한 변화가 없는 것은 아니다. 스위프트 언어의 발전은 여전히 현재 진행형이다.
스위프트 프로그래밍 핵심 패러다임 기반으로 설명
스위프트에는 함수형과 프로토콜 지향 프로그래밍 기법이 포함되어 있다. 이 책은 이 두 가지 패러다임에 맞춰 스위프트로 프로그래밍하는 방법을 설명한다. 스위프트 문법과 프로그래밍 패러다임을 함께 이 해하고 싶다면 이 책은 큰 도움이 될 것이다.
스위프트는 iOS와 macOS용 애플리케이션 개발에 주로 사용하는 프로그래밍 언어입니다. 그런 이유로 보통 스위프트 서적이 출간되면 애플 개발 관련 내용을 중심으로 스위프트를 다룹니다. 하지만 스위프트는 오픈 소스로 공개된 이후 다양한 분야에서 사용하려는 시도가 늘고 있습니다. 이러한 스위프트를 제대로 이해하려면 먼저 스위프트라는 프로그래밍 언어 고유의 특징을 잘 알아야 합니다.
이 책은 ‘스위프트를 제대로 이해하자’라는 콘셉트를 충실히 지키고자 스위프트의 기본 개념과 함께 함수형 및 프로토콜 지향 프로그래밍 패러다임을 이용하는 스위프트 프로그래밍 방법론을 소개합니다. 이러한 방법론을 다양한 예제를 코딩하면서 자연스럽게 익힐 수 있도록 했습니다. 또한 기존 『스위프트 프로그래밍』의 내용을 기반으로 2019년 3월 공개한 스위프트5 스펙에 맞춰 내용을 수정하고 보강했습니다.
★ Part 1. 스위프트 기초
스위프트의 역사와 언어의 특징을 소개하고 스위프트를 이해하는 데 반드시 필요한 최소한의 기본 문법을 설명합니다. 더불어 스위프트 코드를 작성하고 실행하는 IDE인 Xcode에 대한 간략한 개요를 살펴봅니다.
★ Part 2. 객체지향 프로그래밍과 스위프트
스위프트는 함수형 프로그래밍 패러다임을 강조하지만, 그 못지않게 객체지향 프로그래밍 패러다임도 매우 중요합니다. 애플의 프레임워크는 대부분 객체지향 프로그래밍 패러다임에 근간을 두므로 애플이 스위프트에서 객체지향 프로그래밍 패러다임을 배제하기는 어려웠을 겁니다. 따라서 iOS 및 macOS, tvOS, watchOS 등의 플랫폼 위에서 동작하는 애플리케이션을 작성하려면 객체지향 프로그래밍 패러다임에 대한 이해는 필수입니다. 이번에는 스위프트에서 객체지향 프로그래밍 패러다임을 활용할 수 있는 문법을 알아보겠습니다.
★ Part 3. 함수형 프로그래밍과 스위프트
애플은 자사 프레임워크를 모두 객체지향 패러다임으로 구현했습니다. 굳이 새로운 언어에 함수형 프로그래밍 패러다임을 도입할 필요가 없었죠. 하지만 애플은 스위프트를 발표하면서 스위프트를 함수형 프로그래밍 언어라고 표현했습니다. 함수형 프로그래밍은 대규모 병렬처리에 유리한 점, 스레드에 비교적 안전한 점, 콜백 등의 연관처리에 있어서 코드가 분산되는 것을 최소화할 수 있다는 등의 장점이 있습니다. 이런 특성을 객체지향 프로그래밍 패러다임에 더한 스위프트는 훨씬 완성도 높은 프로그래밍 언어로 자리매김할 수 있으리라 봅니다. 기존 애플의 프레임워크에 익숙한 개발자라면 지금부터 함수형 프로그래밍 패러다임의 장점을 익히길 권합니다. 그리고 스위프트의 강력한 기능을 활용하여 기존 객체지향 프로그래밍 패러다임만 사용했을 때 불편했던 부분의 코드를 개선해보도록 합시다.
★ Part 4. 확장
스위프트에서 타입의 기능을 확장하는 방법은 많습니다. 기능이나 속성을 물려받아 수직 확장할 수 있는 상속도 있고, 타입에 기능을 추가하여 수평적으로 확장할 수 있는 익스텐션도 있습니다. 다양한 확장 기법을 통해 타입을 더욱 유용하게 사용할 수 있도록 구성하는 방법을 알아봅시다.
★ Part 5. 스위프트 고급
지금까지는 스위프트의 기본 문법과 기능 위주로 살펴보았습니다. 이번 파트에서는 기본 문법과 더불어 스위프트를 더욱 강력하고 유용하게 사용하도록 도와줄 기능과 문법을 알아보겠습니다. 또한 메모리 관리를 위해 꼭 알아야 할 ARC(Automatic Reference Counting)에 대해 알아보고, 각종 오류를 제어하기 위한 오류처리 기법도 살펴보겠습니다.
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』, 『스위프트 프로그래밍』(이상 한빛미디어)이 있습니다.
예전에 우연찮게 봤던 오브젝티브-C 코드, 익숙한 분은 사용하는데 크게 어려운 게 없는 것처럼 말씀하셨지만, 복잡하지 않은 실행문조차 너무 거창하게 느꼈습니다. 개발하신 분의 코딩 스타일을 떠나서 언어 구문 자체가 사용하기에 만만치 않겠다는 느낌이었습니다.
스위프트 프로그래밍을 보면서, 그때 보았던 오브젝티브-C에 비하면 스위프트는 아주 심플하다는 느낌을 받았습니다.
스위프트를 읽어 나가면서 언어 설계자는 아마도 ... - null 때문에 고생을 많이 했다. - 비동기 처리하기 너무 불편해했다. 라는 생각이 들었었습니다. 다른 언어에서 아쉬웠거나 불편한 부분을 해소하는 스위프트만의 방식을 만날 수 있습니다. 개발의 편리함을 추구하다 너무 많은 것을 넣어버린 느낌도 살짝 듭니다.
프로그래밍을 스위프트로 시작한다면 전략을 잘 세우셔야 할 것 같습니다. 옆에서 도와줄 누군가가 있다면 가장 좋겠지만 그런 행운을 누릴 수 있는 분은 많지 않으리라 생각합니다. 한 번에 모두를 알 수 없다는 사실을 이해하셔야 합니다. 머리로는 끄덕끄덕 하지만 실제 진도를 나가면 답답한 순간을 수도 없이 만나게 될 것입니다. 설계한 사람들도 계속 개선하고 있는데, 처음 접하면 곳곳에서 막히는 건 당연한 것이니 조급해하지 않으셨으면 합니다.
프로그래밍을 해보셨던 분이 새로운 언어를 접하는데 크게 어려움을 느끼지 않는다면, 많은 경우 그것은 단지 새로운 언어의 문법이 기존에 알고 있던 언어의 문법과 비슷하다는 이유뿐이라 생각합니다. 새로운 언어를 이해한 게 아니라 언어가 가진 문법적인 서술 방식에 익숙할 뿐인 것입니다.
'타입 변수 할당' 순서를 가지는 스타일에 익숙하신 분들은 스위프트의 스타일이 생소할 수 있습니다. 이게 머리로는 이해하는데 기존 스타일이 워낙 눈에 익어 있다는 게 문제를 일으킵니다. 스위프트 코드가 조금 복잡해지기 시작하면 코드를 보다가도 어느 순간 기존에 익숙한 스타일과 헷갈려서 혼돈이 올 수 있습니다. 게다가 비슷한 개념인데 용어가 다르고 적용하는 형태가 같으면서도 다른 부분이 있으면 더 힘들 수 있습니다.
스위프트. 이 언어는 왜 이렇게 빠르게 버전업하는 것인가... 처음 공부하기 시작했을 때가 1.1 버전이었던 것을 기억하는데, 벌써 5.3 버전이라니... 'ㅅ')a 긁적.. // 이 글을 쓰는 이 순간에도 버전업이 되고 있겠지...
국내에서 출시된 스위프트 프로그래밍 도서 중 레퍼런스 서적으로 이 도서와 비교할 다른 선택지는 없다. 그나마 제이펍에서 몇년마다 출시되는 '핵심만 골라배우는 스위프트' 시리즈 도서가 앱 메이킹 튜토리얼 서적으로는 볼만한 편이지만, 스위프트 언어 자체에 대해 이렇게까지 다루는 도서는... 내 생각에 국내에서는 대안이 없다.
이러한 레퍼런스 서적류는 language document 의 내용을 그대로 가져와 번역하여 출판하는 경우가 꽤 있는데, 야곰 아저씨(?)는 좀 다르다.. 이 아저씨 분명히 열일하고 있다. 레퍼런스 서적 특성상, 읽기에는 건조한 편이고 필요할 때 해당 부분을 찾아 읽는 정도로 사용케 될 터인데, 그렇다고 해도 지루한 문체는 아니다. 'ㅅ')
필자는 몇번의 앱 개발 도중 1판, 2판, 3판 모두 살펴보았고,
실제로 앱 개발시에 이 도서들로부터 꽤나 도움을 받아왔다. 야곰 아저씨(?)께 심히 감사드린다.
스위프트 기초부터 확장, 고급을 공부할 수 있습니다. 아이폰 개발에 초점을 맞춘 스위프트를 풀어내기 보다는 프로그래밍을 스위프트로 할 수 있는 책인 것 같습니다. 그래서 완전 초심자보다는 프로그래밍 기본 문법을 한번은 훝어보고, 웹이든 안드로이드 모바일 앱이든 뭐든실제로 프로그램을 구현해본 경험이 있는 분이 읽으시면 좋을 것 같습니다. 그럼 이 책을 통해 스위프트만의 특징들을 알아가면서 그에 맞는 효율적인 프로그래밍에 대해 배울 수 있으니까 기존에 사용했던 언어와 비교하면서 재미있게 공부할 수 있습니다.
- 보통 IT 서적은 예제형(따라하기)과 레퍼런스 형으로 나뉘는데, 레퍼런스형에 가까운 책입니다. 하지만 각각의 레퍼런스의 예제들도 충분히 잘 구성되어 있습니다.
- SWIFT가 지향하는 여러가지 패러다임에 대해 충실하게 설명하고 있습니다.
- 레퍼런스 형의 책으로써 언어의 여러가지 면에서 다양하고 충실하게 잘 설명하고 있습니다.
- 특정 언어를 공부하는데 있어 더할 나위 없이 예제가 잘되어 있고, 정리가 잘되어 있는 책이나, 한가지 아쉬운점이 있습니다. 보통 언어를 다루는 기본서들 중에는 마지막에 응용프로그램을 실제로 간단하게 적용하는 예제가 포함되어 있는 경우도 있는데, 마지막 한장 정도는 실제 응용프로그램의 종합적인 예제 챕터가 있었으면 좀더 좋지 않았을까 생각해봅니다.
2. 소감요약
- SWIFT에 처음 진입하거나 현업에서 IOS개발자시면서 좀 더 언어적으로 더욱 업그레이드시키고자 하는 분들에게 적합한 책이라고 생각합니다.
스위프트는 애플에서 만든 언어로 보통 애플 전자제품에서 실행될 소프트웨어를 만들기 위해 사용된다.
컴파일 역시 맥 OS에 최적화 되어 있는 언어라(찾아보니 윈도우에서도 실행할 방법이 있긴 한 것 같지만) 쾌적하게 개발하려면 아무래도 애플에서 만든 컴퓨터가 있어야 한다는 부담이 있다. 문법 자체는 파이썬처럼 간단하고 배우기 쉽다지만 좀 다른 의미에서(?) 높은 진입장벽을 가진 언어인 것 같다.
iOS 개발에 관심이 생겨 읽어보았는데 상대적으로 최근에 나온 언어다보니 많이 쓰이는 프로그래밍 언어들의 온갖 장점을 합쳐놓은 듯 해서 매력적인 것 같다.
이 책은 기본적인 환경 설정부터 시작해 입문서 치고는 상당히 많은 30챕터에 걸쳐 스위프트 문법의 기초부터 고급까지 잘 설명해준다. 예제 코드도 정말 많다. swich를 예로들면 switch문의 다양한 활용법을 보여주는 예제만 10개 넘게 실려있다.
저자분이 iOS 교육 분야에서 워낙 유명하신 분이라 믿고 사도 될것 같은 책이다.
하지만 서문에 써있듯 요 책은 이미 다른 프로그래밍 언어를 사용해본 경험이 있는 사람을 주요 독자층으로 삼고 있다.
당장 1장부터 프로그래밍을 전혀 모르는 사람이 보면 다소 불친절하게 느껴질 내용이다.
이미 다른 분야의 개발을 해봤지만 iOS 개발에 도전해보기 위해 적절한 책을 찾는 사람에게 추천한다.
이 책을 읽을 때도 그런 느낌이었다. 이 언어의 기본부터 일정 패턴까지 훑어주겠다는 의도가 엿보였다.
그래서 꼼꼼한 느낌도 들었고, 하지만, 그렇기 때문에 재미는 덜 한 느낌이 드는 것도 사실이었다.
그래서 이 책은 한번 정독하기는 힘든 책이지만, 책 꽂이에서 쉽게 빼내어 버릴 수도 없는 책이다.
스위프트 프로그래밍에 조금이라도 연관되어 있다면, 언제든 이 책을 레퍼런스 삼아서 진행할 날이 분명이 올 것이라고 생각되기 때문이다.
그리고 이 책은 3판인데, 1판 2판 3판 흐름에 따라 책의 표지 컬러가 매번 바뀌었다.
버전에 따라 잘 바뀌는 스위프트 버전 올림이기 때문에, 나름 중요한 부분인것 같기도 하다.
앞에서 언급했듯이 이 책은 같은 책의 3판이다. 각 판마다 색이 다르게 되어있기 때문에 이러한 부분은 괜찮은 도입이라고 생각이 든다. 각각 스위프트 3, 스위프트 4, 스위프트 5를 다루고 있다.
이번에는 스위프트 5이다. 그리고 제목이 크게 차지하고 있기 때문에 한눈에 크게 들어오는것도 나쁘진 않았던것 같다. 다만 독자적인 이름이나 시리즈가 별도로 없는 느낌이라 아쉬웠다. 예전 RXJAVA와 같은 시리즈인듯 느낌은 든다.
지은이는 야곰이라는 필명을 사용하시는 분이다.
아마도 iOS와 관련해서는 이미 오랫동안 유명한 분인듯하다. 그래서 신뢰로 이 책을 읽기 시작하게 되는 느낌이 드는 부분이다.
머릿말에서 저자가 한 이야기 중에 와 닿는 부분이 있어서 발췌하였다.
사실 이건 스위프트 뿐 아니라 어떤 언어에도 해당되는 이야기이다. 당연히 사람은 자신이 알고있는 지식 기반으로 새로운 지식을 받아들이고, 그것으로 계속 지식을 확장해 나간다. 당연히 언어를 습득할 때도 마찬가지이다. 하지만, 스위프트를 배울 땐 그렇게 하지 말아달라는 뜻을 강조하였다. 사실 이 부분이 중요할 수 있는 것은, 모던언어를 배울 때도 마찬가지였지만 그렇게 하면 새로운 개념을 이해하기가 어려워진다. 자신의 패러다임을 바꿔야만 해당 언어에 대한 올바른 사용을 할 수 있게 된다. 한국어 기반으로 백번 영어를 끼워맞춰봐야 영어가 어느 한계에서 더 올라가지 않듯이, 새롭게 받아들어야 한다. 그것에 대해서 강조하였고, 그렇기 때문에 이것을 유의하고 볼 수 있었다.
이 책은 다음의 챕터로 구성되어 있다.
챕터는 30개나 된다. 그래서 파트 위주로 구분하여 생각하는게 좋다.
PART 1. 스위프트 기초
- CHAPTER 1. 스위프트
- CHAPTER 2. 스위프트 처음 시작하기
- CHAPTER 3. 데이터 타입 기본
- CHAPTER 4. 데이터 타입 고급
- CHAPTER 5. 연산자
- CHAPTER 6. 흐름 제어
- CHAPTER 7. 함수
- CHAPTER 8. 옵셔널
PART 2. 객체지향 프로그래밍과 스위프트
- CHAPTER 9. 구조체와 클래스
- CHAPTER 10. 프로퍼티와 메서드
- CHAPTER 11. 인스턴스 생성 및 소멸
- CHAPTER 12. 접근제어
PART 3. 함수형 프로그래밍과 스위프트
- CHAPTER 13. 클로저
- CHAPTER 14. 옵셔널 체이닝과 빠른 종료
- CHAPTER 15. 맵, 필터, 리듀스
- CHAPTER 16. 모나드
PART 4. 확장
- CHAPTER 17. 서브스크립트
- CHAPTER 18. 상속
- CHAPTER 19. 타입캐스팅
- CHAPTER 20. 프로토콜
- CHAPTER 21. 익스텐션
- CHAPTER 22. 제네릭
- CHAPTER 23. 프로토콜 지향 프로그래밍
PART 5. 스위프트 고급
- CHAPTER 24. 타입 중첩
- CHAPTER 25. 패턴
- CHAPTER 26. where 절
- CHAPTER 27. ARC
- CHAPTER 28. 오류처리
- CHAPTER 29. 메모리 안전
- CHAPTER 30. 불명확 타입
부록. A.B.C.D.E.F.G.H.I
( 챕터를 너무 잘개쪼갠 느낌이...)
첫 내용을 보면 오는 느낌처럼 매우 기본서 느낌이다. 실전예제중심이 아닐것 같은 느낌이 많이 드는 느낌이다. 교과서를 보면 재미는 없지만 필요하듯이, 이 책도 그러한 느낌이다.
예제를 수록한 부분도 같은 느낌이다. xcode를 동작하여 코드 테스트를 진행하기는 하였으나, 거의 인터프리터 언어 테스트 하듯이 작성해도 무방하다. 하나의 프로그램을 만드는 실전예제가 아닌, 각 언어 특성을 보기 위한 테스트 코드이기 때문이다. 그래서 기본에는 매우 도움이 되는 느낌이다. 복합적이지 않기 때문에 각 연산자의 특성을 순수하게 알 수 있도록 도와주었다.
이 책의 뒷면이다. 장점에 대해서도 담백하게 나와있다. 하지만, 조금 아쉽다. 서술형이라서 눈에 크게 들어오지 않았기 때문이다.
결론을 내보면
장점으로는
- 스위프트의 기본서를 찾는다면 이 책이 제격이다.
- 번역서가 아니기 때문에 오해를 할 부분이 크게 없으며, 저자에게 직접 질문하는 것도 편하다.
- 아주 상세하게는 아니겠지만, 할 수 있는 한 스위프트의 모든 것을 다뤘다.(범위 측면)
- 의지만 있다면 처음 입문부터, 고급 스킬까지 다룰 수 있도록 수록하였다.(난이도 측면)
아쉬운 점으로는
- 책이 재미가 좀 없다.(담백하고 건조한 느낌이 든다.)
- 실습하는 방법에 대한 가이드가 구체적인 편은 아니다.
- 무엇을 만들고자 하는 의도를 가지고 이 책을 접하기에 적절한 편은 아니다.
- 도표나 요약을 활용한 부분이 적고, 서술로 기입한 부분이 많아서 잘 눈에 띄지 않는 부분이 있을 수 있다.
이 책을 평가해보면 다음과 같다.
가격: 7 / 10
내용: 7 / 10
디자인: 5 / 10
구성: 7 / 10
저자: 야곰
추천 독자: iOS 개발을 위해 스위프트를 공부해야하는 개발자, 모던 언어 중 하나인 스위프트를 익히고 싶은 개발자(입문자에게는 어려울 수 있음)
C와 JAVA에 익숙한 나에게 애플의 언어인 스위프트는 어떤 다른점이 있을까 싶어 선택한 책이다.
책 표지에서부터 함수형, 프로토콜 지향 패러다임..?? 이건 뭐지하며 읽기 시작했다
스위프트에 대한 첫인상은 너무 낯선 개념들 그리고 낯선 문법들이었다 ㅋㅋ
책이 묵직한 만큼 알차게 내용이 꽉꽉 들어있고, 기억에남는 부분은
다양한 개발환경을 소개한다는 것?
자바 책들은 주로 이클립스를 사용한다고 하면서 이클립스 설치법 부터 주르륵 나오는데, 이책에서는 다양한 개발환경을 소개해줘서 좋았다. 아이패드에서 돌려볼수 있는 방법까지!
그리고 스위프트 언어의 특징(객체지향, 함수형, 프로토콜..등등)에 대해 먼저 설명해주면서 스위프트가 가진 특징을 먼저 소개해주는 부분이 신선했다. 중간중간 기존 언어들과의 비교도 있어서 독자들이 이해하는데 도움이 될 것 같다. 약간 사전같은 느낌이라 엄청 친절한 기초 책은 아니라는 생각이 들었다.(이건 내가 너무 프로그래밍 초보자라 그런 것 같기도..)
나는 iOS 앱을 만들고 싶어~ 스위프트 공부해야지! 하는 마음으로 사면 지루할 것이다. iOS 앱을 만들기 위한 책이 아니기 때문이다. 스위프트 언어에 대해 샅샅이 알고 싶은 사람들을 위한 책!
프로그래밍 입문자보다는 이미 어느정도 프로그래밍 개념이 있고, iOS 개발자로서 스위프트에 도전해보고 싶다거나, 최신 스위프트 책이 필요한 개발자들이 읽으면 좋을 것 같다. 대상 독자를 꼭 확인하고 사시길!
스위프트 어렵네..하고 읽다가 저자의 말을 다시 보게됐는데 기존언어의 기능에 스위프트를 대입하여 읽으면 난해할 것이라는 내용...ㅎㅎ
몇 해 전에 애플에서 발표한 언어라는 것을 기억하곤 있었는데 알고 보니 그때가 벌써 2014년 6월에 베타 버전의 존재를 세상에 발표했었네요. 그 뒤로 꾸준히 발전하여 2019년 9월에 Swift 5.1이 배포된 상태라고 합니다. 언어가 나온 지 5년 정도인데 이 책이 3판까지 나온 것을 보면 업데이트되는 부분에 대해 상당히 빠르게 대응하고 있다는 느낌을 받을 수 있습니다. 책 자체도 거의 580페이지의 분량을 가지고 있으며 Swift의 문법을 집중적으로 다룬 책입니다.
아직까지 맥에서 Xcode를 사용한 코딩을 해본 적이 없어서 조금 생소하긴 했습니다만 드디어 Xcode를 사용해 보네요.
몇 번인가 초급자, 입문자용 책들을 보다 보니 변수, 함수, 숫자, 문자, 불리언 등 일정 부분 비슷한 패턴을 발견하곤 합니다. 이전에 이런 개념조차 없을 당시에 비하면 많이 좋아진 것 같다는 생각을 하면서 책을 읽어 내려가지만, 책이 완전히 문법 위주로 이루어져 있기 때문에 재미있다고는 말 못 하겠네요. 이런 이유로 읽는데 진척이 별로 없는 것 같습니다. 꾸준함이 필요할 것 같습니다.
코드만으로는 이해가 잘 되지 않지만 이런 도식을 통해 이미지화시키면 좀 더 수월하게 이해가 되는 것 같습니다.
기존에 이미 스위프트를 경험하신 분들은 새롭게 바뀐 부분에 대해서, 처음 시작하시는 분들은 스위프트의 개념적인 부분을 시작으로 고급 기술까지 정리된 '스위프트 프로그래밍'을 읽어보시길 권합니다. 물론 끈기가 있으시다면 더더욱 좋겠죠?
Github Page
책에서 다루고 있는 소스를 다루고 있습니다.
유튜브
책을 보고 따라하면서 조금씩 지친다는 느낌을 받을 수 있습니다. 이럴 땐 유튜브 채널을 통해 진행하는 것도 좋은 방법일 것 같습니다.
이 책이 처음 나왔을 때 샀던 기억이 있다. 그때가 2017년도 1월달 쯤이엇나.. 아무튼 나는 그때 iOS개발에 한참 빠져있었어서 swift언어의 매력에 사로잡혀있었었다. 그래서 swift 언어를 비슷하게 개발해보고.. 했었다. 이번에 iOS앱을 보수해야 하는 상황이 생겨서 swift관련 래퍼런스 책이 필요했다. 최신 버전 swift에 맞게 책이 다시 개정되었다. 그래서 신청하게 되었다.항상 보는 부분이지만, 클로저 부분은 헷갈리는 것 같다. 내가 함수형 프로그래밍 언어에 친하지 않아서 항상 어려운 것 같다. 클로저가 진짜 써보면 좋다는 것을 느끼는 것 같다. C++에서도 요즘 람다를 많이 써먹고 있다. 이 책은 스위프트의 클로저와 함수형 프로그래밍에 대해서 상세히 설명해주고 있다. 친절해서 좋다.map, filter, reduce 3박자는 마치 삼위일체와 같다고나 할까,, 기존의 많은 for loop으로 작업해야 했던 것들을 쉽게 함수 몇번으로 코드를 엄청나게 줄일 수 있다는 점이 참 좋다. linq같은 기능인 것 같다. 근데 랭귀지에서 지원해주는 거라 걍 array에서 쓸 수 있는게 좋은 것 같다. 아무튼 오랜만에 스위프트 책을 보니까 문법이 참 독특하고 간단하고 쉬운 것 같다. 스위프트가 파이썬보다 훨씬 나은 것 같다. 좀 더 흥했으면 좋겠다ㅠㅠ 윈도우에 안돌아가는 것은 흠이다.
애플에서 Objective-C 다음으로 사용하는 언어가 스위프트(SWIFT)입니다. 애플에서 최근에 만든 프로그래밍 언어라 그런지 다양한 패러다임(개발 방법)을 지원합니다. 개발을 할 때 필요한 최신 기능을 거의 다 집어넣은 것 같네요. 이 스위프트를 배우려고 책을 고르면 아이폰 iOS 프로그래밍을 하기 위해 간단히 소개만 하는 경우가 많은데, 이번에 본 책은 조금 다릅니다. ‘SWIFT 스위프트 프로그래밍 3판’은 스위프트 언어만 집중해서 배울 수 있는 책입니다. 아이폰 개발을 바로 하고 싶은 분이라면 다른 책을 봐야겠지만, 이 책으로 스위프트를 제대로 정복한다면 아이폰 개발에도 큰 도움이 될 것입니다.
‘SWIFT 스위프트 프로그래밍 3판’은 스위프트 입문서, 기본서라고 할 수 있습니다. iOS, macOS, watchOS, tvOS 등 플랫폼에 종속되지 않고, 언어의 순수 기능을 집중해서 배울 수 있는 책입니다. 개발 환경은 다른 걸 사용해도 되지만 여기서는 맥에서 Xcode로 개발을 진행합니다.
책은 총 5개의 파트로 되어 있습니다. 각 파트에서 무얼 배우는지 키워드를 나열해보면 다음과 같습니다.
파트1 스위프트 기초
스위프트 역사, 데이터 타입, 연산자, 제어, 함수, 옵셔널
파트2 객체지향 프로그래밍과 스위프트
구조체, 클래스, 프로퍼티, 메서드, 인스턴스, 접근제어
파트3 함수형 프로그래밍과 스위프트
클로저, 옵셔널 체이닝, 빠른 종료, 맵, 필터, 리듀스, 모나드
파트4 확장
서브스크립트, 상속, 타입캐스팅, 프로토콜, 익스텐션, 제네릭, 프로토콜 지향 프로그래밍
파트5 스위프트 고급
타입 중첩, 패턴, where 절, ARC, 오류처리, 메모리 안전
하나의 언어를 제대로 공부를 한 사람이라면 거의 다 많이 들어본 내용들인데 옵셔널이나 프로토콜, 인스텍션 등은 최신 프로그래밍 스타일을 모르는 사람에게는 생소하게 느껴집니다. 이 책에 나오는 내용을 제대로 이해한다면 최신 개발 트렌드도 따라 잡을 수 있으리라 생각합니다.
보통 프로그래밍 언어 문법을 설명하는 책은 지루하고 딱딱하기 쉬운데 ‘SWIFT 스위프트 프로그래밍 3판’은 부드럽게 잘 읽히는게 특징입니다. 번역서가 아니라 우리나라 사람이 직접 지은 책이고, 3판까지 오면서 내용이 잘 다듬어져서 그런 것 같습니다.
이책은 정말 스위프트 프로그래밍을 제대로 입문하고 싶은 개발자에 맞게 설계된 책입니다. 처음 스위프트로 개발을 하는 사람에게 객체지향, 함수형, 프로토콜 지향 패러다임까지 한번에 학습 할수 있습니다. 프로그램 설치 부터 시작해서 코딩을 어떻게 해야 하는지 정확히 알려 줍니다. 개발자가 실수 할 부분이 있는 곳에 잘 설명을 해줍니다. 입문자의 눈높이에서 가장 많이 어려워 하는 부분에 대해서 잘 설명한 책입니다.
스위프트를 제대로 이해할수 있도록 기본 개념과 스위프트 프로그래밍 방법론을 상세히 설명 합니다. 예제 통해서 코딩을 하면서 자연스럽게 몸에 익힐수 있습니다.
이 책을 통해서 스위프트 프로그래밍 능력을 한단계 업그레이드 할수 있을 것이라 생각하여 강력 추천 합니다.