서비스 개발에서 서버와의 통신은 매우 중요한 요소입니다. iOS에서는 이를 위해 URLSession API를 사용할 수 있습니다.
하지만 서버와의 통신은 비용이 발생하고, 사용자 인증과 같은 민감한 데이터를 다룰 때는 정보 노출 위험이 있습니다. 따라서 URLSession을 잘 이해하고 활용해야 더욱 안전하고 효율적인 서비스를 제공할 수 있습니다.
URL을 통해 네트워크 환경에서 데이터를 주고 받을 수 있도록 API를 제공합니다. 앱은 하나 이상의 URLSession
를 생성하여 작업을 처리할 수 있습니다. 예를 들어, 웹 브라우저의 경우 탭 혹은 창당 하나의 URLSession
을 만들어 서버를 통해 데이터를 가져오거나, 양뱡향 세션, 백그라운드 작업을 위한 세션을 각각 만들어 처리할 수 있습니다.
URLSession
은 기본적으로 HTTP/1.1, HTTP/2 및 HTTP/3 프로토콜을 지원합니다.
URLSession은 5가지의 작업을 처리할 수 있습니다.
서버에서 비교적 작은 데이터를 가져오거나 업로드할 때 주로 사용됩니다.
DataTask는 데이터를 바로 메모리에 로드하기 때문에, 용량이 큰 이미지와 같은 파일을 처리할 때는 적합하지 않습니다. 이 경우 메모리 효율성을 고려하여 DownloadTask 또는 UploadTask를 사용하는 것이 더 좋습니다.
서버에 이미지나 영상 파일과 같은 대용량 데이터를 업로드할 때 적합합니다.
이때, fromData 형식으로 데이터를 업로드할 수도 있지만, 디스크에 저장된 파일 경로 통한 업로드가 가능합니다.
경로를 통해 업로드 할 경우 스트리밍 방식으로 일정 크기로 나누어 전송하기 때문에 메모리에 전체 데이터를 한번에 올리지 않아 메모리 효율성을 높일 수 있습니다.