iOS 앱용 백엔드를 구축하는 방법은 무엇인가요?

Back4App Guide _ How to Build a Backend for Your iOS App_-2
Back4App Guide _ How to Build a Backend for Your iOS App_-2

iOS 앱은 웹 애플리케이션과 마찬가지로 데이터를 저장하고 추적할 수 있는 방법이 필요합니다. 데이터가 클라우드 백엔드 서비스에 저장되든, 로컬에 직접 구축한 서버에 저장되든, 사용자 데이터를 관리하려면 백엔드가 필수적입니다.

그러나 iOS 앱의 백엔드를 처음부터 구축하는 것은 특히 iOS 개발 및 백엔드 개발이 처음인 경우 어려운 작업이 될 수 있습니다.

이 튜토리얼에서는 iOS 앱의 백엔드를 구축하는 방법을 배웁니다. 먼저 iOS 개발에 대한 개요를 제공하고 장점과 한계에 대해 설명합니다.

그런 다음 사용 가능한 다양한 백엔드 옵션을 살펴봅니다. 마지막으로 서비스형 백엔드(BaaS)인 Back4App을 iOS 앱의 백엔드로 사용하는 방법을 배웁니다.

iOS 개요

Apple은 아이폰, 아이패드, 아이팟 터치 디바이스에 내장된 모바일 앱을 구동하는 기본 운영 체제로 iOS를 개발했습니다.

이러한 앱을 빌드하고 Apple이 설계한 대로 iOS 플랫폼에서 작동하도록 최적화하는 작업을 iOS 개발이라고 합니다. iOS 앱은 Objective-C와 최근에는 Swift라는 두 가지 프로그래밍 언어를 사용하여 작성됩니다.

Objective-C는 2014년 Swift가 도입되기 전까지 iOS 앱 개발에 주로 사용되던 언어였습니다. Swift는 보다 현대적이고 사용자 친화적인 언어로 설계되었으며, 유형 추론 및 읽기 및 쓰기가 더 쉬워지는 옵션과 같은 기능을 갖추고 있습니다.

두 언어 모두 동일한 프로젝트에서 사용할 수 있습니다. 이는 Swift 문서에 따르면 Swift가 Objective-C와 호환되도록 설계되었으며 기존 Objective-C 레거시 코드와 상호 작용하는 데 사용할 수 있기 때문입니다.

iOS 앱을 빌드하기 위해 Apple은 코드를 편리하게 작성하고, 빌드하고, 개발할 수 있는 통합 개발 환경(IDE)인 Xcode를 제공합니다.

iOS 애플리케이션 개발의 이점

개발자로서 iOS 앱을 구축하면 다음과 같은 이점이 있습니다:

고품질 사용자 경험

iOS 앱은 사용자가 매력적이고 사용하기 쉽다고 느끼는 직관적이고 세련된 디자인으로 뛰어난 사용자 경험으로 잘 알려져 있습니다.

단순성, 명확성, 일관성을 강조하는 최고의 사용자 경험을 위해 만들어진 구체적인 앱 디자인 가이드라인이 있습니다. 그 결과 사용자가 필요한 것을 쉽게 찾고 작업을 빠르게 완료할 수 있는 컨트롤과 레이아웃을 갖춘 시각적으로 매력적인 앱이 탄생했습니다.

또한 Apple은 개발자에게 앱이 최고 품질 기준을 충족할 수 있도록 포괄적인 디자인 도구와 리소스를 제공합니다.

또한 iOS 앱은 Apple 기기의 특정 하드웨어 및 소프트웨어에 최적화되어 있어 빠른 성능, 부드러운 애니메이션, 고품질 그래픽을 제공합니다.

보안 강화

iOS 애플리케이션의 또 다른 중요한 장점은 제공되는 보안 수준입니다. 이는 여러 가지 요인에 기인하며, 주로 Apple의 엄격한 App Store 검토 프로세스, 강력한 암호화 및 개인 정보 보호 기능에서 시작됩니다.

