리눅스에서 하는 스위프트 개발 (기본 문법부터 클로저, 프로토콜, HTTP 통신까지)

리눅스에서 하는 스위프트 개발 (기본 문법부터 클로저, 프로토콜, HTTP 통신까지)

$35.77
Description
리눅스에서 스위프트를 설치하는 방법부터 시작해, 스위프트의 전반적인 기능을 설명한다. 적절하고 풍부한 예제를 곁들어, 반드시 알아야 할 만한 내용을 정리하고 있어 쉽게 이해할 수 있다. 처음에 누구에게나 생소할 수 있는 옵셔널과 클로저도 잘 설명하는 책이다.
저자

존호프만

저자존호프만은20여년의정보통신분야경력이있다.20년이상시스템관리,네트워크관리,네트워크보안,애플리케이션개발,설계분야에서일했다.현재Syn-TechSystems에서시니어소프트웨어엔지니어로재직중이다.
2008년부터iOS플랫폼기반앱개발에깊이관여했다.그중,몇가지는앱스토어(AppStore)에등록된앱들과써드파티및수많은기업용애플리케이션을포함한다.정보통신분야의도전이야말로이끌어주는원동력이며,도전을이겨내는것보다더신나게하는일은아무것도없다.

목차

1장.스위프트첫걸음
__스위프트소개
____스위프트기능
____리눅스에스위프트설치
____스위프트언어문법
____주석
____세미콜론
____괄호
____중괄호
____할당연산자는값을반환하지않는다
____조건문과할당문에서공백문자는선택사항
__HelloWorld
__스위프트코드실행
__스위프트와스위프트REPL
__스위프트컴파일러
__스위프트패키지매니저사용
__스위프트편집기
__요약

2장.변수,상수,문자열,연산자
__변수와상수
____상수와변수선언
____타입안전
____타입추론
____명시적타입
____숫자타입
____불리언타입
____문자열타입
____옵셔널변수
____열거형
__연산자
____할당연산자
____비교연산자
____산술연산자
____나머지연산자
____복합할당연산자
____삼항조건연산자
____논리NOT연산자
____논리AND연산자
____논리OR연산자
__요약

3장.스위프트컬렉션과튜플
__스위프트컬렉션타입
__가변성
__배열
____배열생성과초기화
____배열요소액세스
____배열카운트
____빈배열검사
____배열요소추가
____배열요소삽입
____배열요소교체
____배열요소제거
____두배열합치기
____배열뒤집기
____배열에서서브배열검색
____배열요소한꺼번에변경
____배열알고리즘
____배열순회
__딕셔너리
____딕셔너리의생성과초기화
____딕셔너리값액세스
____딕셔너리의키-값카운팅
____빈딕셔너리
____키-값업데이트
____키-값쌍추가
____키-값쌍제거
__집합
____집합초기화
____집합에항목삽입
____집합의항목개수
____집합의항목포함여부체크
____집합순회
____집합에서항목제거
____집합연산
__튜플
__요약

4장.흐름제어와함수
__지금까지배운것
____중괄호
____괄호
__흐름제어
____조건구문
____for루프
____while루프
____switch문
____조건문에서의case와where문
____제어이동문
__함수
____단일파라미터함수
____다중파라미터함수
____파라미터기본값
____여러값반환함수
____옵셔널값반환
____외부파라미터명추가
____가변파라미터사용
____inout파라미터
____중첩함수
__종합예제
__요약

5장.클래스와구조체
__클래스와구조체
____클래스와구조체의유사점
____클래스와구조체의차이점
____값타입과참조타입
__클래스및구조체생성
____프로퍼티
____저장프로퍼티
____연산프로퍼티
____프로퍼티옵저버
____메소드
__커스텀이니셜라이저
____내부와외부파라미터명
____실패가능이니셜라이저
__상속
__메소드와프로퍼티오버라이딩
____메소드오버라이딩
____프로퍼티오버라이딩
____오버라이드방지
__프로토콜
__프로토콜문법
____프로퍼티요구사항
____메소드요구사항
__익스텐션
__메모리관리
____ARC작동방식
____강한참조순환
__요약

6장.프로토콜과프로토콜확장
__타입으로의프로토콜
__프로토콜의다형성
__프로토콜과타입캐스팅
__프로토콜확장
__요약

7장.프로토콜지향설계
__요구사항
__객체지향설계
__프로토콜지향설계
____프로토콜상속
____프로토콜컴포지션
____Animal:프로토콜지향설계
____프로토콜과where문
__요약

8장.에러처리기능을가진안전한코드작성
__스위프트2.0이전까지의예러처리
__네이티브에러처리
____에러표현
____에러던지기
____에러잡기
__요약

9장.커스텀서브스크립팅
__서브스크립트소개
__스위프트배열서브스크립트
__서브스크립트읽고쓰기
__읽기전용커스텀서브스크립트
__연산서브스크립트
__서브스크립트값
__서브스크립트외부이름
__다차원서브스크립트
__서브스크립트를쓰지않아야하는경우
__요약

10장.옵셔널타입
__옵셔널소개
__옵셔널을사용하는이유
____옵셔널선언
____옵셔널사용
__옵셔널체이닝
____nil병합연산자
__요약

11장.제네릭
__제네릭소개
__제네릭함수
__제네릭타입
__연관타입
__요약

12장.클로저
__클로저소개
__간단한클로저
__클로저간편문법
__스위프트배열알고리즘과함께사용하는클로저
__기능변경
__결과에따른클로저선택
__강한참조사이클생성
__요약

13장.C라이브러리
__모듈
__커스텀모듈생성
__Cpcap모듈생성
__Cpcap모듈사용
__리눅스manpages
__요약

14장.동시성과병렬성
__스위프트에서동시성과병렬성
__GCD
__헬퍼함수
__요약

15장.스위프트코어라이브러리
__애플URL로딩시스템
____URLSession
____URLSessionConfiguration
____URLSessionTask
____URL
____URLRequest
____HTTPURLResponse
____REST웹서비스
____HTTPGET요청만들기
____HTTPPOST요청만들기
__포매터
____DateFormatter
____NumberFormatter
____FileManager
__요약

16장.싱글보드컴퓨터와스위프트
__비글본블랙
__비글본블랙의확장헤더
__스위프트설치
__SwiftyBones3
__Sources디렉토리
__SwiftyBuild
__SBDigitalGPIO를이용한LED점멸
__SBAnalog타입과TMP36온도센서
__자율로봇
__요약

17장.스위프트형식과스타일가이드
__프로그래밍스타일가이드
__자신만의코딩스타일
____구문끝에세미콜론을쓰지마라
____조건문에서중괄호를뺀다
____이름짓기
____주석
____self키워드
____상수와변수
____옵셔널타입
____타입추론사용
____컬렉션간편선언
____다중if문대신switch문을사용하라
____주석처리된코드를그대로두지마라
__요약

18장.스위프트에서디자인패턴적용
__디자인패턴소개
__생성패턴
____싱글턴디자인패턴
____빌더디자인패턴
__구조디자인패턴
____브리지패턴
____파사드패턴
____프락시디자인패턴
__행위디자인패턴
____커맨드디자인패턴
____스트래티지패턴
__요약

출판사 서평

★이책에서다루는내용★

■리눅스플랫폼에서의스위프트
■스위프트언어의강력함
■적절한스위프트설계테크닉
■스위프트코어라이브러리의이해
■유명한디자인패턴구현
■C라이브러리연동
■싱글보드컴퓨터에서스위프트사용
■GCD를이용한애플리케이션동시성구현
■스위프트제네릭사용
■프로토콜지향디자인패러다임의이해

★이책의대상독자★

스위프트는애플이만든현대적이고빠른오픈소스언어다.이책은리눅스개발자가데스크톱과서버,임베디드리눅스플랫폼용애플리케이션을빠르게만들기위해스위프트사용법을배울수있다.읽고코딩하면서배우는데익숙하다면이책은당신을위한책이다.모든주제는예제코드를통해실력향상을도모할수있다.

★이책의구성★

1장,'스위프트첫걸음'에서는스위프트언어를간략히소개한다.기본스위프트언어문법과적절한언어스타일도알아본다.
2장,'변수,상수,문자열,연산자'에서는변수와상수사용법을알아본다.스위프트의여러가지데이터타입과연산자사용법도다룬다.
3장,'스위프트컬렉션과튜플'에서는관련데이터를저장하기위해컬렉션타입의사용법을알아본다.컬렉션에는딕셔너리와배열,집합이있다.
4장,'흐름제어와함수'에서는흐름제어와함수에대해알아본다.이후내용들을이해하기전에4장의개념을이해하는것은필수적이다.간단한HelloWorld예제가이책의목표는아니다.이책에서작성할모든애플리케이션은흐름제어문과함수에매우크게의존한다.
5장,'클래스와구조체'에서는클래스와구조체를비슷하게만들거나차이나게만드는것이무엇인지알아본다.또한접근제어와객체지향디자인에대해서도살펴본다.마지막으로스위프트의메모리관리에대해다룬다.
6장,'프로토콜과프로토콜확장'에서는프로토콜과프로토콜확장을매우자세히알아본다.프로토콜관련개념이스위프트에서매우중요하기때문에확실히이해하면유연하고재사용가능한코드를작성하는데도움이된다.
7장,'프로토콜지향설계'에서는스위프트로작성하는프로토콜지향설계모범사례를알아본다.또다른저서『Swift3Protocol-OrientedProgramming』(Packt,2016)도간략히소개한다.
8장,'에러처리기능을가진안전한코드작성'에서는스위프트의에러처리기능을알아본다.이는안전한코드를작성하기위해매우중요한부분이다.에러를처리하고대응할때는일관된방식이중요하다.단,사용자타입(customtypes)에서는이기능을반드시사용하지않아도된다.애플또한자체프레임워크에서에러처리기능을사용하기시작했다.여러분의코드에서도에러처리를사용하길강력히추천한다.
9장,'커스텀서브스크립팅'에서는클래스,구조체,열거문에서커스텀서브스크립트(CustomSubscript)를사용하는방법을알아본다.스위프트서브스크립트를사용해컬렉션요소를액세스할수있다.클래스와구조체,열거형에서커스텀서브스크립트를정의하는방법도다룬다.
10장,'옵셔널타입'에서는옵셔널의정의와옵셔널을벗기는방법,옵셔널체이닝에대해알아본다.초보스위프트개발자가처음만날가장혼란스러운개념중하나가바로이옵셔널일것이다.
11장,'제네릭'에서는코드중복을피하면서도매우유연하고재사용가능한코드를작성할수있는제네릭에대해알아본다.
12장,'클로저'에서는코드에서클로저를정의하고사용하는방법을알아본다.스위프트의클로저는오브젝티브C의블록과비슷하지만훨씬깔끔하고문법이쉽다.클로저사용시강한참조사이클을피하는방법도다룬다.
13장,'C라이브러리'에서는스위프트애플리케이션에서표준C라이브러리를링크하고사용하는방법을알아본다.이를통해스위프트개발자는리눅스개발자가사용할수있는동일한라이브러리를모두액세스할수있다.
14장,'동시성과병렬성'에서는GCD(GrandCentralDispatch)를사용해애플리케이션에동시성과병렬처리기능을추가하는방법을알아본다.앱에동시성이나병렬성을추가하면사용자경험이매우향상된다.
15장,'스위프트코어라이브러리'에서는파일읽고쓰기및네트워크기본요소,JSON파싱을포함하는라이브러리에대해알아본다.
16장,'싱글보드컴퓨터와스위프트'에서는IoT디바이스와로봇개발에스위프트를적용하는방법을알아본다.이때싱글보드컴퓨터를이용한다.
17장,'스위프트형식과스타일가이드'에서는스위프트언어스타일가이드를정의하고사용하는방법을알아본다.이는스타일가이드가필요한엔터프라이즈개발자를위한템플릿을만드는데도움이될것이다.기업대부분은자체개발한다양한언어에대한스타일가이드를갖고있기때문이다.
18장,'스위프트에서디자인패턴적용'에서는스위프트에서구현하는좀더일반적인디자인패턴을알아본다.디자인패턴은일반적인소프트웨어개발문제점을파악하고,이에대한대처법을제공한다.

★옮긴이의말★

이제는스위프트가애플생태계를벗어나려몸부림치는것이절실히느껴진다.이미오픈소스화된것도있겠지만,IBM에서도리눅스와스위프트를함께쓸수있는기술을적극적으로개발하고있다.스위프트로개발된IBM웹서버만보더라도스위프트는이제애플이라는회사에서만다루는폐쇄적인언어가아님을보여준다.
이책을통해애플플랫폼에서의개발경험과아무런상관없이리눅스에서애플리케이션및서버개발의기초를다질수있기를바란다.번역하면서가능한한원문의의도를곡해하지않으려많은노력을기울였다.특히번역하면오히려이상해지는문장은원문을병행표기했다.이책은백과사전식나열을지양하고필요한핵심을정리해준느낌이다.읽는데큰어려움이없겠지만,종종한번에이해되지않는부분도있을것이다.그런내용은반드시코딩해본후에읽어볼것을권한다.크게어려운개념은아니지만,코딩해보지않으면감이오지않는부분도있을것이다.저자도언급한사항이지만,특히옵셔널부분은더욱실습이필요한부분이다.코딩없이정독하는것은피아노교본만읽고연주를해보지않는것과비슷하다고생각한다.
사실상이책은입문서에해당하지만원제의‘Mastering’이뜻하는것처럼얕은지식전달에만그치지는않는다.1장부터순서대로읽어나가도큰무리는없을것이다.하지만스위프트를처음접하는경우나전체적인느낌을알고싶다면,우선빠르게일독하고흥미가가는내용부터다시읽어보길권한다.특히옵셔널,제네릭,클로저를처음접하는개발자도있을것인데,이주제는먼저읽어보고처음부터진도를나가는것도하나의방법이될수있을것이다.모쪼록스위프트를시작하는독자들에게이책이많은도움이되기를바란다.