[swift] Objective-C와 Swift에서의 JSON 및 REST API 처리 방식 차이

Objective-C와 Swift는 iOS 및 macOS 애플리케이션 개발에 널리 사용되는 프로그래밍 언어입니다. 이 두 언어는 JSON 및 REST API를 다루는 방식에서 다소 차이가 있습니다. 이 글에서는 Objective-C와 Swift에서의 JSON 및 REST API 처리 방식을 비교하고자 합니다.

Objective-C에서의 JSON 처리

Objective-C에서는 NSJSONSerialization 클래스를 사용하여 JSON 데이터를 처리합니다. 다음은 Objective-C에서의 JSON 데이터 파싱 예제입니다.

NSError *error;
NSData *jsonData = [@"{\"key\": \"value\"}" dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
if (error) {
    NSLog(@"Error parsing JSON: %@", error.localizedDescription);
} else {
    NSString *value = jsonDictionary[@"key"]; // value에는 "value"가 저장됨
}

Swift에서의 JSON 처리

Swift에서는 Codable 프로토콜과 JSONDecoder, JSONEncoder 클래스를 사용하여 JSON 데이터를 처리합니다. 다음은 Swift에서의 JSON 데이터 파싱 예제입니다.

struct MyData: Codable {
    var key: String
}

let jsonData = Data("{\"key\": \"value\"}".utf8)
do {
    let decodedData = try JSONDecoder().decode(MyData.self, from: jsonData)
    let value = decodedData.key // value에는 "value"가 저장됨
} catch {
    print("Error parsing JSON: \(error.localizedDescription)")
}

REST API 호출 방식

Objective-C와 Swift에서의 REST API 호출 방식은 크게 다르지 않습니다. NSURLSession을 사용하여 HTTP 요청을 보내고, 응답을 처리합니다. 다음은 Objective-C에서의 REST API 호출 예제입니다.

NSURL *url = [NSURL URLWithString:@"https://api.example.com/data"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
        NSLog(@"Error fetching data: %@", error.localizedDescription);
    } else {
        // 데이터 처리 로직
    }
}];
[task resume];

Swift에서의 REST API 호출 방식은 Objective-C와 유사하며, URLSession을 사용하여 HTTP 요청을 보냅니다.

결론

Objective-C와 Swift에서의 JSON 및 REST API 처리 방식에는 일부 차이가 있지만, 두 언어 모두 뛰어난 기능을 제공하여 개발자들이 효율적으로 데이터를 다룰 수 있습니다.

참고문헌: