품목정보
발행일 | 2019년 10월 01일 |
---|---|
쪽수, 무게, 크기 | 580쪽 | 183*235*35mm |
ISBN13 | 9791162242223 |
ISBN10 | 1162242221 |
발행일 | 2019년 10월 01일 |
---|---|
쪽수, 무게, 크기 | 580쪽 | 183*235*35mm |
ISBN13 | 9791162242223 |
ISBN10 | 1162242221 |
[PART I 스위프트 기초] CHAPTER 1 스위프트 __1.1 스위프트의 역사 __1.2 스위프트의 언어적 특성 __1.3 스위프트 실행 환경 CHAPTER 2 스위프트 처음 시작하기 __2.1 기본 명명 규칙 __2.2 콘솔 로그 __2.3 주석 __2.4 변수와 상수 CHAPTER 3 데이터 타입 기본 __3.1 Int와 UInt __3.2 Bool __3.3 Float과 Double __3.4 Character __3.5 String __3.6 Any, AnyObject와 nil CHAPTER 4 데이터 타입 고급 __4.1 데이터 타입 안심 __4.2 타입 별칭 __4.3 튜플 __4.4 컬렉션형 __4.5 열거형 CHAPTER 5 연산자 __5.1 연산자의 종류 __5.2 연산자 우선순위와 결합방향 __5.3 사용자 정의 연산자 CHAPTER 6 흐름 제어 __6.1 조건문 __6.2 반복문 __6.3 구문 이름표 CHAPTER 7 함수 __7.1 함수와 메서드 __7.2 함수의 정의와 호출 __7.3 중첩 함수 __7.4 종료되지 않는 함수 __7.5 반환 값을 무시할 수 있는 함수 CHAPTER 8 옵셔널 __8.1 옵셔널 사용 __8.2 옵셔널 추출 [PART II 객체지향 프로그래밍과 스위프트] CHAPTER 9 구조체와 클래스 __9.1 구조체 __9.2 클래스 __9.3 구조체와 클래스의 차이 __9.4 구조체와 클래스 선택해서 사용하기 CHAPTER 10 프로퍼티와 메서드 __10.1 프로퍼티 __10.2 메서드 CHAPTER 11 인스턴스 생성 및 소멸 __11.1 인스턴스 생성 __11.2 인스턴스 소멸 CHAPTER 12 접근제어 __12.1 접근제어란 __12.2 접근수준 __12.3 접근제어 구현 __12.4 접근제어 구현 참고사항 __12.5 private와 fileprivate __12.6 읽기 전용 구현 [PART III 함수형 프로그래밍과 스위프트] CHAPTER 13 클로저 __13.1 기본 클로저 __13.2 후행 클로저 __13.3 클로저 표현 간소화 __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 복수 서브스크립트 __17.4 타입 서브스크립트 CHAPTER 18 상속 __18.1 클래스 상속 __18.2 재정의 __18.3 클래스의 이니셜라이저 - 상속과 재정의 CHAPTER 19 타입캐스팅 __19.1 기존 언어의 타입 변환과 스위프트의 타입 변환 __19.2 스위프트 타입캐스팅 __19.3 데이터 타입 확인 __19.4 다운캐스팅 __19.5 Any, AnyObject의 타입캐스팅 CHAPTER 20 프로토콜 __20.1 프로토콜이란 __20.2 프로토콜 채택 __20.3 프로토콜 요구사항 __20.4 프로토콜의 상속과 클래스 전용 프로토콜 __20.5 프로토콜 조합과 프로토콜 준수 확인 __20.6 프로토콜의 선택적 요구 __20.7 프로토콜 변수와 상수 __20.8 위임을 위한 프로토콜 CHAPTER 21 익스텐션 __21.1 익스텐션이란 __21.2 익스텐션 문법 __21.3 익스텐션으로 추가할 수 있는 기능 CHAPTER 22 제네릭 __22.1 제네릭 함수 __22.2 제네릭 타입 __22.3 제네릭 타입 확장 __22.4 타입 제약 __22.5 프로토콜의 연관 타입 __22.6 제네릭 서브스크립트 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.3 약한참조 __27.4 미소유참조 __27.5 미소유참조와 암시적 추출 옵셔널 프로퍼티 __27.6 클로저의 강한참조 순환 CHAPTER 28 오류처리 __28.1 오류처리란 __28.2 오류의 표현 __28.3 오류 포착 및 처리 CHAPTER 29 메모리 안전 __29.1 메모리 접근 충돌의 이해 __29.2 입출력 매개변수에서의 메모리 접근 충돌 __29.3 메서드 내부에서 self 접근의 충돌 __29.4 프로퍼티 접근 중 충돌 CHAPTER 30 불명확 타입 부록 __A. 스위프트의 주요 프로토콜 __B. 스위프트의 주요 함수 __C. 스위프트의 예약어 __D. 디버깅 식별자 __E. 컴파일러 제어 구문 __F. 사용 가능 조건 확인 __G. 속성 __H. 타입 별칭 및 호환 타입 __I. 알아두면 유용한 타입 |
비슷한 게 많을수록 다른 점도 많이 보인다.
예전에 우연찮게 봤던 오브젝티브-C 코드, 익숙한 분은 사용하는데 크게 어려운 게 없는 것처럼 말씀하셨지만, 복잡하지 않은 실행문조차 너무 거창하게 느꼈습니다. 개발하신 분의 코딩 스타일을 떠나서 언어 구문 자체가 사용하기에 만만치 않겠다는 느낌이었습니다.
스위프트 프로그래밍을 보면서, 그때 보았던 오브젝티브-C에 비하면 스위프트는 아주 심플하다는 느낌을 받았습니다.
스위프트를 읽어 나가면서 언어 설계자는 아마도 ...
- null 때문에 고생을 많이 했다.
- 비동기 처리하기 너무 불편해했다.
라는 생각이 들었었습니다.
다른 언어에서 아쉬웠거나 불편한 부분을 해소하는 스위프트만의 방식을 만날 수 있습니다.
개발의 편리함을 추구하다 너무 많은 것을 넣어버린 느낌도 살짝 듭니다.
프로그래밍을 스위프트로 시작한다면 전략을 잘 세우셔야 할 것 같습니다.
옆에서 도와줄 누군가가 있다면 가장 좋겠지만 그런 행운을 누릴 수 있는 분은 많지 않으리라 생각합니다.
한 번에 모두를 알 수 없다는 사실을 이해하셔야 합니다.
머리로는 끄덕끄덕 하지만 실제 진도를 나가면 답답한 순간을 수도 없이 만나게 될 것입니다.
설계한 사람들도 계속 개선하고 있는데, 처음 접하면 곳곳에서 막히는 건 당연한 것이니 조급해하지 않으셨으면 합니다.
프로그래밍을 해보셨던 분이 새로운 언어를 접하는데 크게 어려움을 느끼지 않는다면, 많은 경우 그것은 단지 새로운 언어의 문법이 기존에 알고 있던 언어의 문법과 비슷하다는 이유뿐이라 생각합니다.
새로운 언어를 이해한 게 아니라 언어가 가진 문법적인 서술 방식에 익숙할 뿐인 것입니다.
'타입 변수 할당' 순서를 가지는 스타일에 익숙하신 분들은 스위프트의 스타일이 생소할 수 있습니다.
이게 머리로는 이해하는데 기존 스타일이 워낙 눈에 익어 있다는 게 문제를 일으킵니다. 스위프트 코드가 조금 복잡해지기 시작하면 코드를 보다가도 어느 순간 기존에 익숙한 스타일과 헷갈려서 혼돈이 올 수 있습니다.
게다가 비슷한 개념인데 용어가 다르고 적용하는 형태가 같으면서도 다른 부분이 있으면 더 힘들 수 있습니다.
그럼에도 불구하고,
익숙한 것과 조금 거리를 두면 새로운 세상이 보인다면 괜찮지 않나요?
초급을 위한 책이기 때문에 온라인 동영상 강의가 마련되어 있는데 4군데에서 볼 수 있다.
주석 남기기 부분을 보자면
[주석: 소스코드에 정보를 남기는 목적
Xcode: 말풍선의 형태, 레퍼런스 문서의 요약을 보여주는 퀵헬프 기능 있음]
라 설명이 되어있고 코드에 관한 설명을 해준다.
Xcode가 궁금해지면 영어단어책처럼 뒤쪽에 있는 찾아보기에서 용어를 찾으면 된다.
Xcode는 애플의 통합 개발 환경인 Xcode는 플레이그라운드 실행 모드가 자동인데 수동으로도 변경할 수도 있다.
그림을 삽입해 주어 훨씬 보기가 편하고 형광펜 비침은 없었다.
REPL의 단축키라든지 많이 사용하는 특수문자를 표로 만들어 준 부분도 있기 때문에 이 부분만 보고 암기하기에도 유용하다.
스위프트 코드는 macOS뿐만 아니라 웹과 모바일에서도 이용 가능한데 틀린 부분을 수정하기도 매우 편리했다.
스위프트는 테일러 스위프트만 알았지 다른 책에 비해 초급이길래 선택을 했는데 확실히 이해하기 편했다.
기본에 충실한 책이라 따라 하기도 훠얼씬 수월했고 이해하기도 어렵지 않았다.
굳이 더 보완할 점이 있다면 예시로 들어준 오류코드 설명 다음에 맞게 고치면 어떤 코드가 되는지도 있으면 초보자는 더욱 비교하기 편할 것 같다.
이 책은 스위프트 언어에 대해 매우 잘 다루고 있다.
몇 권의 iOS 앱 개발 책이나 스위프트 책을 봤었지만 이 책만 큼 스위프트라는 언어를 잘 설명한 책은 없었던 것 같다.
또한 swift언어의 버전이 어떻게 변해왔는지도 대해 간략히 설명을 하고 있어 이전 버전과 비교해 볼수 있다.
iOS앱을 개발하기 위해서는 다양한 방법이 있다.
objective-c, swift, react native, flutter 등 하지만 objective-c와 swift를 모르면은 예외 사항에 대한 대처가 힘들 수 있다.
또한 최근에는 objective-c는 거의 사용을 안하고 스위프트를 많이 사용한다.
그만큼 스위프트를 모르고는 iOS앱을 개발하는데 문제가 발생할 수 있다.
하지만 이 책은 앱을 개발하는 방법을 알려주는 책은 아니다.
만약 전반적인 iOS 앱 개발 하는 방법을 공부하고 싶은 사람이라면 다른 책을 봐야 한다.
이 책은 스위프트라는 프로그래밍 언어에 대해 다루고 있는 책이다.
초중급 iOS 및 스위프트 개발자라면 이 책을 강력히 추천한다.
스위프트 개발을 위한 레퍼런스 책으로 하나 두면 좋을듯 하다.