Concurrency는 뭔가 아~~하고 나서 또 안보면 까먹는 그런 친구같네.. 간단한게만 살펴보자~~ # Task 비동기 작업 단위 (A unit of asynchronous work) 모든 비동기(asynchronous) 코드는 어떠한 Task의 일부로 실행된다. # Structured Concurrency / Unstructured Concurrency 우선 결론!! 이미지로 간단하게 보자면 아래와 같다. # Structured Concurrency(구조화된 동시성) [Swift에서 Structured Task를 만드는 방법] 1. async let ➡️ 내부적으로 Child Task 생성 2. TaskGroup ➡️ 명시적으로 Child Task를 추가할 수 있음 [Structured Task? ..
안녕하세요 :) Zedd입니다. 오늘은 AsyncStream에 대해서 공부해보려고 합니다 :D 오늘 공부할 AsyncStream은 반드시 AsyncSequence를 알아야 이해가 가능합니다. # AsyncStream ✔️ 정의 : 순서가 있고, 비동기적으로 생성된 요소들의 sequence ✔️ 정의도 한번에 와닿지 않고, AsyncStream에 대한 이런 저런 이야기가 많지만 딱 하나만 기억하면 됩니다. 📝 AsyncSequence를 생성하는 인터페이스!!!!!! 📝 그래서 AsyncSequence를 알아야 이해가 가능하다고 말한거였어요 정말 간단한 예를 들어봅시다. 비동기랑은 상관없지만;; 1부터 10까지의 요소가 있는 AsyncSequence를 생성하고 싶다고 칩시다. 물론 Swift Concurre..
안녕하세요 :) Zedd입니다. 오늘은 AsyncSequence에 대해서 공부해보겠습니다. # Sequence AsyncSequence가 Sequence와 유사하기 때문에.. Swift ) Sequence도 한번 보고 오시면 좋을 것 같습니다 👀 # AsyncSequence AsyncSequence는 Sequence와 유사하지만, ✔️ 한번에 하나씩 단계(step)별로 진행할 수 있는 값 목록을 제공 + 비동기성을 추가한 타입 ✔️ 입니다. AsyncSequence역시 for-in loop에 사용할 수 있는데요. for value in AsyncSequence타입 {} 자 생각해봅시다. AsyncSequence는 뭔가 비동기~~친구인데, 사용할 때 값이 전부 or 일부가 아직 없는 상태일 수도 있겠죠!!..
안녕하세요 :) Zedd입니다. 오늘은!!!! 주말을 맞아 그동안 미루고 미뤄왔던 Combine -> async/await로 바꾸기...ㅋㅋ.. 아주 간단한 앱이어서 호다닥 바꿔볼 수 있을 것 같습니다. 참고 : 이 앱은 Deployment Target이 15.0입니다.. # 구조 API호출이 딱 하나 있는 아주 간단한 SwiftUI앱입니다. [API.swift] HTML 삽입 미리보기할 수 없는 소스 위와 같이 Combine을 사용해서 network request를 수행하고 [Service.swift] HTML 삽입 미리보기할 수 없는 소스 service쪽에서 API에 있는 perfom 메소드를 수행합니다. [ViewModel.swift] 그래서 ViewModel쪽에서 HTML 삽입 미리보기할 수 없는..
안녕하세요 :) Zedd입니다. 오늘은 Sendable에 대해 공부! # Actor 자 여러분 actor 아시죠!? actor BankAccount { } 이렇게 actor 타입을 만들었었잖아요! 근데 Actor라는 것도 있어요. 얘는 뭘까요? Actor는 프로토콜이에요. 모든 actor가 준수하고 있는 common protocol이 Actor입니다. 이 Actor 프로토콜은 모든 actor 타입을 일반화합니다. actor 타입은 암시적으로 이 프로토콜(Actor)을 따르고 있어요. actor BankAccount { } let account = BankAccount() account is Actor // true 이게 된다는거! 🤷 : 이게 Sendable이랑 무슨..상관.. 🧑💻 : Actor가 S..
📖 Actor (1) 읽으러가기 📚 Actor (2) 읽으러가기 안녕하세요 :) Zedd입니다. Actor (2) - Actor isolation 글에서 Actor isolation을 공부해봤는데요. 오늘은 isolated parameter / nonisolated keyword에 대해서 공부해보겠습니다. 반드시 Actor (2) - Actor isolation 글을 읽고와주세요. # 한계 Actor (2) - Actor isolation 글에서 BankAccount Actor를 정의했었습니다. (extension에 있던 Transfer메소드는 제외하고 보도록하죠) actor BankAccount { let accountNumber: Int var balance: Double init(accountNum..
📖 Actor (1) 읽으러가기 # Actor 특징 복습 📝 - Actor는 그냥 Swift의 새로운 타입임. 클래스와 가장 유사. - Swift의 다른 모든 타입들과 똑같이 프로퍼티, 메소드, 이니셜라이저, subscripts 등을 가질 수 있음. - 프로토콜 준수, Extension 역시 쌉가능 - 참조타입 like class - 클래스와 달리 Actor는 한번에 하나의 작업만 변경 가능한 상태(mutable state)에 접근할 수 있도록 허용. - 클래스와 달리 상속을 지원하지 않음. # Actor isolation 우리가 사실 immutable state면 Actor를 쓸 필요도 없잖아요? 근데 지금 (Shared) mutable state여서 지금 문제가 발생할 여지가 있는거ㅇㅇ 그래서 우리가..
안녕하세요 :) Zedd입니다. WWDC 21 ) What‘s new in Swift 에서도 잠깐 본 내용인데, Actor에 대해서 공부. # 다중 쓰레드 시스템에서 제대로 작동하지 않는 코드 WWDC 21 ) What‘s new in Swift 에서 본 예제. class Counter { var count: Int = 0 func increment() { self.count += 1 } } 이런 Counter가 있고, let counter = Counter() // global DispatchQueue.global().async { counter.increment() } // main counter.increment() 이렇게 각기 다른 스레드에서 increment를 호출하면, 대충 이런 경고를 받을 ..
- 제이슨 파싱
- np-hard
- FLUTTER
- 피아노
- swift delegate
- actor
- swift tutorial
- swift3
- WKWebView
- Xcode
- Swift
- SwiftUI
- UIBezierPath
- 회고
- fastlane
- np-complete
- github
- IOS
- swift sort
- WidgetKit
- WWDC
- Accessibility
- 스위프트 문법
- iOS delegate
- swift array
- Combine
- ios 13
- Git
- 스위프트
- swift 공부
- Total
- Today
- Yesterday