동시성
completion handler → async/await 점진 이전
완료 핸들러(completion handler) 기반으로 짜인 오래된 네트워킹 계층이 있고 앱 전체에서 수백 곳이 호출합니다. 호출부를 한꺼번에 깨뜨리지 않고 async/await로 옮기려면 어떻게 하겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
완료 핸들러(completion handler) 기반으로 짜인 오래된 네트워킹 계층이 있고 앱 전체에서 수백 곳이 호출합니다. 호출부를 한꺼번에 깨뜨리지 않고 async/await로 옮기려면 어떻게 하겠습니까?
기존 completion API는 그대로 두고 옆에 async 오버로드를 추가해 내부에서 withCheckedThrowingContinuation으로 감싼 뒤 호출부를 화면 단위로 점진 이전한다. 세마포어로 async를 동기화하는 역브리지는 금지.
동시성주관식기초
Swift Concurrency에서 await를 만나면 실제로 무슨 일이 일어나고, 스레드가 블로킹되는 것과는 어떻게 다른가요?
#async-await #continuation
아키텍처주관식심화
5년 된 MVC 앱(뷰 컨트롤러 150개, 테스트 거의 없음)을 MVVM으로 옮기라는 요구를 받았습니다. 서비스는 계속 배포되어야 합니다. 어떤 전략으로…
#migration #legacy
아키텍처주관식심화
운영 중인 UIKit 주문 기능의 거대한 ViewController를 한 번에 다시 쓰지 않고 구조를 개선해야 합니다. 배포 가능한 작은 단계로 나눈다면 어떤…
#migration #legacy
네트워킹객관식심화
Swift Concurrency 로 URLSession 요청을 보내는 다음 코드에서 task.cancel()이 네트워크 응답보다 먼저 호출됐습니다. 결과는? …
#async-await #cancellation