swift URLSession을 다루기 위해 익숙해져야할 개념

임혜정·2024년 7월 14일
0
post-custom-banner

1. URLSessionConfiguration

URLSessionConfiguration은 어떤 방식으로 서버와 통신할지 결정하는 것이다.
URLSession의 설정을 정의하고 보내는 요청에 대한 설정을 할 수 있다.

URLSessionConfiguration 세 가지 주요 유형

  • default: 기본 설정을 사용.
  • ephemeral: 일시적인 구성을 사용. 쿠키나 캐시 등을 저장하지 않기 때문에 개인정보 보호가 중요한 상황에 사용될 수 있다.
  • background: 앱이 백그라운드에 있을 때도 네트워크 작업을 계속할 수 있게 해준다. 파일 다운로드나 업로드 같은 작업에 좋다.
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)

위의 코드처럼 URLSessionConfiguration.default을 사용해 기본 설정으로 URLSession을 만들 수 있다. 이 설정을 통해 네트워크 요청의 속도, 시간 제한, 캐시 정책 등을 세부 조정 가능하다.


2. URLSessionTask

URLSessionTask는 URLSession이 실제로 네트워크 요청을 수행하는 작업을 의미한다. 이것은 우리가 보내는 요청과 받는 응답을 처리한다. 즉, URLSessionTask는 우리가 요청을 보내고 결과를 받을 때 사용되는 작업 단위다.

URLSessionTask에는 세 가지 주요 유형이 있다:

  • dataTask: 서버에서 데이터를 요청하고 받아올 때 사용된다. 주로 API 요청에 사용된다.
  • downloadTask: 파일을 다운로드할 때 사용된다. 큰 파일을 다운로드하는 데 유용하다.
  • uploadTask: 파일을 업로드할 때 사용된다. 서버에 파일을 전송할 때 사용된다.
let url = URL(string: "https://api.example.com/data")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    if let error = error {
        print("에러 발생: \(error.localizedDescription)")
        return
    }
    
    if let data = data {
        let resultString = String(data: data, encoding: .utf8)
        print("받은 데이터: \(String(describing: resultString))")
    }
}
task.resume()

🔼 dataTask를 사용해 서버에 데이터를 요청하고, 응답을 처리할 수 있다. task.resume()를 호출하면 실제로 네트워크 요청이 시작된다.

요약

  1. URLSessionConfiguration: URLSession의 설정을 정의하는 도구. 네트워크 요청의 속도, 시간 제한, 캐시 정책 등을 조정할 수 있다.
  2. URLSessionTask: 네트워크 요청을 수행하는 작업 단위. 데이터를 요청하거나 다운로드, 업로드할 때 사용된다.
profile
오늘 배운걸 까먹었을 미래의 나에게..⭐️
post-custom-banner

0개의 댓글