iOS개발에 사용되는 swift는 class의 경우 상속이 가능합니다. 하지만 상속은 단일상속이 가능하지요. 그리고 struct의 경우, 이러한 상속이 불가능하죠. protocol은 class와 달리 다수의 프로토콜을 함께 채택하며 사용이 가능합니다. 또한 struct도 protocol을 채택할 수 있지요. 이렇게 다양한 프로토콜을 준수하도록 할 수 있는 개념을 protocol composition, 프로토콜 조합 이라고 한다고 합니다. 오늘은 protocol composition(프로토콜 조합) 개념을 사용하는 예시를 코드를 보며 몇가지 알아보도록 하겠습니다. Protocol Composition(프로토콜 조합) 개념 코드로 알아보기 먼저, Lecture라는 구조체를 하나 정의했습니다. struct 는..
오늘은 Udemy강의에서 다뤘던 내용을 복습하는 차원에서 swift의 Protocol에 associatedtype을 지정하고 활용하는 방법과 associatedtype에 대한 제약을 주는 방법도 알아보겠습니다. 참고한 강의 reference는 아래 링크를 참고해주세요. https://www.udemy.com/course/swift-for-intermediate-and-advanced-ios-developers/ swift protocol, associatedtype 연관타입 정의 및 사용방법 Parser라는 protocol이 정의되어있습니다. 그리고 그 내부를 보시면 Input, Output 타입이 associatedtype으로 지정되어있습니다. 그리고 Input, Output을 사용하는 parse 라는..
Protocol Type, Opaque Type 모두 얼핏 생각하면 Protocol Type은 해당 프로토콜을 채택한 타입을, Opaque Type도 해당 타입을 conform하는 세부타입을 외부에 노출되지 않게 해주는 동일 역할을 할 것으로 보여집니다. 하지만, 이 둘이 동일하다면 Opaque Type이라는 다른 명칭으로 개념이 나오지 않았을텐데요. Opaque Type은 Protocol Type과 달리, 보다 강력한 타입 보장을 하며, 타입 entity를 보존한다고 합니다. 이 특징으로인해 swift가 해당 Opaque 타입의 세부 타입을 추론할 수 있게 해준다고 하며, 일반 Protocol Type과 차이점을 갖게 됩니다. 이러한 Opaque Type, 불투명타입의 장점을 기본 Protocol ty..
iOS Swift Concurrency, async await 방식의 이점과 사용 간에 생길 수 있는 고민 iOS13 부터 활용 가능한 async await, actor 등의 개념을 잘 활용하면 data racing 문제를 해결하고, 많은 thread의 생성을 야기할 수 있는 context switching을 최소화 할 수 있습니다. 또한, callback closure의 중첩으로 인한 콜벡지옥 등으로 인한 나쁜 가독성을 개선할 수도 있습니다. async await 을 사용할 때에는 일반적으로 함수 반환 타입 앞에 async, async throws를 사용하고, 호출할때에는 Task { ... }, .task { ... } 블럭 내에 await, try await 키워드와 함께 호출하여 사용하게 되는데요..
- Total
- Today
- Yesterday
- swift 문자열
- 프로그래머스
- 프로그래머스swift
- publisher
- createML
- 백준swift
- Protocol
- Swift 알고리즘
- 부스트코스
- 김프매매
- 컬렉션
- 개발자문서
- 알고리즘문제
- 알고리즘
- swift reduce
- swift알고리즘
- uikit
- 스위프트
- ios
- swift string
- swift
- swift언어
- CoreML
- 자연어처리
- 백준알고리즘
- SwiftUI
- swift문제
- 프로토콜
- swift 기초
- Collection
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |