이미 소장하고 있다면 판매해 보세요.
|
Chapter1 Swift 소개 및 준비
Playground에서 놀자 개발자 등록 및 Xcode의 설치 Objective-C와의 차이점 정리 Chapter2 변수와 상수 변수(Variable) 배열과 딕셔너리(dictionary) 자료형 상수(Constant) 정리 Chapter3 제어문 조건문 if문 if-else문 if-else if-else문 switch-case문 Swift에서 제공하는 switch-case문의 특별한 기능들 반복문 for문 제어변수의 초기화 제어변수의 제어 조건 제어변수의 연산 Swift에서 제공하는 특별한 for문의 기능 while문 do-while문 정리 Chapter4 연산자와 문자열 연산자 문자(Character)와 문자열(String) 정리 Chapter5 컬렉션 배열(Array) 배열의 액세스 방법 배열의 항목 개수 배열이 비어 있는지 검사 배열의 항목 추가 배열의 인덱스 특정 위치에 항목 삽입 특정 위치에 항목 삭제 배열의 이터레이션(iteration) 배열의 생성과 초기화 다중 배열(Multidimensional Array) 딕셔너리(Dictionary) 딕셔너리의 항목 개수 딕셔너리의 항목 추가 딕셔너리의 항목 업데이트 딕셔너리에서 항목의 삭제 딕셔너리의 이터레이션 딕셔너리의 생성과 초기화 정리 Chapter6 함수 함수의 기본적인 사용 가장 기본적인 함수의 형태 두 개의 파라미터를 갖는 함수 형태 두 개 이상의 파라미터를 갖는 함수 두 개 이상의 리턴값을 갖는 함수 리턴값의 이름 함수의 특별한 사용 외부 파라미터 이름 동일한 외부와 내부 파라미터 이름 사용 디폴트 파라미터 값 In-Out 파라미터 함수 타입(Function Type) 파라미터로 함수의 사용 리턴으로 함수의 사용 함수 내부에서의 함수의 사용 정리 Chapter7 클로저 클로저 표현식(Closure Expressions) backwards() 함수 isCount() 함수 클로저의 축약 기능 기본적 클로저 코드 자료형의 삭제 키워드 return의 삭제 shorthand arguments name의 사용 파라미터의 삭제 트레일링 클로저(Trailing Closure) 변수의 캡쳐(Capturing Values) 정리 Chapter8 열거형, 구조체 그리고 클래스 열거형(Enumerations) 구조체(Structure)와 클래스(Class) 구조체와 클래스의 차이점 : 복사(copy)와 참조(reference) 구조체와 클래스의 차이점 : 초기화 구조체와 클래스의 차이점 : let으로 정의한 경우 구조체와 클래스의 차이점 : 동일 연산자의 사용 정리 Chapter9 속성과 메서드 속성(Property) 저장 속성(Stored Property) 레이지 저장 속성(lazy stored property) 연산 속성(Computed Property) 속성 옵저버(Property Observer) 타입 속성(Type Property) 메서드(Method) 인스턴스 메서드(Instance Method) 타입 메서드(Type Method) 정리 Chapter10 서브스크립트와 상속 서브스크립트(Subscript) 상속(Inheritance) 정리 Chapter11 이니셜라이즈와 디이니셜라이즈 이니셜라이즈(Initialize) 이니셜라이즈 파라미터 옵셔널(Optional) 속성 상수 속성의 변경 다른 이니셜라이즈의 호출 디이니셜라이제이션(Deinitialization) 정리 Chapter12 자동 참조 카운팅 인스턴스의 생성과 해제, 그리고 ARC의 기능 인스턴스의 생성과 해제 스트롱 참조 사이클(String reference cycle) 위크 참조(weak reference) 언노운 참조(unknown reference) 정리 Chapter13 익스텐션과 프로토콜 익스텐션(Extension) 기존 자료형의 확장 이니셜라이즈의 확장 메서드의 확장 인스턴스를 수정하는 익스텐션 서브스크립트 중첩 타입 프로토콜(Protocols) 정리 Chapter14 제네릭 제네릭(Generic)의 정의 정리 |
|
2014년 6월 애플에서 매년 개최했던 개발자 콘퍼런스인 WWDC 2014에서 초대박 사고를 쳤다. 매년 개최했던 행사에서는 주로 새로운 iOS나 Mac OS를 발표해왔다. 더욱이 올해는 애플에서 대형 스크린을 장착한 아이폰을 발표할지도 모른다는 루머와 아이워치와 같은 색다른 사용자 경험이 가능한 새로운 디바이스를 발표할지도 모른다는 루머가 끊임없이 돌았다. 그러나, 정작 WWDC 2014의 주인공은 새로운 아이폰도 아이워치도 아닌 Swift라는 새로운 프로그래밍 언어가 차지해버렸다.
지금까지 애플은 아이폰 개발이나 맥용 애플리케이션 개발을 위해 Objective-C라는 프로그래밍 언어를 사용해왔다. 1984년에 탄생한 Objective-C는 C 언어만큼은 아니지만 C++ 보다는 오래된 프로그래밍 언어다. 그동안 애플에서 C++이나 Java, 혹은 다른 새로운 언어가 아닌 Objective-C를 지금까지 사용해온 이유는 깐깐한(?) 언어이기 때문이다. 물에 물 탄 듯, 술에 술 탄 듯하지 않고 깐깐한 프로그래밍 문법이야말로 Objective-C의 가장 큰 장점 중의 하나다. 그러나, 가는 세월에 장사 없는 법이다. 아무리 애플이라고 하더라도 나날이 발전해가는 기술을 따라가기 위해서는 더는 깐깐함만을 고집할 수는 없다. 경쟁자인 구글은 구글 글라스와 무인 자동차를 출시했거나 1년 안에 출시할 계획이고, 또 다른 경쟁자인 삼성은 시계를 기반으로 한 웨어러블 디바이스 제품을 내놓은 지 일 년이 훌쩍 넘어버렸다. 그만큼 하루가 지나가면 새로운 기술이 쏟아지는 세상이다. Objective-C가 등장한 1984년에는 영화에서나 볼 수 있었던 기술이 이제는 손에 잡히는 기술이 돼버린 것이다. 애플은 지난 수 십년 동안 애플의 디바이스의 애플리케이션 개발을 위해 프로그래밍 언어로 Objective-C를 고집해왔던 자세를 버리고 2014년 WWDC에서 새로운 패러다임이 듬뿍 담긴 Swift라는 언어를 발표하기에 이르렀다. 그렇다고 Swift가 Objective-C 언어가 갖고 있던 깐깐함을 버린 것은 아니다. Objective-C의 깐깐함, C언어의 간결함, C++의 객체지향, 거기에 Java의 확장성까지 근래에 사용되고 있는 많은 프로그래밍 언어들의 장점만을 모아 새로운 프로그래밍 언어로 만들어냈다. Swift = Object-Oriented Programming + Functional Programming Swift 언어의 특징을 한 문장으로 요약하라고 하면 “객체지향 프로그래밍 + 함수형 프로그래밍”이라고 할 수 있다. 객체지향 프로그래밍에 대해서는 이미 익숙할 테고 함수형 프로그래밍이란 무엇일까? 함수형 프로그래밍은 개념이 발표된 것은 1960년대이지만 근래에 다양한 프로그래밍 언어에 도입되고 있는 가장 핫(hot)한 프로그래밍 개념 중의 하나다. 클로저(Clojure), 라켓(Racket), 얼랭(Erlang), 오캄(OCaml), 해스켈(Haskell), 그리고 스칼라(Scala)까지 함수형 프로그래밍 언어라는 표어를 아예 간판으로 내걸고 등장한 언어들이 숱하게 쏟아지고 있다. 그뿐만 아니라 C#에서는 약 3년 전부터 자바는 올해 등장한 자바8 부터 람다(Lamdba)라는 함수형 프로그래밍 개념이 도입되었다. 개발자가 다른 군더더기 프로그래밍에는 신경 쓰지 않고 오로지 알고리즘과 해야 할 로직에만 집중할 수 있게 해준다는 함수형 프로그래밍 개념은 Swift 언어에도 도입되었다. 단순히 도입한 것으로 끝나는 것이 아니라 기존의 함수형 프로그래밍이 배우기 어려운 문법 구조로 되어 있다면 Swift 언어에 녹아든 함수형 프로그래밍 개념은 간결한 문법적 구조로 되어 있어 다른 함수형 프로그래밍에 비해 훨씬 빠르게 습득할 수 있다. 클래스와 상속, 인스턴스와 메서드들로 구성된 현란한 객체지향 프로그래밍 개념에 람다(Lambda) 형식을 사용하는 함수 타입(function type)과 다중 리턴, 클로저(closure)로 이어지는 함수형 프로그래밍 언어의 개념까지 하나의 언어에 녹아있다는 것이 놀라울 따름이다. 기존의 Objective-C에서 제공되어 왔던 프로토콜(Protocol), 자동 참조 카운팅(Automatic Reference Couting)은 덤이다. |