서버와 통신하기 위한 API
Request
, Response
구조를 가짐URL
객체를 통해 직접 통신하는 방식URLRequest
객체를 만들어 옵션을 설정하여 통신하는 방식Task
의 Conpletion Handler
형태롤 받는 방식URLSessionDelegate
를 통해 지정된 메서드를 호출하는 방식Session
의 configuration 결정 및 Session
생성URL
과 Request
객체 설정Task
를 결정하고 그에 맞는 Completion Handler
또는 Delegate
메서드 작성Task
를 실행Completion Handler
(또는 Delegate
메서드) 실행Session 객체가 서버로 요청을 보낸 후, URL 기반의 응답을 받는(retrive) 역할
HTTP의 각종 메서드를 통해 서버로부터 응답을 받아 Data 객체를 가져오는 작업을 수행
URLSessionr
과 같은 네트워킹용 API 보통 앱 전역에서 사용하므로 viewController
보단 클래스를 만들어 static
메서드로 사용하는 것이 좋음func dataTask(with url: URL) -> URLSessionDataTask
URL
에 데이터를 요청하는 데이터 작업 객체를 생성
func dataTask(with request: URLRequest) -> URLSessionDataTask
URLRequest
객체를 기반으로 URL
에 데이터를 요청하는 데이터 작업 객체를 생성
func dataTask(with url: URL, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask
URL
에 데이터를 요청하고 요청에 대한 응답을 처리할 완료 핸들러(Completion Handler
)를 갖는 데이터 작업 객체를 생성
func dataTask(with request: URLRequest, completionHandler: @escaping (Data?, URLResponse?, Error?) -> Void) -> URLSessionDataTask
URLRequest
객체를 기반으로 URL
에 데이터를 요청하고 요청에 대한 응답을 처리할 완료 핸들러(Completion Handler
)를 갖는 데이터 작업 객체를 생성