URLSession - 이론

2022. 4. 28. 16:02·iOS/iOS 개념

API를 호출하기 위한 방법을 찾던 중, Alamofire 라이브러리가 있지만 라이브러리 말고 스스로 적용해서 불러오는 방법에 익숙해진 후 라이브러리를 사용하는게 좋을거 같다고 판단하여 관련 내용을 정리

URLSession

  • URLSession 은 위 사진과 같은 구조를 갖는다
    • URLSessionConfiguration 을 통해 URLSession을 결정한후, Session을 생성
    • Delegate는 URLSession 통신의 중간 과정이나 통신 종료 후 같은 이벤트를 확인할 때 주로 사용
    • URLSessionConfiguration을 통해 Session 을 설정하면 URLSessionTask 로 보내 통신을 시작

URLSessionConfiguration

  • URLSessionConfiguration의 종류에 대해 알아보자
    • Default : 기본적인 세션으로 쿠키나 캐시를 저장할때 사용 ( 가장 기본적인 통신 )
    • Ephemeral : 쿠키나 캐시를 저장하지 않는 통신을 할때 사용 ( Private 모드 )
    • Background : 앱이 Background 상태일 때 사용하는 통신
  • Configuration 을 적용하지 않고 shared 를 사용할 수 있다
    • shared를 사용하면 싱글톤 객체를 제공하는데 편하게 사용할 수 있는 장점이 있지만, delegate도 없고, configuration 도 없기 때문에 일부 제한이 있음 이러한 사항을 고려하지 않을때는 간편하게 사용 가능

URLSessionTask

  • Session 작업 하나를 나타내는 추상 클래스
  • Task의 종류
    • DataTask : 서버로부터 응답 데이터를 받아 Data객체를 가져오는 작업 수행
    • UploadTask : 서버에 Data 객체나 File 데이터를 올리는(Upload) 작업 수행
    • DownloadTask : 서버로부터 Data를 다운받아 File 형태로 저장하는 작업 수행 ( Background 가능 )
'iOS/iOS 개념' 카테고리의 다른 글
  • URLSession 실습(2) - URLSession 적용
  • URLSession 실습(1) - URL
  • Concurrent 동시성
  • DTO 와 VO의 차이
Jeohong
Jeohong
기억 보단 기록을
  • Jeohong
    Chikong Devlog
    Jeohong
  • 전체
    오늘
    어제
    • 분류 전체보기 (186)
      • ---- 개발 컨텐츠 ---- (0)
      • iOS (30)
        • Swift 문법 (1)
        • iOS 개념 (12)
        • HIG (5)
        • SwiftUI (7)
        • UIKit (4)
      • Side Project (0)
      • 개발서적 (4)
        • 객체지향 사실과 오해 (4)
      • 알고리즘 (74)
        • 자료구조 개념 (2)
        • Swift (25)
        • JavaScript (47)
      • ---- 회고 계획 컨텐츠 ---- (0)
      • 계획 및 일기 (10)
      • 회고록 (1)
      • 컨퍼런스 탐방 (1)
      • 미드로 영린이 탈출하기 (1)
      • ---- Previous content ---- (0)
      • Frontend (2)
        • HTML & CSS (2)
      • KITRI 수업 (17)
        • 리눅스 (14)
        • 네트워크 (2)
      • 42seoul (17)
        • Bonr2code (9)
        • 넋두리 (7)
        • 멘토특강 (1)
      • 해킹 실습 (20)
        • 해커스쿨 - F.T.Z (19)
        • WebGoat (1)
      • Tensorflow로 시작하는 NLP (1)
        • 예제 (1)
      • 자연어처리 입문 (1)
        • 이론 (1)
      • 텐서플로로 배우는 딥러닝 (7)
        • 이론 (2)
        • 예제 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    라피신
    코딩
    개발자
    1서클
    알고리즘
    Algorithm
    본과정
    스위프트
    IOS
    네트워크
    swift
    42서울
    javascript
    자료구조
    SwiftUI
    boj
    hig
    42seoul
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Jeohong
URLSession - 이론
상단으로

티스토리툴바