URLSessionConfiguration Default, Ephemeral, Background 설정의 차이점 이해하기

작성일 :

URLSessionConfiguration Default, Ephemeral, Background 설정의 차이점 이해하기

Swift에서 네트워킹 작업을 수행할 때 URLSession은 중요한 역할을 합니다. URLSession을 통해 네트워크 요청을 보내고 응답을 받을 수 있습니다. 이 URLSession은 다양한 설정을 통해 사용자 맞춤형 네트워킹 환경을 제공하는데, 주로 사용하는 설정으로는 Default, Ephemeral, Background가 있습니다. 이 글에서는 각 설정의 특성과 차이점, 그리고 사용 시나리오에 대해 자세히 살펴보겠습니다.

URLSessionConfiguration Default

Default 구성은 가장 일반적인 설정입니다. 이 설정은 네트워크 요청을 캐싱하고 쿠키를 저장하며, 일반적인 네트워크 작업에 적합합니다. Default 설정은 사용자가 명시적으로 변경하지 않는 한, 기본적인 값을 사용합니다.

특징

  • 캐싱 사용: 네트워크 요청의 응답 결과를 캐시하여, 동일한 요청을 반복할 때 속도 향상을 기대할 수 있습니다.
  • 쿠키 저장: 서버로부터 받은 쿠키를 저장하고, 다음 요청 시 자동으로 전송합니다.
  • 기본 설정: 특별히 설정하지 않은 경우 기본값으로 사용됩니다.

사용 예

일반적인 웹 API 호출이나 사용자 인증을 필요로 하는 네트워크 요청에 적합합니다. 대부분의 애플리케이션에서는 Default 설정이 충분합니다.

swift
let defaultConfig = URLSessionConfiguration.default
let session = URLSession(configuration: defaultConfig)

URLSessionConfiguration Ephemeral

Ephemeral 설정은 데이터가 디스크에 저장되지 않도록 합니다. 즉, 캐시되지 않으며 쿠키도 저장되지 않습니다. 이 설정은 개인정보 보호가 중요한 애플리케이션에서 유용합니다.

특징

  • 캐시 미사용: 모든 네트워크 요청의 응답을 매번 새로 받아옵니다.
  • 쿠키 미저장: 서버로부터 받은 쿠키를 저장하지 않으며, 즉시 사용 후 폐기됩니다.
  • 임시 데이터: 세션 종료 시 모든 임시 데이터가 삭제됩니다.

사용 예

은행 애플리케이션이나 개인 정보를 다루는 애플리케이션에서 사용자 활동을 보호하기 위해 Ephemeral 설정을 사용할 수 있습니다.

swift
let ephemeralConfig = URLSessionConfiguration.ephemeral
let session = URLSession(configuration: ephemeralConfig)

URLSessionConfiguration Background

Background 설정은 앱이 백그라운드 상태에서도 네트워크 요청을 계속 수행할 수 있도록 합니다. 이 설정은 대용량 파일 다운로드나 업로드에 유리합니다.

특징

  • 백그라운드 작업: 앱이 백그라운드 상태일 때도 네트워크 작업이 지속됩니다.
  • 별도 세션 식별자: 백그라운드 작업을 위해 고유한 세션 식별자가 필요합니다.
  • 작업 완료 핸들링: 백그라운드 작업이 완료되면 앱이 재실행되어 결과를 처리할 수 있습니다.

사용 예

파일 다운로드 매니저나 클라우드 백업 서비스 등 대용량 데이터 전송 작업에 이상적입니다.

swift
let backgroundConfig = URLSessionConfiguration.background(withIdentifier: "com.example.app.background")
let session = URLSession(configuration: backgroundConfig)

설정 비교

설정캐싱쿠키 저장백그라운드 동작
Default사용저장불가능
Ephemeral미사용미저장불가능
Background사용저장가능

결론

URLSessionConfigurationDefault, Ephemeral, Background 설정은 각각 다른 상황에서 유용한 특성을 가지고 있습니다. 일반적인 사용에서는 Default 설정이 충분하며, 개인정보 보호가 중요한 경우 Ephemeral 설정을, 대용량 파일 전송이나 백그라운드 작업이 필요한 경우 Background 설정을 선택하는 것이 좋습니다. 각 설정의 특성을 이해하고 요구하는 시나리오에 맞춰 적절히 사용하는 것이 효율적인 네트워킹 작업을 수행하는 데 도움이 됩니다.