개발 알다가도 모르겠네요

URLSession을 간단하게 알아보자. 본문

모바일/Swift

URLSession을 간단하게 알아보자.

이재빵 2021. 1. 30. 23:53
728x90
  1. Create a url
  2. Create a URLSession
  3. Give the session a task
  4. Start the task

 

 

URLSession은 기본적으로 다음과 같은 순서(Life Cycle)로 진행됩니다.

  1. Session configuration을 결정하고, Session을 생성.
  2. 통신할 URL과 Request 객체를 설정.
  3. 사용할 Task를 결정하고, 그에 맞는 Completion Handler나 Delegate 메서드들을 작성.
  4. 해당 Task를 실행.
  5. Task 완료 후 Completion Handler가 실행.

 

Completion handler

어떠한 일이 끝났을 때 진행할 업무를 담당.

 

 

1. Session

URLSession은 크게 3가지 종류의 Session을 지원합니다.

  1. Default Session : 기본적인 Session으로 디스크 기반 캐싱을 지원합니다.
  2. Ephemeral Session : 어떠한 데이터도 저장하지 않는 형태의 세션입니다.
  3. Background Session : 앱이 종료된 이후에도 통신이 이뤄지는 것을 지원하는 세션입니다.

2. Request

URLRequest를 통해서는 서버로 요청을 보낼 때 어떻게 데이터를 캐싱할 것인지, 어떤 HTTP 메서드를 사용할 것인지(Get, Post 등), 어떤 내용을 전송할 것인지 등을 설정할 수 있습니다.

 

3. Task

Task 객체는 일반적으로 Session 객체가 서버로 요청을 보낸 후, 응답을 받을 때 URL 기반의 내용들을 받는(retrieve) 역할을 합니다. 

  1. Data Task : Data 객체를 통해 데이터 주고받는 Task입니다.
  2. Download Task : Data 파일의 형태로 전환 다운 받는 Task입니다. 백그라운드 다운로드를 지원합니다.
  3. Upload Task : Data 파일의 형태로 전환 업로드하는 Task입니다.