[swift] Swift에서 사용자 입력을 기준으로 네트워크 통신하기

iOS 앱을 개발하는 과정에서 사용자 입력을 기반으로 네트워크 통신을 수행해야 하는 경우가 있습니다. 사용자가 제공하는 정보에 따라 서버와의 통신이 필요한데, Swift에서 이러한 작업을 수행하는 방법에 대해 알아보겠습니다.

사용자 입력 받기

먼저, 사용자로부터 입력을 받는 방법은 다양합니다. 주로 UITextField, UITextView 또는 다른 사용자 입력 요소를 사용하여 텍스트를 입력받습니다. 이 예시에서는 UITextField를 사용하여 사용자의 입력을 받는 상황을 가정하겠습니다.

다음은 UITextField를 이용해 사용자로부터 입력을 받는 코드의 예시입니다.

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {
    var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        textField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
        textField.placeholder = "Enter text here"
        textField.delegate = self
        view.addSubview(textField)
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        if let inputText = textField.text {
            // 입력받은 텍스트를 이용한 네트워크 통신 수행
            performNetworkRequest(with: inputText)
        }
        return true
    }

    func performNetworkRequest(with inputText: String) {
        // 입력받은 텍스트를 이용하여 네트워크 통신을 수행하는 코드 작성
        // ...
    }
}

위의 예시 코드에서 textFieldShouldReturn 메서드는 사용자가 텍스트필드에서 Return 키를 누를 때 호출되며, 이를 통해 사용자 입력을 받아서 네트워크 요청을 수행합니다.

네트워크 통신 수행하기

사용자 입력을 받았다면, 이제 해당 입력을 기반으로 네트워크 통신을 수행하는 과정을 알아봅시다. 네트워크 통신을 위해서는 보통 URLSession을 사용합니다.

다음은 Swift에서 URLSession을 사용하여 GET 요청을 수행하는 예시 코드입니다.

func performNetworkRequest(with inputText: String) {
    if let url = URL(string: "https://api.example.com/data?input=\(inputText)") {
        URLSession.shared.dataTask(with: url) { data, response, error in
            if let data = data {
                // 받아온 데이터를 처리하는 코드 작성
            }
        }.resume()
    }
}

위의 코드에서 URLSession을 사용하여 입력받은 텍스트를 포함한 URL로 GET 요청을 보내고, 응답을 처리하는 코드를 작성할 수 있습니다.

이렇게하여 사용자 입력을 기반으로 네트워크 통신을 수행할 수 있습니다.

요약

Swift를 사용하여 사용자 입력을 받고, 해당 입력을 기반으로 네트워크 통신을 수행하는 방법에 대해 알아보았습니다. 사용자 입력을 받는 방법과 URLSession을 이용한 네트워크 통신을 위한 기본적인 예시 코드를 통해, 실제 앱에서 사용자 입력을 기반으로 동적인 네트워크 요청을 수행할 수 있습니다.

참고 자료