장바구니 담기 close

장바구니에 상품을 담았습니다.

스위프트 프로그래밍 Swift4

스위프트 프로그래밍 Swift4

  • 야곰
  • |
  • 한빛미디어
  • |
  • 2017-10-01 출간
  • |
  • 540페이지
  • |
  • 184 X 236 X 23 mm /963g
  • |
  • ISBN 9791162240052
판매가

32,000원

즉시할인가

28,800

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
28,800

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

스위프트를 제대로 이해하고 싶은 개발자를 위한 책
스위프트는 애플 관련 애플리케이션 개발에서 주로 사용하는 프로그래밍 언어입니다. 그런 이유로 보통 스위프트 서적이 출간되면 애플 개발 관련 내용을 중심으로 스위프트를 다룹니다. 하지만 스위프트는 오픈 소스로 공개된 이후 다양한 분야에서 사용하려는 시도가 늘고 있어, 스위프트를 제대로 이해하려면 스위프트라는 프로그래밍 언어 고유의 특징을 잘 알아야 합니다.

이 책은 ‘스위프트를 제대로 이해하자’라는 콘셉트를 충실히 지키고자 스위프트의 기본 개념과 함께 함수형 및 프로토콜 지향 프로그래밍 패러다임을 이용하는 스위프트 프로그래밍 방법론을 소개합니다. 이러한 방법론을 다양한 예제를 코딩하면서 자연스럽게 익힐 수 있도록 했습니다. 또한 기존 『스위프트 프로그래밍』의 내용을 기반으로 2017년 6월 공개한 스위프트 4 스펙에 맞춰 내용을 수정하고 보강했습니다.

★ Part 1. 스위프트 기초
스위프트의 역사와 데이터 타입, 연산자, 흐름 제어, 함수, 옵셔널 등 스위프트로 프로그래밍하는 데 꼭 필요한 기초 문법을 살펴봅니다. 특히 흐름 제어는 다른 프로그래밍 언어와 차이가 있으므로 반드시 살펴봐야 하는 부분입니다.

★ Part 2. 객체지향 프로그래밍과 스위프트
많은 프로그래머에게 익숙한 객체지향 프로그래밍 방식으로 스위프트를 사용하는 핵심 문법인 구조체, 클래스, 프로퍼티, 메서드, 인스턴스 등을 소개합니다.

★ Part 3. 함수형 프로그래밍과 스위프트
함수형 프로그래밍 패러다임으로 스위프트를 사용하는 데 필요한 핵심 문법이 모여 있습니다. 다른 프로그래밍 언어의 람다 개념인 클로저, 옵셔널로 지정된 객체지향 요소를 다루는 옵셔널 체이닝, 대부분의 함수형 프로그래밍 언어에서 등장하는 개념인 맵, 필터, 리듀스, 모나드 등을 소개합니다.

★ Part 4. 확장
스위프트에서 타입의 기능을 확장하는 방법은 많습니다. 기능이나 속성을 물려받아 수직 확장할 수 있는 상속도 있고, 타입에 기능을 추가하여 수평적으로 확장할 수 있는 익스텐션도 있습니다. 다양한 확장 기법으로 타입을 더욱 유용하게 사용할 수 있도록 구성하는 방법을 알아봅니다.

★ Part 5. 스위프트 고급
스위프트를 더욱 강력하고 유용하게 사용할 수 있도록 도와줄 고급 기능과 문법에 대해 알아봅니다. 메모리 관리를 위해 꼭 알아두어야 할 ARC, 각종 오류를 제어하는 기법도 살펴봅니다.

★ Etc Part. 동영상 강의도 만나보세요.
다음 3개 사이트에서 이 책의 무료 동영상 강의를 만나볼 수 있습니다.
-GitHub 페이지: https://yagom.github.io/swift_basic
-구름EDU: https://edu.goorm.io/lecture/1141/야곰의-스위프트-프로그래밍
-인프런: https://www.inflearn.com/course/스위프트-기본-문법

★ 대상 독자
-스위프트를 처음 배우는 현업 프로그래머
-기존 프로그래밍과 스위프트의 차이를 알고 싶은 대학생

목차

PART I 스위프트 기초

CHAPTER 1 스위프트
__1.1 스위프트의 역사
__1.2 스위프트의 언어적 특성
____1.2.1 객체지향
____1.2.2 함수형
____1.2.3 프로토콜 지향
__1.3 스위프트 실행 환경
____1.3.1 Xcode ? 플레이그라운드
____1.3.2 REPL
____1.3.3 웹
____1.3.4 모바일

CHAPTER 2 스위프트 처음 시작하기
__2.1 기본 명명 규칙
__2.2 콘솔 로그
____2.2.1 print() 함수
____2.2.2 문자열 보간법
__2.3 주석
____2.3.1 주석 남기기
____2.3.2 마크업 문법을 활용한 문서화 주석
__2.4 변수와 상수
____2.4.1 변수
____2.4.2 상수

