URLSession?
Swift의 URLSession은 네트워크 작업을 수행하기 위한 핵심 클래스 중 하나이다. 이 클래스는 HTTP 요청을 생성하고 보내며, 서버로부터 응답을 받아오는 등의 작업을 수행할 수 있다. URLSession은 비동기적으로 작동하며, 네트워크 작업이 완료되었을 때 클로저를 통해 결과를 처리한다.
URLSession은 세 가지 주요 작업 수행:
Data Task: 데이터를 다운로드하거나 업로드하는 작업을 처리한다. 이 작업은 JSON, 이미지, 동영상 등의 데이터를 가져오거나 서버에 업로드할 때 사용된다.
Download Task: 파일을 다운로드하는 작업을 처리한다. 이 작업은 대용량 파일을 다운로드할 때 특히 유용하다.
Upload Task: 파일이나 데이터를 서버에 업로드하는 작업을 처리한다. 이 작업은 사용자가 서버에 파일을 전송하거나 업로드할 때 사용된다.
URLSession은 기본적으로 iOS, macOS 및 watchOS에서 사용할 수 있고, 이 클래스는 네트워크 작업을 수행하는 데 있어서 강력하면서도 유연한 API를 제공하여 다양한 요구사항을 충족시킬 수 있다.
코드 예시:
import Foundation
// URLSession 인스턴스 생성
let session = URLSession.shared
// URL 생성
let url = URL(string: "https://api.example.com/data")!
// URLSessionDataTask 생성
let task = session.dataTask(with: url) { data, response, error in
// 에러 처리
if let error = error {
print("Error: \(error)")
return
}
// 응답 처리
guard let httpResponse = response as? HTTPURLResponse,
(200...299).contains(httpResponse.statusCode) else {
print("Invalid response")
return
}
// 데이터 처리
if let data = data {
let responseData = String(data: data, encoding: .utf8)
print("Response data: \(responseData ?? "")")
}
}
// 작업 시작
task.resume()
이 코드에서는 URLSession을 사용하여 지정된 URL에서 데이터를 가져온다. URLSessionDataTask를 생성하고, dataTask(with:) 메서드를 사용하여 URL로부터 데이터를 가져온다. 클로저는 데이터, 응답 및 오류를 처리하고 있고, 마지막으로, resume() 메서드를 호출하여 작업을 시작할 수 있다.
CoreData?
Core Data는 애플리케이션의 데이터 모델을 관리하고, 해당 데이터를 저장하고 검색하는 프레임워크이다. iOS, macOS, watchOS 및 tvOS에서 사용할 수 있으며, 데이터베이스 관리 및 객체 그래프 관리와 같은 기능을 제공한다. Core Data는 일반적으로 대규모 데이터 집합을 관리하는 애플리케이션에서 많이 사용된다.
Core Data의 주요 구성 요소?
Managed Object Model (MOModel): 애플리케이션의 데이터 구조를 정의하는 객체 그래프이다. 이 모델은 앱에서 사용하는 데이터 개체의 유형, 속성 및 관계를 설명한다. MOModel은 .xcdatamodeld 확장자를 가진 Xcode의 데이터 모델 파일에 정의된다.
Managed Object (MO): Core Data가 관리하는 데이터 항목이다. MO는 MOModel에 정의된 개체 유형의 인스턴스이다. 각 MO는 데이터베이스 내에서 고유한 식별자를 가지며, 해당 속성을 사용하여 데이터에 액세스할 수 있다.
Persistent Store Coordinator (PSC): 애플리케이션과 데이터 저장소 간의 중개자 역할을 한다. PSC는 데이터의 영구 저장을 관리하고, 애플리케이션의 데이터 모델과 실제 데이터 저장소 간의 매핑을 관리한다.
Managed Object Context (MOC): 애플리케이션의 데이터 모델을 작업하는 데 사용된다. MOC는 데이터를 추가, 수정, 삭제 및 검색할 수 있는 인터페이스를 제공하며, 이러한 작업은 일반적으로 MOC 내에서 수행된다. 또한, MOC는 데이터 변경을 추적하고 데이터 저장소에 변경 내용을 저장하는 역할도 한다.
Persistent Store: 실제 데이터를 저장하는 데 사용되는 백엔드 데이터베이스이다. SQLite가 Core Data의 기본 데이터 저장소이지만, 다른 유형의 데이터베이스도 지원된다.
Core Data를 사용하면 데이터 모델을 정의하고, 데이터를 저장하고 검색하는 등의 작업을 쉽게 수행할 수 있다. 또한, Core Data는 데이터의 관리를 위해 여러 기능을 제공하며, 데이터 모델이 변경될 때 자동으로 데이터베이스 스키마를 업데이트하는 등의 기능도 포함되어 있다. Core Data는 iOS 및 macOS 개발에서 매우 강력하고 유연한 도구로 널리 사용된다.