Swift) Delegate, Completionhandler 를 async await을 통해서 리팩토링하는법(by. continuation)
·
앱/Swift
[Swift] async / await & concurrency기본적으로 이전에는 async await을 api 통신에서만 사용한다고 생각을 했지만, 최근에 asnyc await을 알게되면서, 해당 코드를 통해서 delegate나, completionHandler방식으로 처리되고 있던것 또한 i/o 입력에 의한 비동기 처리기 때문에 이를 async 스타일로 리팩토링이 가능하다는것을 알게되어 정리해보려고 한다.먼저 async awai는 예전에 정리한적이 있기 때문에 넘어가도록 하고async 와 await을 연결해주는 continuation 이라는 개념을 최근에 알게되었기 때문에 정리해보자!What’s continuation?동기 코드와 비동기 코드를 이어주는 인터페이스이다.기존에는 delegate와 com..
Swift) Decodable, custom Decoder 복잡한 데이터 모델을 나누는 방법에 대해서
·
앱/Swift
DecodableDecoder는 JSON type으로 오는 데이터를 네이티브한 포멧과 매핑이 가능하도록 하는 프로토콜이다.보통 Codable이 Encodable, Decodable 두개를 타입엘리어싱 하기 때문에 Codable만 채택해도 큰 문제는 없다.CodingKey실제로 RESTFUL API와 실제로 내부에서 사용하는 데이터의 네이밍이 다른경우가 많은데 이를 코딩키를 통해서 매핑해줄수 있다.struct DecodingModel: Decoding { let userName: String let userAge: Int enum CodingKeys: String, CodingKey { case userName = "user_name" case userAge = "user_age" ..