사용 사유

코드가독성, 간소화, 기능을 구축하지 않아도 간단하게 사용가능함

func fetchCovidOverView(completionHandler: @escaping(Result<CityCovidOverView, Error>) -> Void)
    {
        let url = "<https://api.corona-19.kr/korea/country/new/>"
        let param = ["serviceKey":"Q7oaiCWmwtfjy41srTkhN56IzZ3cdMuev"]
        AF.request(url, method: .get, parameters: param).responseData { response in
            switch response.result{
            case let .success(data):
                do{
                    let decoder = JSONDecoder()
                    let result = try decoder.decode(CityCovidOverView.self, from: data)
                    completionHandler(.success(result))
                }catch{
                    completionHandler(.failure(error))
                }
            case let .failure(error):
                completionHandler(.failure(error))
            }
            
        }
    }

HTTP JSON 통신후 얻은 데이터를 CityCovidOverView 객체에 저장하는 코드이다.

AF.request

url, mehod, parameters 를 넣어주면 알아서 해당 메소드에 맞는 요청을 만들어준다. (오 지리네) 요청에 대한 응답으로 responseData를 사용 Switch - case 문을 통해 성공 실패에 따른 로직을 분리해 코드를 작성 하고 callback 함수를 호출 콜벡함수의 데이터를 호출부에서도 접근하기 위해 @escaping 언노테이션을 사용해 이스케이핑 클로저로 선언한다.