App Store 검토 프로세스는 모든 App Store 앱이 엄격한 콘텐츠 및 보안 가이드라인을 충족하도록 설계되었습니다. 여기에는 악성 코드, 멀웨어 및 기타 잠재적인 보안 위협에 대한 검사가 포함됩니다.

결과적으로 iOS 앱은 유해한 코드를 포함하거나 피싱 공격 또는 기타 악의적인 활동에 사용될 가능성이 줄어듭니다.

여러 기기에서 일관성 유지

iOS 앱은 iPhone, iPad, iPod Touch를 포함한 모든 Apple 기기에서 동일한 모양과 기능을 제공하도록 설계되었습니다.

이러한 일관성을 통해 사용자는 새로운 사용자 인터페이스나 탐색 시스템을 배울 필요 없이 여러 디바이스 간에 쉽게 전환할 수 있습니다. 또한 앱 개발자는 호환성 문제나 기기별 기능에 대해 걱정할 필요 없이 모든 기기에서 원활하게 작동하는 앱을 설계하고 구축할 수 있습니다.

개발자 도구

Apple은 iOS 개발자에게 iOS 앱을 더 쉽게 개발, 테스트 및 디버깅할 수 있는 강력한 도구를 제공합니다.

이러한 도구에는 iOS SDK, Xcode 및 개발자 환경과 앱 제작 품질을 최적화하는 데 도움이 되는 다양한 도구와 리소스가 포함됩니다.

iOS 애플리케이션 개발의 한계

iOS 개발 환경은 완벽하지 않습니다. iOS 앱을 개발할 때 경험하게 되는 제한 사항이 있습니다. 그 중 일부는 다음과 같습니다.

제한된 장치 호환성

iOS 앱을 개발할 때 가장 큰 어려움은 기기 호환 범위가 좁다는 점입니다. 오늘날의 세계에는 다양한 모바일 기기 제조업체와 그에 못지않게 다양한 전용 사용자가 존재합니다.

그러나 iOS 애플리케이션은 Apple의 자체 하드웨어에서만 실행됩니다. 즉, 앱은 iPhone, iPad 및 iPod Touch 기기에서만 사용할 수 있습니다. 따라서 앱의 잠재적 사용자를 제한하고 앱을 Apple 에코시스템으로 제한합니다.

Apple은 대규모 사용자 기반을 보유하고 있지만, iOS 애플리케이션의 제한된 기기 호환성은 Apple 외부의 더 많은 사용자에게 도달하려는 경우 단점이 될 수 있습니다.

앱 스토어 승인 프로세스

Apple의 앱 스토어 검토 절차는 엄격하기로 유명하며 Google Play와 같은 다른 앱 스토어보다 시간이 오래 걸릴 수 있습니다.

검토 프로세스는 App Store의 모든 앱이 품질, 안전 및 콘텐츠에 대한 Apple의 가이드라인을 충족하는지 확인하기 위해 고안되었습니다. 그러나 대기 시간이 길어지면 앱이 대중에게 공개되는 시기가 늦어질 수 있습니다.

폐쇄형 에코시스템

Apple은 기기의 하드웨어와 소프트웨어를 엄격하게 통제하기 때문에 Apple이 승인한 소프트웨어와 하드웨어만 iOS 기기에서 사용할 수 있습니다. 또한 폐쇄적인 에코시스템은 커스터마이징의 가능성을 제한하고 앱 사용자에게 더 많은 유연성을 제공하고자 하는 경우 장벽이 될 수 있습니다.

이러한 폐쇄적인 시스템으로 인해 개발자는 타사 서비스 및 API와 통합하기가 더 어려워집니다.

iOS 애플리케이션용 백엔드 옵션

이제 iOS 애플리케이션 개발의 장점과 한계를 알았으니 iOS 앱에 사용할 수 있는 다양한 백엔드 옵션을 이해해야 합니다.

IaaS

