![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b3aJUv/btsdOuBG4Wc/3BpXdlwt3Y9dafunYlZyd1/img.png)
iOS개발을 하면서, Combine framework를 활용할 수 있습니다. Publisher로부터 이벤트를 받고자 구독을 할 때, 실행할 동작을 메인스레드에서 동작하고 싶을때가 있습니다. 대표적으로 UI를 업데이트해야할 때인데요. 그럴때 publisher 구독 과정에서 receive(on:)을 사용해서 메인스레드를 지정할 수 있습니다. 일반적으로 DispatchQueue.main을 생각하실 수 있는데 RunLoop.main도 메인스레드 지정에 사용이 가능합니다. 이전까지는 DispatchQueue를 위주로 사용했다가 Combine 관련 유데미 강의에서 RunLoop.main을 사용하는 것을 보고 사용을 해본 경험이 있었는데요. 과연 이 둘은 완전 똑같은 동작을 수행할까요? 그것은 아니라고 합니다. 오늘..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Nj6CU/btr9dXfnHXo/jkQQKzVF1AUTvPmemC8gb1/img.png)
안녕하세요. 오늘은 가볍게 SwiftUI의 View의 구현부에 명시되어있는 어떤 개념에 대해서 가볍게 보려고 해요. 바로 메인스레드에서의 동작을 보장시켜주는 MainActor에 대해서입니다. Swift Concurrency, MainActor의 개념과 사용방식, MainActor가 사용되는 케이스와 더불어 async await 메서드를 함께 사용하는 몇가지 케이스에서 메인스레드의 동작유무를 보도록 할게요. SwiftUI, View protocol에 정의되어있는 @MainActorView에 대한 구현부에요. 아래 body를 보시면, @MainActor가 정의되어있는데요. @MainActor가 정의되어있는 영역 내의 코드는 메인스레드에서의 동작을 보장해요. 다만 그 안에 부분적으로 DispatchQueue...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bWK6JY/btqv7gyvelg/TAU29ujtejikRP0GL5KDlK/img.png)
Concurrency Programming Guide ▶︎ The Move Away from Threads 내용 중 DispatchQueue의 일부입니다. 오역, 지적 환영합니다. ♣︎ 애플 GCD기술, DispatchQueue 소개 디스패치 큐(DispatchQueue) 디스패치큐(DispatchQueue)는 맞춤형 작업실행을 위한 C-기반 메커니즘입니다. 디스패치큐는 순차적이거나 동시적으로 작업을 실행 할 수 있지만 항상 FIFO(first-in first-out order) 순서로 실행됩니다. (다른말로 표현하자면, 디스패치큐는 작업큐가 추가된 순서와 동일한 순서로 디큐되어 집니다.) 순차 디스패치 큐는 디큐(dequeue)되고 새로운 작업을 실행하기 전, 하나의작업이 끝날 때까지 기다립니다. 즉,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cHyz19/btqvYrT9ZkO/0AhIT10uyadz5xwl7aSNQ1/img.png)
Concurrency Programming Guide ▶︎ The Move Away from Threads 의 내용을 학습차원에서 번역했습니다. 오역, 지적사항 댓글 환영합니다 ^-^ ♣︎ 스레드로부터 떠나라 The Move Away from Threads 비록 스레드가 수년간 그들자신의 역할을 수행하고 있지만, 스레드는 확장가능한 방식대로 다수의 동작을 처리하는 일반적인 문제를 해결할 수 없습니다. 스레드와 함께, 확장가능한 해결책을 만드는 부담은 개발자의 어깨위에 쌓입니다. 당신은 얼마나 많은 스레드를 만들지, 시스템조건이 변화함에 따라 동적으로 몇개의 스레드로 조절할 지 결정해야만 합니다. 또 다른 문제는 어플리케이션을 사용하는 스레드를 관리하고, 만들면서 발생하는 대부분의 비용을 떠맡아야 하는 것..
- Total
- Today
- Yesterday
- createML
- ios
- 컬렉션
- 백준알고리즘
- 프로그래머스swift
- 부스트코스
- 프로토콜
- 개발자문서
- Protocol
- swift 기초
- 프로그래머스
- swift string
- swift언어
- Swift 알고리즘
- 알고리즘
- 자연어처리
- publisher
- 알고리즘문제
- swift
- 김프매매
- swift문제
- uikit
- swift알고리즘
- swift 문자열
- CoreML
- swift reduce
- 스위프트
- Collection
- 백준swift
- SwiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |