일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ribs
- Protocol
- UICollectionView
- 클린 코드
- MVVM
- Observable
- 리펙터링
- collectionview
- 애니메이션
- 스위프트
- Human interface guide
- ios
- 리팩토링
- SWIFT
- rxswift
- 리펙토링
- combine
- HIG
- uiscrollview
- UITextView
- map
- clean architecture
- swiftUI
- RxCocoa
- tableView
- Refactoring
- Xcode
- swift documentation
- Clean Code
- uitableview
- Today
- Total
목록동시성 프로그래밍 (5)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GAGVl/btsHbVppOqV/Sy1dh5bR6xlNxKyvn6Tm1k/img.png)
@Sendable 개념Sendable이라는 의미는 "전달 할 수 있는"이라는 의미이지만, 생략된 의미가 존재@Sendable는 불변성을 보장하는 "전달 할 수 있는"의 의미로 사용동시성 프로그래밍에서 핵심은 프로퍼티들의 '불변성'을 유지하는 것프로퍼티들이 '불변성'을 만족한다면, 동시성 프로그래밍에서 쉽게 파라미터, 클로저 등에 넘겨서 처리하는 것에 race condition, dead lock, memory conflict 등의 문제등을 신경쓰지 않고 편하게 프로그래밍이 가능@Sendable의 목적은 값을 변경할 수 없도록 강제화하는것예제특정 closure가 있을 때 이 closure에서는 전역변수인 age값 수정이 가능class ViewController: UIViewController { va..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/u7cxm/btrZJ4bFyrr/doJLcv2qzKhEGZ2WcR14Bk/img.png)
1. 스레드 프로그래밍 이해하기 - 동시성 프로그래밍, thread, GCD, Swift Concurrency 2. 스레드 프로그래밍 이해하기 - Swift Concurrency가 나온 이유 (GCD의 한계, Thread explosion)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cKedaB/btrZJDyy4UD/zDIKEWtINzbNHk01cGC0Yk/img.png)
1. 스레드 프로그래밍 이해하기 - 동시성 프로그래밍, thread, GCD, Swift Concurrency 2 -> 3으로 출력되지 않고 1 -> 3 -> 2로 출력되는 이유? print(1) DispatchQueue.main.async { print(2) } print(3) /* 1 3 2 */ print(2)는 async로 작업되는것으로 프로그래밍 했으니, print(2) 의 실행은 지금 바로 실행이 되지 않아도 되기 때문에 print(2)의 실행 시점은 알 수 없음 여기까지는 일반적으로 알고 있는 내용이지만 실행 시점은 누가 제어하는것인지? 아래 스레드 제어권을 이해할 것 스레드 제어권 (WWDC 2021에 나오는 내용) 스레드 제어권이란 해당 스레드를 점유하여 이 스레드를 사용하여 work를 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cFSu6t/btrI2VVRZ9D/qLWpQdtlhQCKA8Ip2pOxn0/img.gif)
1. Concurrent Programming - NSLock, DispatchSemaphore 사용 방법 2. Concurrent Programming - DispatchSemaphore로 코틀린의 CompletableDeferred 구현방법 3. Concurrent Programming - DispatchQueue의 serial, concurrent, async, sync 이해하고 사용하기 4. Concurrent Programming - Thread Safe Array 구현방법 (DispatchQueue의 barrier 사용) 5. Concurrent Programming - OperationQueue로 동적으로 작업 추가, 취소하는 모듈 구현방법 Operation Queue 동시성 프로그래밍에서 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/o2l8j/btrINMsnuTt/JqkYhWUsn3tsJsPXNhLOa0/img.png)
1. Concurrent Programming - NSLock, DispatchSemaphore 사용 방법 2. Concurrent Programming - DispatchSemaphore로 코틀린의 CompletableDeferred 구현방법 3. Concurrent Programming - DispatchQueue의 serial, concurrent, async, sync 이해하고 사용하기 4. Concurrent Programming - Thread Safe Array 구현방법 (DispatchQueue의 barrier 사용) 5. Concurrent Programming - OperationQueue로 동적으로 작업 추가, 취소하는 모듈 구현방법 CompletableDeferred 코틀린의 코루틴..