서비스형 인프라(IaaS)는 타사 제공업체가 개인 소프트웨어를 실행하는 데 필요한 사용자에게 인터넷을 통해 가상화된 컴퓨팅 리소스를 제공하는 클라우드 컴퓨팅 모델입니다.

IaaS를 사용하는 것은 타사 제공업체로부터 가상 컴퓨터를 빌리는 것과 같습니다. 컴퓨터를 구입하여 보관하는 대신 인터넷을 통해 공급업체가 호스팅하는 컴퓨터에 액세스할 수 있습니다.

이 컴퓨터는 저장 공간, 처리 능력, 메모리 등의 기능을 갖춘 나만의 가상 컴퓨팅 환경을 구축할 수 있는 모든 기본 인프라가 제공되는 실제 컴퓨터의 가상 표현일 뿐입니다.

제공업체는 이 가상 컴퓨터에 대한 액세스 권한을 부여하여 물리적 하드웨어나 유지 관리에 대한 걱정 없이 자체 소프트웨어와 애플리케이션을 실행할 수 있습니다.

IaaS를 사용하면 필요에 따라 확장하거나 축소할 수 있으며 사용한 만큼만 비용을 지불할 수 있습니다. IaaS 서비스의 예로는 Amazon Web Services(AWS), Microsoft Azure, Google Cloud Platform 등이 있습니다.

PaaS

서비스형 플랫폼(PaaS)은 IaaS와 유사한 또 다른 클라우드 컴퓨팅 모델입니다. PaaS 제공업체는 최소한의 사용자 지정으로 사전 구성된 플랫폼을 제공하므로 애플리케이션을 더 쉽고 빠르게 만들고 배포할 수 있습니다.

IaaS와 PaaS의 주요 차이점은 기본 인프라를 제어할 수 있는 수준입니다.

IaaS를 통해 공급자는 인터넷을 통해 서버 및 스토리지와 같은 가상화된 컴퓨팅 리소스를 제공합니다. 동시에 운영 체제, 미들웨어, 애플리케이션을 포함한 가상 환경을 완벽하게 제어할 수 있습니다.

반면에 PaaS를 사용하면 공급자는 애플리케이션 개발 및 배포에 필요한 운영 체제, 미들웨어 및 기타 소프트웨어 구성 요소를 위한 사전 구성된 플랫폼을 제공합니다. 사용자는 애플리케이션 개발에만 집중하면 되고 기본 인프라는 PaaS 제공업체가 처리합니다.

PaaS 서비스의 예로는 Heroku, Google 앱 엔진, Microsoft Azure 앱 서비스 등이 있습니다.

BaaS

서비스형 백엔드(BaaS)를 사용하면 기본 인프라를 구축하거나 관리하지 않고도 클라우드 백엔드를 애플리케이션에 쉽게 통합할 수 있습니다.

BaaS 제공업체는 데이터베이스, 사용자 인증, 파일 저장소, 서버리스 기능, 푸시 알림 등 일반적으로 PaaS나 IaaS에서 제공되지 않는 사전 구축된 백엔드 서비스를 제공합니다. 이제 API 또는 SDK를 통해 이러한 서비스를 애플리케이션에 통합할 수 있습니다.

따라서 자체 백엔드 인프라를 구축하고 유지 관리할 필요가 없으므로 앱의 프런트엔드 구축에 집중할 수 있습니다. BaaS 서비스의 예로는 Back4App, Firebase, 8Base 등이 있습니다.

iOS 애플리케이션용 백엔드 개발 비용은 얼마인가요?

iOS 앱용 백엔드 개발은 시간, 리소스, 필요한 인력 등 다양한 요인에 따라 비용이 달라질 수 있습니다.

백엔드 구축 및 설정에 소요되는 시간은 고려해야 할 중요한 요소입니다. 백엔드 구축에 필요한 시간은 앱 기능의 복잡성과 백엔드와 앱의 통합에 따라 달라집니다.

또한 테스트, 디버깅 및 배포에 추가 시간이 필요할 수도 있습니다. 앱의 기능이 복잡할수록 백엔드 개발에 더 많은 시간이 소요될 수 있으며, 이는 궁극적으로 비용을 증가시킬 수 있습니다.

백엔드 개발에 필요한 인적 자원은 비용에 영향을 미치는 또 다른 중요한 요소입니다. 숙련된 개발자를 고용하고 유지하는 데는 많은 비용이 들 수 있으며, 교육 및 개발 비용이 백엔드 개발의 전체 비용에 추가될 수 있습니다.

iOS 앱용 백엔드 개발 비용은 Back4app과 같은 기존 백엔드 솔루션을 활용하여 관리할 수 있습니다.

Back4app으로 iOS 앱 백엔드를 구축하는 방법?

Back4App은 모바일 및 웹 앱 개발을 위한 백엔드 인프라가 기성품으로 제공되는 서비스형 백엔드(BaaS) 플랫폼입니다. 데이터베이스 관리, 사용자 인증, 푸시 알림 등을 포함한 강력하고 확장 가능한 백엔드 인프라를 제공합니다.

Back4App은 여러 가지 이유로 iOS 앱의 백엔드로서 훌륭한 옵션입니다. 첫째, 데이터와 API를 쉽게 관리할 수 있는 간단하고 사용자 친화적인 인터페이스를 제공합니다.

둘째, 개발 프로세스의 모든 단계를 안내하는 포괄적인 문서를 제공합니다. 또한 Back4App은 규모에 관계없이 모든 앱의 요구 사항을 처리할 수 있는 확장 가능한 클라우드 호스팅을 제공하며 고급 보안 기능을 제공합니다.

아래 설명된 단계에 따라 Back4App을 사용하여 iOS 앱 백엔드를 구축할 수 있습니다.

1단계: 무료 백4앱 계정 가입하기

iOS 앱용 백엔드 인프라를 만들려면 공식 웹사이트에서 무료 Back4App 계정에 가입하세요. Back4App 계정을 사용하면 iOS 앱용 백엔드를 생성 및 구성하고 해당 백엔드 앱에서 모든 데이터 관련 프로세스를 관리할 수 있습니다.

무료 계정에 가입하려면 Back4App 웹사이트로 이동하여 Google 계정, GitHub 계정 또는 이메일 주소를 사용하여 가입하세요.

2단계: 새 앱 만들기

이제 Back4App 계정이 생겼으니 로그인하여 새 앱을 만들 수 있습니다. 이를 위한 버튼이 계정 페이지의 오른쪽 상단에 있습니다. 앱의 서비스형 백엔드 옵션을 선택해야 합니다.

새 앱에 어울리는 이름을 지정하고 만들기 버튼을 누릅니다.

이제 Back4App이 앱을 빌드하고 대시보드로 이동합니다.

3단계: iOS 앱을 Back4app에 연결하기

다음 단계는 iOS 앱을 Back4App 백엔드에 연결하는 것입니다. 이 작업을 수행하려면 iOS 앱에 Parse SDK를 설치해야 합니다. 앱은 이 SDK를 사용하여 백엔드에 대한 직접 링크를 얻게 됩니다.

연결을 설정하기 전에 작업할 iOS 앱이 실행 중이어야 합니다. 앞서 언급했듯이 iOS 애플리케이션은 Apple 소프트웨어 개발을 위한 Apple의 IDE인 Xcode를 사용하여 구축됩니다.

이 가이드를 따라 하려면 Mac 컴퓨터에 최신 버전의 Xcode(버전 13.0.0 이상)가 설치되어 있어야 합니다. 이 가이드에서 사용하는 도구 및 기능 중 일부는 해당 버전의 Xcode에서만 사용할 수 있습니다.

먼저 Xcode를 실행하고 새 Xcode iOS 프로젝트를 생성합니다:

Xcode 새 앱 초기화

몇 가지 구성 정보와 함께 앱의 이름을 입력하라는 메시지가 표시됩니다. 선택한 인터페이스로 SwiftUI를 선택해야 합니다.

Xcode 새 앱 구성

SwiftUI 인터페이스는 단계적으로 폐지되는 스토리보드 인터페이스와는 다른 보기 시스템을 사용합니다. 따라서 현재 프로젝트 구조에는 AppDelegate.swift 파일이 누락됩니다. 가이드의 뒷부분에서 이 파일이 필요하므로 이 파일을 만들어야 합니다.

AppDelegate.swift를 생성하고 다음 코드를 파일로 가져옵니다:

import SwiftUI

class AppDelegate: NSObject, UIApplicationDelegate {
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        return true 
    }
    
}

이제 루트 프로젝트 파일의 App에서 상단에 있는 다음 코드를 복사하여 붙여넣습니다:

@UIApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate

이제 Parse SDK를 설치할 준비가 되었습니다. Xcode 프로젝트를 위한 오픈 소스 종속성 관리자인 CocoaPods를 사용하여 설치합니다. 아직 설치하지 않았다면 지금 바로 설치하세요.

먼저 프로젝트 디렉터리 내의 터미널에서 pods init 명령을 실행하여 프로젝트의 포드파일을 초기화합니다.

생성된 포드파일을 Xcode로 열고 Parse SDK를 지정합니다.

포드파일은 다음과 같은 모습이어야 합니다:

# Uncomment the next line to define a global platform for your project
#platform :ios, '13.0'

target 'ParseiOS-app' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for ParseiOS-app
  pod 'Parse'
  
end

그런 다음 파드파일에 지정된 파싱 종속성을 사용하여 프로젝트에 파싱 SDK를 설치할 수 있습니다.

터미널에서 다음 명령을 실행합니다:

pod install

파드를 설치하면 프로젝트가 확장자가 .xcworkspace인 새 워크스페이스 파일로 재빌드됩니다. 여기서부터 재빌드된 워크스페이스로 작업하게 됩니다.

프로젝트에 Parse SDK를 성공적으로 설치했습니다.

파드 설치를 실행한 후 iOS 버전 시뮬레이터 호환성 오류가 발생할 수 있습니다. 이 경우 마지막에 이 내용을 포함하도록 파드파일을 수정하세요:

post_install do |installer|
  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
      end
    end
  end
end

코드 조각은 Pod파일에 대한 설치 후 훅으로, 코코아팟이 포드 설치를 완료한 후 Xcode 프로젝트의 빌드 설정을 수정할 수 있게 해줍니다.

이 특정 포스트 인스톨러는 iPhone OS의 최소 배포 대상 버전을 12.0으로 설정합니다. 언제든지 ['IPHONEOS_DEPLOYMENT_TARGET']에 새 버전을 할당하여 변경할 수 있습니다.

이제 파드를 다시 설치합니다:

pod install

iOS 앱 연결을 완료하려면 백4앱 앱의 앱 ID와 클라이언트 키를 연결해야 합니다. 이렇게 하려면 대시보드의 앱 설정으로 이동하여 서버 설정 > 핵심 설정으로 이동합니다.

핵심 설정에서 Back4App 백엔드에 대해 개인적으로 생성된 앱 ID와 클라이언트 키를 찾을 수 있습니다. 이 키를 복사하여 저장합니다.

참고: 위 이미지에 표시된 키는 이 가이드를 위해 제작된 테스트 앱용 키입니다. 위의 키는 앱에서 작동하지 않으므로 자신만의 맞춤화된 키를 복사해야 합니다.

그런 다음 AppDelegate.swift를 열고 didFinishLaunchingWithOptions 함수 내부의 기존 코드를 수정합니다.

함수는 다음과 같이 표시되어야 합니다:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
        print("app launched!")

        let configuration = ParseClientConfiguration {
    $0.applicationId = "PASTE_YOUR_APPLICATION_ID_HERE"
    $0.clientKey = "PASTE_YOUR_CLIENT_ID_HERE"
    $0.server = "<https://parseapi.back4app.com>"
}
Parse.initialize(with: configuration))

        return true
    }

저장한 앱 ID와 클라이언트 키를 표시된 자리 표시자에 붙여넣습니다.

그런 다음 Parse SDK를 이 파일로 가져와서 '모듈을 찾을 수 없음' 오류를 지워야 합니다:

import Parse

이제 앱이 백4앱에 성공적으로 연결되었습니다!

4단계: 백엔드 테스트

이 섹션에서는 iOS 앱을 테스트하여 백4앱 서버 및 생성한 앱과 상호 작용할 수 있는지 확인합니다.

Parse SDK를 사용하여 CRUD 작업을 테스트하고 데이터를 저장합니다.

테스트가 끝나면 생성된 데이터가 성공적으로 저장되고 백엔드 앱에서 읽히는지 확인할 수 있습니다.

백엔드에 데이터를 저장하려면 Back4app 내에서 클래스 객체를 생성합니다. 기본적으로 새 클래스에는 세 개의 필드가 있는 스키마가 있습니다: “objectId”, “createdAt”, “updatedAt”. 새 필드와 데이터 행을 추가할 수 있습니다.

iOS 앱에서 새 필드를 만들고 생성한 클래스에 저장된 데이터를 읽게 됩니다.

먼저 ContentView.swift 내에서 SwiftUI 바로 아래에 있는 Parse SDK를 임포트합니다:

import SwiftUI
import Parse

앱이 백엔드와 상호 작용할 수 있는지 테스트하기 위해 사용자가 점수 텍스트를 입력하고 백엔드에 저장할 수 있는 UI를 만들 수 있습니다. 또한 앱이 백엔드에 접속하여 수업의 데이터를 쿼리하고 저장된 점수를 표시할 수 있습니다.

ContentView.swift의 뷰 구조체 상단에 다음과 같은 변경 가능한 상태 프로퍼티를 만듭니다:

@State private var newScore: Int = ""
@State private var scores: [PFObject] = []

이러한 상태 속성은 값이 변경될 때 뷰 업데이트를 트리거합니다. 첫 번째는 문자열 타입의 newScore라는 상태 속성을 선언합니다. 이는 사용자가 새 점수에 대해 입력한 입력 값을 나타냅니다. 빈 문자열 ""로 초기화됩니다.

두 번째는 PFObject 인스턴스의 배열인 [PFObject] 유형의 scores라는 상태 프로퍼티를 선언합니다. 이것은 백엔드에서 가져온 점수를 나타냅니다.

PFObject 클래스는 데이터를 저장할 수 있는 Parse-SDK-iOS에서 제공하는 클래스 객체입니다. 이를 통해 개체에 대한 사용자 정의 프로퍼티와 값을 정의한 다음 백엔드에 저장할 수 있습니다.

그런 다음 VStack 요소 안에 다음 코드 스니펫을 추가합니다:

VStack {
  TextField("EnterScore", text: $newScore)
    .textFieldStyle(RoundedBorderTextFieldStyle())
    .padding()
  Button("Save Scores") {
    saveScore()
  }

  List(scores, id: \\.objectId) { score in
    Text(score["score"] as? String ?? "")
  }
}
.padding()
.onAppear {
  fetchScores()
}

사용자가 점수를 입력하는 텍스트 필드가 있습니다. text 매개 변수는 newScore 상태 변수에 바인딩되어 있으므로 텍스트 필드의 변경 사항이 newScore 변수에 반영됩니다.

다음으로 ‘점수 저장’ 버튼이 있는데, 이 버튼을 탭하면 saveScore() 함수가 트리거됩니다.

목록 구성 요소는 백엔드에서 가져온 점수를 표시합니다. 점수 배열을 사용하여 목록을 채우고 id 매개변수는 각 점수 항목의 고유 식별자를 지정합니다. 목록 안에는 점수 값을 문자열로 표시하는 텍스트 보기가 있습니다.

