⭐️map과 forEach⭐️
정말 정말 많이 사용하고 계실거라 생각합니다.
Swift Concurrency 세상으로 끌어들여와서 이 기능들을 비동기적이고도 동시(병렬) 처리 할 수 있다는 사실 알고 계셨나요?
예를들어 기존 forEach를 늘 먹던대로 사용하면 해당 넘겨준 데이터에 대한 로직을 처리할 동안 스레드가 블락되기에 다른 UI 작업을 할 수 없고 또한 내부에서도 수많은 데이터에 대해 순차적으로 처리하기에 속도적인 측면도 낮습니다.
이걸 우리가 UI나 다른 작업에 영향을 가지 않도록 비동기적인 처리와 내부 데이터 처리에서도 병렬적인 처리가 이뤄질 수 있다면 얼마나 좋을까요?🙋🏻
기본적으로 Swift 라이브러리에서 map과 같은 기능들에 async 즉, 비동기 클로저를 제공하지 않습니다.
그렇지만 우리는 Swift의 강력한 extension을 사용하여 원하는걸 구현할 수 있어요!
array, set, dictionary 등과 같은 내장 컬렉션 타입들은 Sequence 프로토콜을 준수하기에 이 Sequence 프로토콜을 확장하여 async한 map, forEach를 만들어 낼 수 있습니다🙌