CHAPTER 3 데이터 타입 기본
__3.1 Int와 UInt
__3.2 Bool
__3.3 Float과 Double
__3.4 Character
__3.5 String
____3.5.1 특수문자
__3.6 Any, AnyObject와 nil

CHAPTER 4 데이터 타입 고급
__4.1 데이터 타입 안심
____4.1.1 데이터 타입 안심이란
____4.1.2 타입 추론
__4.2 타입 별칭
__4.3 튜플
__4.4 컬렉션 타입
____4.4.1 배열
____4.4.2 딕셔너리
____4.4.3 세트
__4.5 열거형
____4.5.1 기본 열거형
____4.5.2 원시 값
____4.5.3 연관 값
____4.5.4 순환 열거형

CHAPTER 5 연산자
__5.1 연산자의 종류
____5.1.1 할당 연산자
____5.1.2 산술 연산자
____5.1.3 비교 연산자
____5.1.4 삼항 조건 연산자
____5.1.5 범위 연산자
____5.1.6 부울 연산자
____5.1.7 비트 연산자
____5.1.8 복합 할당 연산자
____5.1.9 오버플로 연산자
____5.1.10 기타 연산자
__5.2 연산자 우선순위와 결합방향
__5.3 사용자정의 연산자
____5.3.1 전위 연산자 정의와 구현
____5.3.2 후위 연산자 정의와 구현
____5.3.3 중위 연산자 정의와 구현

CHAPTER 6 흐름 제어
__6.1 조건문
____6.1.1 if 구문
____6.1.2 switch 구문
__6.2 반복문
____6.2.1 for-in 구문
____6.2.2 while 구문
____6.2.3 repeat-while 구문
__6.3 구문 이름표

CHAPTER 7 함수
__7.1 함수와 메서드
__7.2 함수의 정의와 호출
____7.2.1 기본적인 함수의 정의와 호출
____7.2.2 매개변수
____7.2.3 반환 타입
____7.2.4 데이터 타입으로서의 함수
__7.3 중첩 함수
__7.4 종료되지 않는 함수
__7.5 반환 값을 무시할 수 있는 함수

CHAPTER 8 옵셔널
__8.1 옵셔널 사용
__8.2 옵셔널 추출
____8.2.1 강제 추출
____8.2.2 옵셔널 바인딩
____8.2.3 암시적 추출 옵셔널

PART II 객체지향 프로그래밍과 스위프트

CHAPTER 9 구조체와 클래스
__9.1 구조체
____9.1.1 구조체 정의
____9.1.2 구조체 인스턴스의 생성 및 초기화
__9.2 클래스
____9.2.1 클래스 정의
____9.2.2 클래스 인스턴스의 생성과 초기화
____9.2.3 클래스 인스턴스의 소멸
__9.3 구조체와 클래스의 차이
____9.3.1 값 타입과 참조 타입
____9.3.2 스위프트의 기본 데이터 타입은 모두 구조체
__9.4 구조체와 클래스 선택해서 사용하기

CHAPTER 10 프로퍼티와 메서드
__10.1 프로퍼티
____10.1.1 저장 프로퍼티
____10.1.2 지연 저장 프로퍼티
____10.1.3 연산 프로퍼티
____10.1.4 프로퍼티 감시자
____10.1.5 전역변수와 지역변수
____10.1.6 타입 프로퍼티
____10.1.7 키 경로
__10.2 메서드
____10.2.1 인스턴스 메서드
____10.2.2 타입 메서드

CHAPTER 11 인스턴스 생성 및 소멸
__11.1 인스턴스 생성
____11.1.1 프로퍼티 기본값
____11.1.2 이니셜라이저 매개변수
____11.1.3 옵셔널 프로퍼티 타입
____11.1.4 상수 프로퍼티
____11.1.5 기본 이니셜라이저와 멤버와이즈 이니셜라이저
____11.1.6 초기화 위임
____11.1.7 실패 가능한 이니셜라이저
____11.1.8 함수를 사용한 프로퍼티 기본값 설정
__11.2 인스턴스 소멸

CHAPTER 12 접근제어
__12.1 접근제어란
____12.1.1 접근제어의 필요성
____12.1.2 모듈과 소스파일
__12.2 접근수준
____12.2.1 공개 접근수준, public
____12.2.2 개방 접근수준, open
____12.2.3 내부 접근수준, internal
____12.2.4 파일외부비공개 접근수준, fileprivate
____12.2.5 비공개 접근수준, private
__12.3 접근제어 구현
__12.4 접근제어 구현 참고사항
__12.5 private와 fileprivate
__12.6 읽기 전용 구현

PART III 함수형 프로그래밍과 스위프트

CHAPTER 13 클로저
__13.1 기본 클로저
__13.2 후행 클로저
__13.3 클로저 표현 간소화
____13.3.1 문맥을 이용한 타입 유추
____13.3.2 단축 인자 이름
____13.3.3 암시적 반환 표현
____13.3.4 연산자 함수
__13.4 값 획득
__13.5 클로저는 참조 타입
__13.6 탈출 클로저
____13.6.1 withoutActuallyEscaping
__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 복수 서브스크립트

CHAPTER 18 상속
__18.1 클래스 상속
__18.2 재정의
____18.2.1 메서드 재정의
____18.2.2 프로퍼티 재정의
____18.2.3 프로퍼티 감시자 재정의
____18.2.4 서브스크립트 재정의
____18.2.5 재정의 방지
__18.3 클래스의 이니셜라이저 ? 상속과 재정의
____18.3.1 지정 이니셜라이저와 편의 이니셜라이저
____18.3.2 클래스의 초기화 위임
____18.3.3 2단계 초기화
____18.3.4 이니셜라이저 상속 및 재정의
____18.3.5 이니셜라이저 자동 상속
____18.3.6 요구 이니셜라이저

CHAPTER 19 타입캐스팅
__19.1 기존 언어의 타입 변환과 스위프트의 타입 변환
__19.2 스위프트 타입캐스팅
__19.3 데이터 타입 확인
__19.4 다운캐스팅
__19.5 Any, AnyObject의 타입캐스팅

CHAPTER 20 프로토콜
__20.1 프로토콜이란
__20.2 프로토콜 정의
__20.3 프로토콜 요구사항
____20.3.1 프로퍼티 요구
____20.3.2 메서드 요구
____20.3.3 가변 메서드 요구
____20.3.4 이니셜라이저 요구
__20.4 프로토콜의 상속과 클래스 전용 프로토콜
__20.5 프로토콜 조합과 프로토콜 준수 확인
__20.6 프로토콜의 선택적 요구
__20.7 프로토콜 변수와 상수
__20.8 위임을 위한 프로토콜

CHAPTER 21 익스텐션
__21.1 익스텐션이란
__21.2 익스텐션 문법
__21.3 익스텐션으로 추가할 수 있는 기능
____21.3.1 연산 프로퍼티
____21.3.2 메서드
____21.3.3 이니셜라이저
____21.3.4 서브스크립트
____21.3.5 중첩 데이터 타입

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.2.1 강한참조 순환 문제
__27.3 약한참조
__27.4 미소유참조
__27.5 미소유참조와 암시적 추출 옵셔널 프로퍼티
__27.6 클로저의 강한참조 순환
____27.6.1 획득목록

CHAPTER 28 오류처리
__28.1 오류처리란
__28.2 오류의 표현
__28.3 오류 포착 및 처리
____28.3.1 함수에서 발생한 오류 알리기
____28.3.2 do-catch 구문을 이용하여 오류처리
____28.3.3 옵셔널 값으로 오류처리
____28.3.4 오류가 발생하지 않을 것이라고 확신하는 방법
____28.3.5 다시던지기
____28.3.6 후처리 defer

부록
__A. 스위프트의 주요 프로토콜
__B. 스위프트의 주요 함수
__C. 스위프트의 예약어
__D. 디버깅 식별자
__E. 컴파일러 제어 구문
____E.1 조건부 컴파일 블록
____E.2 라인 제어 구문
__F. 사용 가능 조건 확인
__G. 속성
____G.1 선언 속성
____G.2 타입 속성
__H. 타입 별칭 및 호환 타입

저자소개

저자 야곰은 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』, 『스위프트 프로그래밍』(이상 한빛미디어)이 있습니다.

도서소개

스위프트 4에 맞춰 개정한 스위프트의 A to Z!

스위프트 4의 핵심은 스위프트 3의 불편한 점을 개선해 ‘좀 더 편리하게 프로그래밍하자’입니다. 이를 위해 String 관련 편의성 증가, 여러 줄 리터럴 문법, 서브스크립트 문법 강화 등 언어 스펙을 변경했습니다. 다양한 예제를 접하면서 스위프트 4의 새로운 부분을 자연스럽게 익혀볼 수 있습니다. 프로그래밍 패러다임을 친절하게 설명합니다. 최근 주목받는 여러 프로그래밍 패러다임 중 스위프트에는 함수형 및 프로토콜 지향 프로그래밍의 개념이 포함되어 있습니다. 이 책은 두 패러다임에 맞춰 스위프트로 프로그래밍할 때 필요한 개념과 활용법을 자세하게 설명합니다. 스위프트 문법과 함께 프로그래밍 패러다임을 이해하는 데 큰 도움이 될 것입니다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.