Async/Await vs Combine with URLSession

TobyToby
1 min read

어째서 Swift는 combine을 내놓고서 async/await을 내놓으셨나이까?

URLSession 을 보통 Open API와 통신하는 경우가 많았다.

URLSession을 통한 통신하는 방법은 크게 3가지이다.

  1. Completion Handler

  2. Combine

  3. async/await

1번은 문제가 많아서 2번 3번이 나왔다.

Completion Handler 는 콜백지옥이 발생될 수 있으니 제쳐놓고

Combine이냐 async/awiat냐 그걸 선택하는게 문제였다.

Apple 입장

Apple은 async/await를 사용하기 희망한다.

나도 async/await가 더 맞는 방향이 아닌가 생각이 든다.

우선 http의 특성 중 하나가 비연결형인데

combine은 data stream에 특화되어 있다보니 연결형에 더 어울린다는 생각이다.

한 번 수신하고 말 것을 cancelable 저장에 불필요한 일이 많다고 생각이 들기 때문이다.

Data stream이 필요하다면 차라리 async/await로 URL통신을 한 이후

publisher를 하나 만들어서 처리하는게 어울리지 않을까 생각이 든다.


https://developer.apple.com/documentation/combine/using-combine-for-your-app-s-asynchronous-code

https://achoo-ios.tistory.com/2

0
Subscribe to my newsletter

Read articles from Toby directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Toby
Toby

안녕하세요🙇🏻‍♂️ 세상을 더 편리하게 바꾸고 싶은 iOS 개발자 최인호입니다. Hello 👋 I'm Inho Choi, an iOS developer who wants to change the world more conveniently. 대학교 졸업 Apple Developer Academy @ POSTECH 1기 KWDC Main Organizer AsyncSwift Organizer