Swift 3.1 가이드에 대응하는 정리글을 작성하였습니다!!!Access Control 정리 최신버전 > http://wlaxhrl.tistory.com/61 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Access Control 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 문서 본문 중 생략된 부분이 많습니다. 들어가며Access control 을 이용하면 외부 소스파일/모듈에 있는 코드에서 자신의 코드에 접근하는 것을 제한할 수 있다. 자신의 코드 구현부를 숨기거나, 외부에서 사용할 인터페이스를 확실하게 지정하고 싶을 때 유용하다.Access level 은 클래스, 구조체, ENUM 등의 타입에 각각 구체적으로 지정할 수 있으며, 타입 안에 속한 프로퍼티, 메서..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Generics 정리 최신버전 > http://wlaxhrl.tistory.com/60 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Generics 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며제네릭을 이용하면 특정 타입에 종속되지 않는 / 유연하고 / 재사용성 높고 / 명확한 의도를 가진 함수를 작성할 수 있다.제네릭은 Swift의 powerful feature대부분의 Swift 기본 라이브러리는 제네릭 코드를 내장한다사실 Array와 Dictionary 타입도 제네릭 콜렉션Array에는 Int도, String도, 커스텀 타입도, 그리고 이것들을 전부 포함할 수 있는 Any 타입도 넣을 수 있..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Protocols 정리 최신버전 > http://wlaxhrl.tistory.com/59 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Protocols 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 프로토콜 3편입니다. 이번 시간에는 프로토콜 합성부터 시작합니다. 1,2편을 아직 안 읽으셨다면 먼저 읽어보세요. Protocols 1편 링크 > http://wlaxhrl.tistory.com/28Protocols 2편 링크 > http://wlaxhrl.tistory.com/29 프로토콜 합성Protocol Composition프로토콜 합성은 한번에 여러 프로토콜을 따르는 타입이 필요할 때 유용하게 활용할..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Protocols 정리 최신버전 > http://wlaxhrl.tistory.com/58 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Protocols 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 프로토콜 2편입니다. 이번 시간에는 Delegation부터 시작합니다. 1편을 아직 안 읽으셨다면 먼저 1편을 읽어보세요. Protocols 1편 링크 > http://wlaxhrl.tistory.com/28 Delegation딜리게이션은 클래스/구조체가 자신의 책임 중 일부를 다른 타입의 인스턴스에게 떠넘길 수 있게 해주는(=위임할 수 있게 해주는 = hand off = delegate) 디자인 패턴이다.딜..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Protocols 정리 최신버전 > http://wlaxhrl.tistory.com/57 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Protocols 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며프로토콜은 특정 task나 functionality를 위한 메서드, 프로퍼티, 그 외 요구사항들의 청사진을 정의한다. 클래스, 구조체, ENUM은 프로토콜을 적용하여 그 요구사항들의 실제 구현을 제공한다. 어떤 타입이 특정 프로토콜의 요구사항을 만족시키면, 그 타입이 프로토콜을 따른다conform고 말한다.필요 시 프로토콜을 확장하여 그것을 따르는 타입에게 도움이 되는 기능을 제공하거나 할 수도 있다...
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Extensions 정리 최신버전 > http://wlaxhrl.tistory.com/56 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Extensions 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며확장Extension을 통해 기존 클래스, 구조체, ENUM, 프로토콜 타입에 새로운 기능을 더할 수 있다. 원본 소스 코드에 접근할 수 없는 타입도 확장할 수 있다. (이렇게 기존 코드를 건드리지 않고 기능을 확장하는 것을 retroactive modeling이라고 부르는 것 같다) 확장은 Objective-C에서의 카테고리와 유사하고, 다른 점이 있다면 확장은 개별적으로 이름을 따로 가지지 않는..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Nested Types 정리 최신버전 > http://wlaxhrl.tistory.com/55 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Nested Types 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며ENUM은 특정 클래스나 구조체의 기능functionality을 돕기 위해 생성되곤 한다. 이와 비슷하게, 복잡한 타입의 context에서는 유틸리티 클래스와 구조체를 정의하는 것이 편리하다. 이를 위해 nested type(중첩된 타입)을 정의할 수 있다. 특정 타입의 정의 안에서 ENUM, 클래스, 구조체 등을 중첩하여 정의하는 방식이다.특정 타입의 정의를 둘러싼 대괄호({}) 안에서 새..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Type Casting 정리 최신버전 > http://wlaxhrl.tistory.com/54 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Type Casting 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며타입 캐스팅Type casting은 인스턴스의 타입을 체크하거나, 인스턴스의 타입을 자기 클래스의 슈퍼클래스 타입이나 서브클래스 타입처럼 다루기 위해 쓰인다.Swift에서는 is나 as 연산자를 사용하여 값의 타입을 체크하거나 다른 타입으로 변환하는 방식으로 타입 캐스팅이 이루어진다.타입 캐스팅은 특정 타입이 프로토콜을 따르고 있는지 체크할 때도 쓰인다. (Checking for Protoc..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Error Handling 정리 최신버전 > http://wlaxhrl.tistory.com/53 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Error Handling 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며에러 핸들링Error handling은 프로그램에서의 에러 상황에 반응하고, 에러를 복구하는 과정이다. Swift는 복구할 수 있는 에러Recoverable error를 런타임 동안 throwing, catching, propagating, manipulating 할 수 있는 방법을 제공한다.항상 완벽한 실행이나 유용한 아웃풋을 낸다고 보장할 수 없는 오퍼레이션들이 있기 마련이다. 이..
Swift 3.0.1 가이드에 대응하는 정리글을 작성하였습니다!!!Optional Chaining 정리 최신버전 > http://wlaxhrl.tistory.com/52 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Optional Chaining 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며옵셔널 체이닝Optional chaining은 nil이 될 수도 있는 옵션을 가진 프로퍼티, 메서드, 서브스크립트에 대고 질의querying하거나 호출하는 프로세스를 가리킨다. 옵셔널이 값을 가지고 있다면 호출은 성공하고, 옵셔널이 nil이라면 호출은 nil을 리턴한다. 여러개의 쿼리가 한 번에 묶일chained 수 있으며 전체 체인 중 하나라도 nil이 되면 전체 체인이 ..