스위프트 3의 새로운 기능 [신속한 마이그레이션을 위한 기능별 안내서]
- 원서명Swift 3 New Features (ISBN 9781786469632)
- 지은이키이스 엘리엇(Keith Elliott)
- 옮긴이김동호
- ISBN : 9788960779655
- 13,000원
- 2017년 01월 17일 펴냄 (절판)
- 페이퍼백 | 180쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/swift3-new-features)
요약
오브젝티브 C 또는 이전 버전의 스위프트로 개발된 프로젝트를 갖고 있는 개발자들이 자신의 프로젝트를 최신 버전으로 마이그레이션할 때 겪게 될 문제에 대한 설명과 해결책을 알려 준다. 스위프트에서 변경되거나 새로 도입된 사항의 핵심을 설명하며, 더 자세한 내용을 찾을 수 있는 리소스를 친절히 안내해 준다.
이 책에서 다루는 내용
■ 스위프트 2.2 프로젝트를 스위프트 3로 마이그레이션
■ 스위프트 패키지 관리자 이해
■ 오브젝티브 C에서 스위프트로 임포트할 때 코코아 라이브러리와 상호작용하는 방법
■ 스위프트 3의 새로운 함수와 연산자 소개
■ 스위프트 3에서 개선된 부동 소수점, 속성, 타입 작업 방법
■ 스위프트 API의 변경사항을 확인하고 오브젝티브 C 코드를 현재 API에서 다루는 방법
■ 스위프트 테스팅과 새로운 디버그 기능의 이해를 중심으로 새로운 기능 구현
■ 스위프트 3로 서버 사이드 애플리케이션 개발
이 책의 대상 독자
오브젝티브 C, 스위프트 2.x대 버전으로 개발프로젝트를 진행하고 있거나, 이미 완료된 프로젝트를 최신 버전으로 전환하고 싶은 개발자라면 이 책이 좋은 안내서가 될 것이다.
이 책의 구성
1장, ‘도대체 무슨 생각일까?’에서는 스위프트 3를 소개한다. 스위프트는 애플에게 중요한 언어며, 최근까지의 도입률은 놀랍다. 언어 변경 사항의 선택 방법과 커뮤니티에 기여하는 방법을 다룬다. 또한 Swift.org 사이트와 스위프트에서 발생한 모든 것을 저장하는 깃허브 페이지에 대해 다룬다.
2장, ‘신대륙 발견: 드디어 리눅스!’에서는 리눅스 머신에서 스위프트 애플리케이션을 개발하는 방법을 다룬다. 최근까지 스위프트는 맥에서만 개발할 수 있었지만, 스위프트 3는 리눅스 머신에서 스위프트 애플리케이션의 개발과 실행을 지원한다. 2장의 끝에서 맥과 리눅스 머신 양쪽에 개발 환경을 설치하는 방법을 다룬다. 또한 리눅스용 애플리케이션을 작성해본다.
3장, ‘스위프트 3로 마이그레이션’에서는 스위프트 마이그레이터를 사용해서 스위프트 2.2 프로젝트를 업그레이드하는 방법을 알려준다. 예제 프로젝트를 마이그레이터를 사용해 따라 해보고, 스위프트 프로젝트를 마이그레이션할 때 유용한 전략을 알아본다.
4장, ‘스위프트 핵심 변경에 대한 더 많은 궁금증’에서는 훌륭한 스위프트 API를 작성하기 위한 철학을 강조한다. 4장의 나머지 부분에서 오브젝티브 C와 C 코드를 스위프트 3로 가져와 스위프트 3에서 오브젝티브 C 기능을 사용하고 참조하는 언어의 개선된 부분을 다룬다.
5장, ‘함수와 연산자의 변화: 일 처리의 새로운 방법’에서는 함수 선언, 사용법에서 변화된 부분을 알아보고 더 나은 스위프트 코드로 바꾸는 방법을 검토한다. 또한 언어에서 제거된 몇 가지를 강조하고, 변화된 연산자에 대해 설명한다.
6장, ‘컬렉션과 클로저의 특별한 변화’에서는 스위프트 3에서 변경된 클로저와 컬렉션에 초점을 맞춘다. 컬렉션으로 작업하는 것을 더 재미있게 만들어줄 몇 가지 멋진 기능이 있다. 스위프트 2.2에서 클로저 생성을 혼란스럽게 만드는 부작용을 알아보고 스위프트 3에서 그것들을 어떻게 수정했는지 살펴본다.
7장, ‘타입의 발전된 변화’에서는 정기적으로 사용하지 않는 언어의 개선된 부분을 다룬다. 언세이프 포인터형과 타입 앨리어스, 부동 소수점 연산에 초점을 맞춘다.
8장, ‘파운데이션 프레임워크의 새로운 기능’에서는 새로운 Measurement와 유닛 API에 대해 알아본다. 이후에 measurement 과제를 처리하기 위한 준비를 더 잘하도록 개념 주입을 위해 남겨둔 몇 가지 예제를 사용한다.
9장, ‘엑스코드 서버와 LLDB 디버깅으로 코드 개선’에서는 엑스코드 서버의 지속적인 통합 능력과 테스트 작업 흐름을 향상시키기 위해 포함된 테스트 자동화 방법에 대해 다룬다. 후반부에서는 리눅스에서 코드를 디버깅하기 위한 LLDB 사용법을 설명한다.
10장, ‘서버에서의 스위프트 탐구’에서는 서버에서 스위프트를 실행하는 방법을 다룬다. 리눅스에서 스위프트가 실행되는 것은 매우 중요하고, 서버를 호스팅하고 실행하는 리눅스의 인기는 특별하다. 스위프트 3는 iOS, macOS, tvOS, watchOS용 애플리케이션을 만들기 위해 동일한 스위프트를 사용해 개발자들이 서버 사이드 애플리케이션을 개발할 수 있는 가능성을 열었다. 10장의 끝에서는 리눅스 박스에서 원활하게 실행되는 스위프트로 완벽하게 작성된 서버 사이드 앱을 갖게 될 것이다.
목차
목차
- 1장, 도대체 무슨 생각일까?
- 스위프트 3에 대한 애플의 목표
- 오픈소스 스위프트
- 스위프트에 기여
- 스위프트 발전 과정
- 스위프트 3의 승인된 제안 개요
- 요약
- 2장, 신대륙 발견: 드디어 리눅스!
- 스위프트 다운로드
- 맥용 스위프트 3
- 리눅스용 스위프트 3
- REPL 사용
- 스위프트 패키지 관리자
- 첫 번째 스위프트 프로그램
- 요약
- 3장, 스위프트 3으로 마이그레이션
- 프로젝트 마이그레이션 방법
- 옵션 1: 스위프트 3으로 마이그레이션
- 옵션 2: 스위프트 2.3으로 마이그레이션
- 사전 계획
- 스위프트 마이그레이션 도구로 마이그레이션
- 문제 해결을 위한 빠른 전략
- 요약
- 프로젝트 마이그레이션 방법
- 4장, 스위프트 핵심 변경에 대한 더 많은 궁금증
- 그랜드 리네이밍
- 스위프트 3에서 오브젝티브C 코드 참조
- getter,setter 속성으로 오브젝티브C 셀렉터 참조[SE-0064]
- 오브젝티브C 키 경로 참조[SE-0062]
- 스위프트 3에 오브젝티브C 및 C API에서 코드 가져오기
- 스위프트 타입으로 오브젝티브C 상수 가져오기[SE-0033]
- 구조체로 가져오기
- 열거형으로 가져오기
- 오브젝티브C 경량 제네릭 가져오기[SE-0057]
- 멤버로 가져오기[SE-0044]
- 이니셜라이저 정의
- 게터와 세터 생성
- 메소드 추가
- 정적 변수 생성
- 스위프트 타입으로 오브젝티브C 상수 가져오기[SE-0033]
- 요약
- 그랜드 리네이밍
- 5장, 함수와 연산자의 변화: 일 처리의 새로운 방법
- 함수 선언의 변화
- 일관성 있는 매개변수 레이블링[SE-0046]
- 선언 시 커링 함수 구문 제거[SE0002]
- 기본적으로 미사용 결과에 대한 경고[SE-0047]
- 함수 매개변수 목록에서 var 제거[SE-0003]
- ++, -- 연산자 제거[SE-0004]
- C 스타일 반복문 제거[SE-0007]
- 함수에서 암시적인 튜플 스플랫 제거[SE-0029]
- 타입 지정 시 조정된 inout 선언[SE-0031]
- 속성 인수에 대해 등호를 콜론으로 변환[SE-0040]
- 괄호가 필요한 함수 인수 구문 표준화[SE-0066]
- 기본 매개변수의 순서 강제[SE-0060]
- 오브젝티브C를 위한 선택적 요구 사항 만들기[SE-0070]
- 일관성 있는 매개변수 레이블링[SE-0046]
- 요약
- 함수 선언의 변화
- 6장, 컬렉션과 클로저의 특별한 변화
- 컬렉션과 시퀀스 타입의 변경
- 선택적 시퀀스를 위한 지연 FlatMap[SE-0008]
- 시퀀스에 first(where:) 메소드 추가[SE-0032]
- sequence(first: next:)와 sequence(state: next:) 추가[SE-0094]
- 새로운 collections,indices 모델[SE-0065]
- 컬렉션 프로토콜 소개
- 컬렉션 프로토콜 따르기
- 새로운 범위와 연관 인덱스 타입
- 짧은 시사점
- 스위프트 3 클로저 변화
- @noescape 클로저의 inout 캡처 제한[SE-0035]
- 해결
- 기본으로 비이스케이핑 클로저 만들기[SE-0103]
- 요약
- 컬렉션과 시퀀스 타입의 변경
- 7장, 타입의 발전된 변화
- Unmanaged, UnsafePointer의 변화
- UnsafePointer 사용을 위한 Unmanaged 변경[SE-0017]
- Optional을 사용한 명시적 UnsafePointer 만들기[SE-0055]
- UnsafeRawPointer 추가[SE-0107]
- 타입 별칭과 프로토콜 변화
- 제네릭 타입 별칭[SE-0048]
- 프로토콜에서의 타입 별칭과 프로토콜 확장[SE-0092]
- 부동소수점 변화
- 향상된 부동소수점 프로토콜[SE-0067]
- 부동소수점 프로토콜의 새로운 반올림 함수[SE-0113]
- 요약
- Unmanaged, UnsafePointer의 변화
- 8장, 파운데이션 프레임워크의 새로운 기능
- 가변성과 파운데이션 값 타입
- 값 타입과 참조 타입
- 중첩 열거형
- 강력한 문자열 열거형
- 클래스 속성
- 안전한 값 타입 접근
- Measurement와 Unit
- Measurement
- Unit과 Dimension
- 사용자 정의 유닛
- 사용자 정의 Dimension 타입
- 변환 함수
- measurements 포매팅
- 요약
- 9장, 엑스코드 서버와 LLDB 디버깅으로 코드 개선
- 엑스코드 서버의 지속적인 통합 개요
- 봇 기능
- 봇 모니터링과 관리
- 엑스코드 서버 설정
- 엑스코드 서버에 저장소 추가
- 봇 설정
- 통합 실행 관리와 모니터링
- LLDB로 디버깅
- LLDB 명령어 구문
- 중단점 관리
- 중단점 생성
- 중단점 나열
- 중단점 수정
- 중단점 활성/비활성화
- 중단점 삭제
- 명령어 별칭
- 요약
- 엑스코드 서버의 지속적인 통합 개요
- 10장, 서버에서의 스위프트 탐구
- IBM 스위프트 패키지 카탈로그
- 서버 프로젝트 소개
- 프로젝트 설명과 의존성
- 환경과 프로젝트 설정
- Vapor 프레임워크
- 라우팅
- 뷰 생성
- 공개 리소스
- shop view 정의
- 슬랙 통합
- 사용자 정의 통합 만들기
- 슬랙에 게시할 서버 업데이트
- 요약