You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
URLSession이란 서버와 데이터를 주고받기 위한 작업을 관리하는 클래스 URLSession은 세 가지 구성 옵션을 제공
.default
기본 통신 방식으로, 디스크 기반 캐싱을 지원
디스크 기반 캐싱을 사용하는 기본 URLSession 인스턴스 생성 let defaultSession = URLSession(configuration: .default)
디스크 기반 캐싱(Disk-based Caching)
디스크 기반 캐싱은 URLSession의 기본 동작 방식으로, 네트워크 요청을 통해 받은 데이터를 디스크에 캐시(cache)로 저장한다.
이렇게 저장된 캐시 데이터는 동일한 요청이 있을 때 네트워크를 통하지 않고 디스크에서 바로 가져와 사용할 수 있고
이를 통해 데이터 전송량을 줄이고 성능을 향상시킬 수 있다.
.ephemeral
쿠키나 캐시를 저장하지 않는 정책가진다.
개인 정보 보호 모드와 같은 용도로 사용
.background
앱이 백그라운드에 있을 때 콘텐츠 다운로드 및 업로드를 할 수 있게 한다
기본 구성 URLSession 인스턴스 생성 let defaultSession = URLSession(configuration: .default)
캐시나 쿠키를 저장하지 않는 URLSession 인스턴스 생성 let ephemeralSession = URLSession(configuration: .ephemeral)
백그라운드 작업을 지원하는 URLSession 인스턴스 생성 let backgroundSession = URLSession(configuration: .background)
URLSessionTask
URLSessionTask는 URLSession에서 수행되는 작업을 나타내는 추상 클래스입니다.
네트워크 요청, 업로드, 다운로드 등의 작업이 이에 해당합니다.
URLSessionTask의 작업 유형
URLSessionTask는 네 가지 작업 유형을 제공
URLSessionDataTask: 서버에서 메모리로 데이터를 받아오는 작업을 수행. 백그라운드에서는 지원 X
URLSessionUploadTask: 서버로 파일 형태의 데이터를 업로드할 때 사용. 백그라운드에서 업로드를 지원
URLSessionDownloadTask: 서버에서 파일 형태의 데이터를 다운로드할 때 사용. 백그라운드에서 다운로드를 지원.
URLSessionStreamTask: TCP/IP 연결을 통해 양방향으로 메시지를 교환할 때 사용합니다.
// URLSessionDataTask 예시
leturl=URL(string:"https://example.com/data")!
letdataTask= defaultSession.dataTask(with: url){ data, response, error in
if let error = error {print("Error: \(error)")}else if let data = data {print("Received data: \(data)")}}
dataTask.resume()
// URLSessionUploadTask 예시
letuploadURL=URL(string:"https://example.com/upload")!
varuploadRequest=URLRequest(url: uploadURL)
uploadRequest.httpMethod ="POST"letfileURL=Bundle.main.url(forResource:"file", withExtension:"txt")!
letuploadTask= defaultSession.uploadTask(with: uploadRequest, fromFile: fileURL){ data, response, error in
if let error = error {print("Error: \(error)")}else{print("Upload completed successfully")}}
uploadTask.resume()
// URLSessionDownloadTask 예시
letdownloadURL=URL(string:"https://example.com/file.zip")!
letdownloadTask= backgroundSession.downloadTask(with: downloadURL){ url, response, error in
if let error = error {print("Error: \(error)")}else if let url = url {print("Downloaded file at: \(url)")}}
downloadTask.resume()
The text was updated successfully, but these errors were encountered:
URLSession
URLSession이란 서버와 데이터를 주고받기 위한 작업을 관리하는 클래스
URLSession
은 세 가지 구성 옵션을 제공.default
기본 통신 방식으로, 디스크 기반 캐싱을 지원
디스크 기반 캐싱을 사용하는 기본 URLSession 인스턴스 생성
let defaultSession = URLSession(configuration: .default)
디스크 기반 캐싱(Disk-based Caching)
디스크 기반 캐싱은 URLSession의 기본 동작 방식으로, 네트워크 요청을 통해 받은 데이터를 디스크에 캐시(cache)로 저장한다.
이렇게 저장된 캐시 데이터는 동일한 요청이 있을 때 네트워크를 통하지 않고 디스크에서 바로 가져와 사용할 수 있고
이를 통해 데이터 전송량을 줄이고 성능을 향상시킬 수 있다.
.ephemeral
쿠키나 캐시를 저장하지 않는 정책가진다.
개인 정보 보호 모드와 같은 용도로 사용
.background
앱이 백그라운드에 있을 때 콘텐츠 다운로드 및 업로드를 할 수 있게 한다
기본 구성 URLSession 인스턴스 생성
let defaultSession = URLSession(configuration: .default)
캐시나 쿠키를 저장하지 않는 URLSession 인스턴스 생성
let ephemeralSession = URLSession(configuration: .ephemeral)
백그라운드 작업을 지원하는 URLSession 인스턴스 생성
let backgroundSession = URLSession(configuration: .background)
URLSessionTask
URLSessionTask
는URLSession
에서 수행되는 작업을 나타내는 추상 클래스입니다.네트워크 요청, 업로드, 다운로드 등의 작업이 이에 해당합니다.
URLSessionTask의 작업 유형
URLSessionTask는 네 가지 작업 유형을 제공
URLSessionDataTask
: 서버에서 메모리로 데이터를 받아오는 작업을 수행. 백그라운드에서는 지원 XURLSessionUploadTask
: 서버로 파일 형태의 데이터를 업로드할 때 사용. 백그라운드에서 업로드를 지원URLSessionDownloadTask
: 서버에서 파일 형태의 데이터를 다운로드할 때 사용. 백그라운드에서 다운로드를 지원.URLSessionStreamTask
: TCP/IP 연결을 통해 양방향으로 메시지를 교환할 때 사용합니다.The text was updated successfully, but these errors were encountered: