[iOS]_URLSession

윤여송·2023년 8월 31일
0

iOS

목록 보기
8/11
post-thumbnail

📂 URLSession

Foundation Framework에서 지원하는 iOS 앱과 서버간 데이터를 주고받기 위해 사용되는 API. HTTP를 포함한 몇가지 프로토콜을 지원하고, 인증, 쿠키 관리, 캐시 관리 등을 지원한다. 통신 시에는 Request와 Response를 기본 구조로 가진다.

Request:

  • URL객체를 통해 직접 통신하는 형태/ URLRequest객체를 만들어 통신하는 형태(옵션 설정 가능)가 있다. 설정 가능한 옵션으로는 HTTP Method(Get, Post 등) 어떤 내용을 전송할 것인지 등이다.

Response:

  • 설정된 CompletionHandler로 Response를 받는 형태/ URLSessionDelegate를 통해 지정 메소드를 호출하는 형태가 있다.
    background 상태에서의 동작이나, 인증 및 캐싱을 default옵션으로 사용하지 않는 경우 Delegate 패턴을 사용한다.

URLSession은 두 가지 종류로 구성되어 있다.

  • URLSessionConfiguration: URLSession 생성
  • URLSessionTask: 실제 서버와 통신 담당(서버로 보낸 요청에 대한 응답을 받는 역할)

URLSessionConfiguration을 통해 생성할 수 있는 Session은 다음과 같다.

  • URLSession.share():
    공유 세션. Singleton이며, 기본요청을 하기 위한 세션이다.
  • URLSession(configuration:.default):
    기본 세션. 직접 원하는 설정이 가능하다. 캐시, 쿠키 정보를 저장하고 delegate설정이 가능하다.
  • URLSession(configuration:.ephemeral):
    캐시, 쿠키, 사용자 인증 정보들을 디스크에 저장하지 않으며, 세션 만료시 데이터가 사라진다.
  • URLSession(configuration:.background):
    앱이 실행되지 않는 background상태에서 컨텐츠 업로드나 다운로드 실행이 가능하다.

URLSessionTask의 종류는 다음과 같다.

profile
y_some__velog

0개의 댓글