[swift] Swift를 이용한 네트워크 프로그래밍

Swift를 사용하여 네트워크 프로그래밍을 하는 것은 매우 강력하면서도 직관적인 경험이 될 수 있습니다. 이 기술 블로그에서는 Swift의 내장된 네트워킹 라이브러리인 URLSession을 사용하여 네트워크 작업을 수행하는 방법을 알아보겠습니다.

목차


URLSession을 사용하여 데이터 가져오기

먼저, URLSession을 사용하여 서버에서 데이터를 가져오는 방법을 알아보겠습니다. 아래 예시 코드와 함께 GET 요청을 통해 데이터를 가져오는 방법을 살펴보겠습니다.

let url = URL(string: "https://api.example.com/data")!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
    if let error = error {
        print("Error: \(error)")
    } else if let data = data {
        let result = String(data: data, encoding: .utf8)
        print("Data: \(result)")
    }
}
task.resume()

URLSession을 사용하여 데이터 보내기

이제 HTTP POST 요청을 사용하여 데이터를 서버로 보내는 방법을 알아보겠습니다.

var request = URLRequest(url: URL(string: "https://api.example.com/postData")!)
request.httpMethod = "POST"
let parameters: [String: Any] = [
    "username": "example",
    "password": "123456"
]
request.httpBody = try? JSONSerialization.data(withJSONObject: parameters)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print("Error: \(error)")
        return
    }
    // Handle the response...
}
task.resume()

API 호출 및 응답 처리하기

마지막으로, URLSession으로 API를 호출하고 응답을 처리하는 방법을 살펴보겠습니다.

func fetchUserData() {
    let url = URL(string: "https://api.example.com/user")!
    
    URLSession.shared.dataTask(with: url) { (data, response, error) in
        guard let data = data else { return }
        do {
            let decoder = JSONDecoder()
            let userData = try decoder.decode(User.self, from: data)
            print(userData)
        } catch let error {
            print("Error: \(error)")
        }
    }.resume()
}

Swift를 사용하여 네트워크 프로그래밍을 할 때, URLSession을 효율적으로 사용하여 데이터를 가져오거나 보내고 응답을 처리할 수 있습니다. 이를 통해 강력하면서도 효율적인 네트워크 프로그래밍을 구현할 수 있습니다.

참고 자료