IOS/Swift 4

Swift Concurrency (2) - Behind Scene

안녕하세요! 미니입니다. 오늘은 Swift Concurrency를 사용하면서 생긴 궁금증에 대해서 학습한 내용을 공유하려고 합니다. Swift Concurrency의 기본적인 내용은 해당포스팅 에서 확인할 수 있습니다. 저희는 비동기 프로그래밍을 활용하기 위해서 GCD를 많이 활용해왔습니다. 하지만, Swift 팀은 구조화된 Concurrency와 비슷하게 구현하게 되었습니다. 그렇다는건 GCD의 문제점들이 있다는 뜻이겠죠? 그리고 또한, Swift Concurrency는 내부적으로 어떻게 동작하는지에 대해서 알아보았습니다. (해당 내용은 Swift concurrency: Behind the scenes을 기반으로 작성되었습니다.) 저희가 저번에 등장 배경에서 언어적으로 다양한 문제들이 발생한다고 했습니..

IOS/Swift 2023.10.13

Swift Concurrency 맛보기 & 맛 평가

안녕하세요! 미니입니다. 오늘은 프로젝트에서 Swift Concurrency에 대해서 정리해보고, 적용 후기를 작성해보려고 합니다. 첫번째로 비동기 프로그래밍에 대해서 먼저 생각해보려고 합니다. 비동기 프로그래밍? 동기 동기 프로그래밍은 하나의 작업이 종료될 때까지 프로그램이 기다리는 것을 의미합니다. 즉, 하나의 작업이 종료되어야지만 다음 작업을 할 수 있다는 의미입니다. 비동기 하지만, 비동기는 하나의 작업이 실행되고 나면, 다른 작업을 바로 수행하는 것을 의미합니다. 즉, 진행중인 작업에 대해서 기다리지 않습니다. 이때, 저희는 작업이 종료되는 시점을 알기 위해서 클로저를 활용하게 됩니다. 실제로, URLSession의 dataTask 메서드는 (error, response, data) 타입을 반환..

IOS/Swift 2023.10.04

Combine (2)

지난 시리즈에 이어서 Combine을 공부해보려고 한다. 이전 시간에는 Publisher, Operators, Subscriber의 어떤 역할들을 하는지에 대해서 공부했다. 이번에는 Publisher와 Subscriber의 종류에 대해서 공부해보려고 한다. Publisher 지난 시간에 공부했던 것을 생각해보면 Publisher는 시간의 흐름에 따라서 변경된 데이터를 방출하고, 종료되는 시점을 알려준다고 하였다. 이런 점에서 우리는 이미 비슷한 친구들을 보았을 것이다. 바로 NotificationCenter, KVO라는 친구들이다. 이 친구들은 Publisher처럼 값이 변경될 때마다 비동기적으로 이벤트를 받았다. 하지만, 엄밀히 말하면, NotificationCenter는 내부적으로 Publisher ..

IOS/Swift 2023.09.07

Combine (1)

대체로 Combine 프레임워크에서 세가지의 핵심 요소가 존재한다. 이들은 Publisher Operator Subscribers 이다. 당연하게도 더 많은 요소들을 가지고 있지만, 세 가지가 없을 경우에는 우리가 원하는 바를 이룰 수 없다. Publisher Publisher는 한개 또는 그 이상의 관심을 가지고 있는 대상에게 값들을 방출할 수 있는 타입이다. 연산, 네트워킹 또는 사용자의 이벤트 처리를 포함하여 모든 것이 될 수 있는 Publisher의 내부 논리에 관계 없이 다음 세가지 유형의 이벤트를 보낼 수 있다. Publisher의 제네릭 타입인 Output 타입의 값 성공에 대한 Completion Publisher의 Failure 타입과 동일한 에러를 방출하는 Completion Publi..

IOS/Swift 2023.09.07