안녕하세요 Pingu입니다.🐧 지난 글에서는 Combine의 Operator 중 Mapping Element 역할을 하는 녀석들을 알아봤었습니다. Map, TryMap, MapError, Scan, TryScan, SetFailureType이 Mapping Element로 분류된 Operator 들이었죠. 이번 글에서는 이어서 Filtering Element로 분류된 Operator에 대해 알아보도록 하겠습니다. Filtering Elements 이름을 보면 뭔가를 필터링해줄 거 같은데요, 여기에 분류된 Publisher는 아래와 같습니다. Filter TryFilter CompactMap TryCompactMap RemoveDuplicates TryRemoveDuplicates ReplaceEmpty ..
안녕하세요 Pingu입니다.🐧 지난 글... 이 좀 오래됐는데, 어쨌든 지난 글에서는 Combine의 Publisher, Subscriber를 연결하는 Subscription에 대해 알아봤었는데, 이번 글에서는 드디어 Operator에 대해 알아보려고 합니다. Combine에 Opeartor들이 얼마나 많은지...; 근데 그럼에도 불구하고 부족한 게 많아서 직접 만들어서 써야 하는 것들이 많은 거 같더라고요. 일단 기본부터 하자는 생각에 Apple에서 미리 만들어둔 Operator들을 먼저 공부해보도록 하겠습니다. 일단 Apple의 Publishers 공식문서에 보면 미리 구현해둔 Operator들이 모두 정리되어있는데요, 그중에 Mapping Elements라는 녀석들부터 알아보도록 하겠습니다. Ope..

이번 글에서는 Swift 공식 문서의 21번째 단원인 Protocols을 읽고 정리한 글을 쓰려고 합니다. Apple Swift 공식 문서 21단원 - Protocol Protocol Protocol은 특정 작업이나 기능에 적합한 메서드, 프로퍼티, 요구사항의 청사진을 정의합니다. 그런 뒤 이러한 요구사항의 실제 구현을 위해 Class, Struct, Enum에서 Protocol을 채택할 수 있습니다. 이때 Protocol이 요구하는 사항을 모두 충족하면 해당 타입은 Protocol을 준수한다고 합니다. 준수해야 하는 타입의 요구사항을 정의하는 것 외에도 요구사항의 일부를 구현하거나, 준수하는 타입에 추가 기능을 구현하기 위해 Protocol을 확장할 수도 있습니다. Protocol Syntax Prot..
안녕하세요 Pingu입니다.🐧 지난 글에서는 Apple에서 Subscriber 사용을 위해 미리 정의해둔 것들에 대해 알아봤었는데요, 이번 글에서는 이전에 배운 Publisher, Subscriber를 연결하는 역할을 하는 Subscription에 대해 알아보려고 합니다. Subscription이란? Subscription은 정의부터 어떤 녀석인지 느낌이 옵니다. Subscription도 프로토콜이며 Cancellable이라는 걸 채택했네요. 정의를 보면 Subscriber와 Publisher의 연결을 나타내는 프로토콜이라고 합니다. 설명을 좀 더 보면 Subscription에는 특정 Subscriber가 Publisher를 subscribe 할 때 정의되는 ID가 있어서 Class로만 정의해야 한다고 ..
안녕하세요 Pingu입니다.🐧 지난 글에서는 Combine을 사용하지 않던 코드에서 간단하게 Combine을 적용하고 싶을 때 사용하면 좋은 Subject를 알아봤습니다. 이번 글에서는 여기서 알아본 미리 정의된 Publisher와 같이 미리 정의된 Subscriber에는 뭐가 있는지 살펴보려고 합니다. Subscriber란? 간단하게 Subscriber가 뭔지 다시 알아볼게요. 정의부터 살펴보면 다음과 같았습니다. 즉 간단하게 말해서 Publisher에게 값을 받기 위해 선언해둔 프로토콜이라고 할 수 있습니다. 그리고 구현은 다음과 같이 되어있었어요. @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) public protocol Subscrib..
안녕하세요 Pingu입니다.🐧 지난 글에서는 Apple에서 미리 정의해둔 Publisher들을 알아봤었는데, 이번 글에서는 이어서 Publisher 프로토콜을 채택하는 또 다른 녀석들인 Subject들에 대해서 알아보려고 합니다. Subject 일단 Subject의 정의를 볼까요? Subject도 프로토콜입니다. Publisher를 채택한 프로토콜이네요. 밑에 설명에 보면 "Subject는 stream에 send(_:) 메서드를 호출해서 값을 주입할 수 있는 Publisher이다."라고 적혀있네요. 그래서 기존에 Combine을 사용하지 않던 코드에 Combine 모델을 적용하고 싶을 때 사용하면 좋다고 합니다. 대충 뭔지는 알겠으니 Subject 프로토콜의 구현을 좀 더 살펴볼게요. @available..
안녕하세요 Pingu입니다.🐧 지난 글에서는 Publisher, Subscriber 프로토콜 그 자체에 대해 알아봤었는데요, 이번 글에서는 Publisher 프로토콜로 Apple에서 미리 구현한 Publisher들을 알아보려고 합니다. 간단히 Publisher가 뭔지 짚어보면, Subscription을 만들고 Subscriber에게 값과 completion event를 내보내는 타입을 위한 프로토콜이었습니다. 먼저 Apple에서 미리 구현한 Publisher들은 아래와 같습니다. Just Future Deferred Empty Fail Record AnyPublisher 그럼 하나씩 차례대로 알아보겠습니다~ Just (Struct) 가장 간단한 Publisher로 자신을 subscribe 하는 Subsc..
안녕하세요 Pingu입니다.🐧 지난 글에서는 간단하게 Combine이 뭔지에 대해 알아봤습니다. 간단히 다시 요약해보면 Apple에서 2019년에 만든 새로운 프레임워크인데, 이걸 쓰면 비동기 이벤트를 간단하게 처리할 수 있다! 정도?입니다. (Apple에서 만든 RxSwift라고 봐도 됩니다.😄) 어쨌든 Combine에는 Publisher, Subscriber, Subscription, Operator가 있는데, Operator는 종류가 너무 많으니 이번 글에서는 Publisher, Subscriber, Subscription에 대해 알아보려고 합니다. 흐름 공부를 하다보니 일단 Publisher, Subscriber, Subscription이 뭔지 알기 전에 이것들이 어떻게 동작되는지 흐름을 알고 가..
- Total
- Today
- Yesterday
- OSTEP
- System
- mac
- 코딩테스트
- document
- 코테
- 스위프트
- Publisher
- 테이블뷰
- operator
- 백준
- Combine
- 프로그래밍
- 앱개발
- Xcode
- Swift
- operating
- 동시성
- BFS
- dfs
- 아이폰
- IOS
- DP
- pattern
- 문법
- 알고리즘
- Apple
- design
- OS
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |