모바일/Swift
URLSession을 간단하게 알아보자.
이재빵
2021. 1. 30. 23:53
728x90
- Create a url
- Create a URLSession
- Give the session a task
- Start the task
URLSession은 기본적으로 다음과 같은 순서(Life Cycle)로 진행됩니다.
- Session configuration을 결정하고, Session을 생성.
- 통신할 URL과 Request 객체를 설정.
- 사용할 Task를 결정하고, 그에 맞는 Completion Handler나 Delegate 메서드들을 작성.
- 해당 Task를 실행.
- Task 완료 후 Completion Handler가 실행.
Completion handler
어떠한 일이 끝났을 때 진행할 업무를 담당.
1. Session
URLSession은 크게 3가지 종류의 Session을 지원합니다.
- Default Session : 기본적인 Session으로 디스크 기반 캐싱을 지원합니다.
- Ephemeral Session : 어떠한 데이터도 저장하지 않는 형태의 세션입니다.
- Background Session : 앱이 종료된 이후에도 통신이 이뤄지는 것을 지원하는 세션입니다.
2. Request
URLRequest를 통해서는 서버로 요청을 보낼 때 어떻게 데이터를 캐싱할 것인지, 어떤 HTTP 메서드를 사용할 것인지(Get, Post 등), 어떤 내용을 전송할 것인지 등을 설정할 수 있습니다.
3. Task
Task 객체는 일반적으로 Session 객체가 서버로 요청을 보낸 후, 응답을 받을 때 URL 기반의 내용들을 받는(retrieve) 역할을 합니다.
- Data Task : Data 객체를 통해 데이터 주고받는 Task입니다.
- Download Task : Data를 파일의 형태로 전환 후 다운 받는 Task입니다. 백그라운드 다운로드를 지원합니다.
- Upload Task : Data를 파일의 형태로 전환 후 업로드하는 Task입니다.