점수를 사용할 수 없거나 다른 유형인 경우를 처리하기 위해 선택적 연쇄와 nil-coalescing 연산자(??)를 사용합니다.

마지막으로, onAppear 수정자는 VStack 보기가 표시될 때 fetchScores() 함수를 트리거하는 데 사용됩니다.

이 시점에서 저장 점수() 및 가져 오기 점수 ( )를 찾을 수 없다는 오류가 발생해야합니다.

다음에는 이러한 함수를 만들 것입니다. 이 함수는 연결된 Back4app 백엔드 앱에서 각각 데이터 쓰기, 데이터 저장, 저장된 데이터 가져오기를 처리합니다.

.save( ) 또는 saveInBackground( ) 메서드 호출을 사용하여 newScore 변수를 백엔드에 저장합니다:

func saveScore() {
  let score = PFObject(className: "GameScore")
  score["score"] = newScore

  score.saveInBackground { success, error in
    if let error = error {
      print("Error saving score: \\(error.localizedDescription)")
    } else {
      print("Score saved sucessfully: \\(String(describing: score.objectId))")
      newScore = ""
      fetchScores()
    }

  }
}

먼저 클래스 이름이 “GameScore”인 PFObject의 새 인스턴스를 만듭니다. 이 객체는 백엔드 데이터베이스의 새 항목을 나타냅니다. 다음 줄에서 오브젝트의 “score” 속성을 newScore에 저장된 값으로 설정합니다.

다음으로 스코어 객체에서 saveInBackground 메서드를 호출합니다. saveInBackground를 사용하면 백그라운드 대기열에서 실행되는 비동기 저장 작업이 시작됩니다. 완료 클로저 내에서 저장 작업 중에 오류가 발생했는지 확인하고 오류를 처리합니다.

점수를 성공적으로 저장한 후, newScore 상태 변수를 빈 문자열로 재설정하여 텍스트 필드를 지웁니다. 그런 다음 fetchScores() 함수를 호출하여 점수 목록을 업데이트합니다.

fetchScores() 함수 내부에서는 Parse의 PFQuery를 사용하여 백엔드 데이터에 대한 쿼리를 수행하고 특정 클래스에서 객체를 검색합니다. 이 경우 그 클래스는 GameScore 클래스입니다:

func fetchScores() {
  let query = PFQuery(className: "GameScore")
  query.findObjectsInBackground { objects, error in
    if let error = error {
      print("Error fetching scores: \\(error.localizedDescription)")
    } else if let objects = objects {
      scores = objects
    }

  }
}

여기서는 쿼리 객체에서 findObjectsInBackground 메서드를 호출하여 비동기 가져오기 작업을 시작합니다. 완료 클로저 내에서 해당 쿼리의 결과를 처리할 수 있습니다.

가져오기 작업 중에 오류가 발생하면 오류 메시지를 인쇄합니다. 그렇지 않고 가져오기에 성공하고 객체가 반환되면 가져온 객체로 점수 상태 변수를 업데이트합니다. 이러한 객체는 백엔드에서 검색된 점수를 나타냅니다.

앱을 실행하고 새 악보를 입력한 후 악보 저장 버튼을 누르면 앱이 새 악보 값을 백엔드로 전송 및 저장하고 저장된 모든 악보를 가져옵니다. 그러면 아래 이미지와 같은 악보 목록이 표시됩니다.

앱 시뮬레이션
앱 시뮬레이션

점수가 백엔드의 점수 값과 어떻게 일치하는지 확인하세요.

Back4app 백엔드

이렇게 하면 테스트가 통과되고 Back4App 백엔드에서 데이터를 성공적으로 쓰고 읽을 수 있음을 확인할 수 있습니다.

이제 Back4App과 Swift 프로그래밍 언어를 사용하여 iOS 모바일 앱의 백엔드를 구축하는 방법을 배웠습니다.


Leave a reply

Your email address will not be published.