iOS (70) 썸네일형 리스트형 [Swift] GCD와 Concurrency. main thread와 dispatch queue global 개념 뿌수기!! | No4. GCD 안녕하세요. Swift의 concurrency. CGD의 개념을 공부했는데 GCD와 dispatchQueue global에 관해 정리하려고 합니다. GCD를 소개하기 전에 concurrency의 기본 개념 Thread, async,sync, dispatchQueue등의 개념을 정리했습니다. 먼저 참고해주시면 감사합니다. GCD 관련 포스트 정리. 이전 포스트의 Thread파트에서 잠깐 소개했지만 Main Thread는 UIResponder 타입인 UIApplication과 Run loop를 통해 user interface를 담당합니다. Main Thread는 단 하나 존재합니다. UI 업데이트, 사용자의 터치, 제스처, event 반응 등 기본적으로 탐지하고 그에 맞는 델리게이트를 main thread에.. [Swift] Hi GCD(GrandCentralDispatch). GCD's concept deep dive!!! | No3. GCD 안녕하세요. Swift의 concurrency를 공부하며 알게 된 개념을 정리하려고 합니다. GCD 관련 포스트 정리. Basic concepts before studying gcd task concurrency vs serial synchronous vs asynchronous Thread Thread pool dispatchQueue GCD's sync, async func Task 수행해야 할 작업들의 추상적인 개념을 의미합니다. ex) closure, block object, function etc... Concurrency 특정한 시간대의 task가 prev task의 작업 완료와 상관없이 곧바로 실행되는 작업을 뜻합니다. 하지만 먼저 시작된다고 먼저 끝난다는 보장은 없습니다. task마다 크기.. [Swift] Apple's concurrency and application design 정리 | No2. GCD 안녕하세요. 애플의 modern concurrency 공부하기 이전에 애플이 thread를 다루는 역사가 궁금해서 앱 디벨로퍼 자료"Concurrency Programming Guide"를 번역 + 정리했습니다. 애플에 관한도 맞는 말이지만 컴퓨터 구조, 운영체제의 내용이 포괄적으로 담겨 있습니다. 사전에 알면 좋을 개념을 소개합니다. 프로그램 : hdd, ssd등 저장장치에 다운 받아진 실행 파일. 사용자의 터치, 마우스 클릭 등 실행되기 전의 상태인 실행파일.(아무것도 발생x, 생명 x) 프로세스: 사용자의 클릭, 터치, 스케줄러 등 (잠자고 있던) 프로그램을 메모리에 적재함으로 프로그램이 실행 중에 있는 상태. 대부분의 프로세스(실행중인 프로그램)은 background에서 실행되고 지속적인 프로세서.. [Swift] Concurrency(동시성), parallelism(병렬성) 개념 탐구하기 | NO1. GCD 안녕하세요. Swift's modern concurrency를 공부하기 이전에 공부한 개념 중 Concurrency와 parallelism에 대해 정리하려고 합니다. 1. what is parallelism 병렬성(parallelism)은 multi core에서 여러 개의 thread를 실행합니다. multi thread가 동시에 실행됩니다. Cpu에 있는 각각의 코어는 한 개 이상의 thread를 포함합니다. 이런 코어가 동시에 실행되는 것을 병렬성이라 합니다. data parallelism, task parallelism으로 구분됩니다. 각 라인을 task로 칭한다면, 특정 time에 core1, core2, core3의 한 개 또는 여러 개의 thread가 실행되면서 task들이 동시에 수행됩니다... [Swift] No6. Transforming operator 개념 완전 뿌수기!! | Combine 안녕하세요! 이번 포스트는 Combine framework에서 publisher 와 subscriber간 subscription의 값을 바꾸는 operator 공부한 내용을 정리하려고 합니다. 주제는 transform 타입의 map, tryMap, flatMap + compactMap(_:) collect, scan. Upstram의 output value가 nil인 경우 대처 가능 한 replaceNil(with:), replaceEmpty(with:). 주의사항!! upstream publihser라는 말을 사용하는데 이는 operator보다 위에 있는 publisher의 흐름을 칭합니다. downstream은 특정 publihser가 값을 방출했을 때 그 하위에 있는 stream 입니다. subsc.. [Swift] No5. Subscription, Cancellable 개념 뿌수기!!! | Combine 안녕하세요. 이번 포스트는 Combine에서 Cancellable과 Subscription에 대해 공부한 개념을 정리하려고 합니다. 1. What is Cancellable and AnyCancellable ? 컴바인 사용할 때 커스텀 subscriber 구현도 하긴 하지만?! 저는 sink(receiveCompletion:receiveValue:), sink(receiveValue:)를 많이 사용합니다. 물론 @Publihsed를 사용할 때 assign(to:on:)도 사용합니다. 이 세 개 operator의 공통적인 특징은 AnyCancellable을 반환하는 것입니다. AnyCancellable은 Cancellable 프로토콜을 채택하는 final class입니다. Cancellable은 cance.. [Swift] No4. Hi Failure, Error Handling 개념 뿌수기!!! & Error Deep Dive!! | Combine Combine framework를 사용하면서 Error는 잠재적으로 발생할 수 있습니다. 프로그램 실행 중 발생한 Error는 throwing 됩니다. 이때 catching. 예외 처리를 할 수 없다면 런타임 오류가 발생하게 됩니다. 앱은 멈추게 됩니다. 따라서 에러를 처리할 수 있는 다양한 방법에 대해서 정리하려고 합니다. 1부는 정말 간단하게 Error의 특징에 대해 짧게 알아보고 2부에선 Combine을 사용할 때 발생한 에러를 처리하는 방법에 대해 탐구할 것입니다. 1. What is Error? Error Handling Deep Dive :) Swift에서 에러는 Error protocol을 따릅니다. 반드시 Error 프로토콜을 채택한 object를 구현해야 Swift error handli.. [Swift] No3. Hi subject! PassthroughSubject vs CurrentValueSubject 개념 완벽 뿌수기 | Combine Swift Combine. Subject PassthroughSubject, CurrentValueSubject에 대한 개념을 정리하려고 합니다 : ] What is Publiser? Subject를 소개하기 전에 잠깐,, 이전에 소개했던 publisher 예제입니다. let requestBeverage = Notification.Name("RequestBeverage") let publisher1 = [1,2,3,4,5,6].publisher let publisher2 = Just([1,2,3,4,5,6]) let publisher3 = Future { promise in promise(.success([1,2,3,4,5,6])) } let publisher4 = NotificationCenter.de.. 이전 1 ··· 4 5 6 7 8 9 다음 목록 더보기