SwiftUI를 위한 백엔드를 구축하는 방법?
이 튜토리얼에서는 Back4App을 사용하여 SwiftUI iOS 앱의 완전한 백엔드를 구축하는 방법을 배웁니다.
Parse Swift SDK를 SwiftUI 프로젝트에 통합하고 데이터베이스 관리, 클라우드 코드 기능, REST 및 GraphQL API, 사용자 인증, 실시간 쿼리와 같은 주요 Back4App 기능을 활용하여 안전하고 확장 가능한 백엔드를 만드는 방법을 보여드립니다.
이 접근 방식은 데이터를 안전하게 저장하고, 서버 측 작업을 설정할 필요 없이 수행하며, 필요에 따라 iOS 앱 또는 웹 앱을 쉽게 확장할 수 있도록 도와줍니다.
Back4app의 빠른 설정과 직관적인 환경이 수동으로 서버와 데이터베이스를 구성하는 것에 비해 시간과 노력을 크게 줄일 수 있는 방법도 보여드릴 것입니다.
마지막에는 SwiftUI를 위한 백엔드를 구축하는 방법을 이해하게 되어, 이를 프로덕션 환경으로 확장하거나 사용자 정의 논리 및 API와 통합할 수 있습니다.
최소한의 오버헤드로 강력하고 확장 가능한 백엔드를 만드는 작업을 시작해 봅시다!
- 기본 SwiftUI 개발 환경 기계에 Xcode가 설치되어 있어야 하며 기본 SwiftUI 또는 iOS 앱 프로젝트가 설정되어 있어야 합니다.
시작하기 전에 모든 것이 준비되어 있는지 확인하세요. Back4app 프로젝트를 설정하고 로컬 SwiftUI 환경을 준비하면 더 쉽게 따라할 수 있습니다.
Back4App에서 SwiftUI 백엔드를 구축하는 첫 번째 단계는 새 프로젝트를 만드는 것입니다. 아직 만들지 않았다면, 다음 단계를 따르세요:
- Back4app 계정에 로그인하세요.
- Back4app 대시보드에서 “새 앱” 버튼을 클릭하세요.
- 앱에 이름을 지정하세요 (예: “SwiftUI-Backend-Tutorial”).
프로젝트가 생성되면 Back4app 대시보드에 나열된 것을 볼 수 있습니다. 이 프로젝트는 이 튜토리얼에서 논의된 모든 백엔드 구성의 기초가 될 것입니다.
Back4app은 데이터 관리, 실시간 기능 제공, 사용자 인증 처리 등을 위해 Parse 플랫폼에 의존합니다. SwiftUI 애플리케이션을 Back4app에 연결하려면 Parse Swift SDK를 설치하고 Back4app 대시보드의 자격 증명으로 초기화해야 합니다.
파스 키 가져오기: Back4app 대시보드에서 앱의 “앱 설정” 또는 “보안 및 키” 섹션으로 이동하여 애플리케이션 ID와 클라이언트 키 (또는 자바스크립트 키)을 찾으세요. 또한 파스 서버 URL (종종 https://parseapi.back4app.com)를 찾을 수 있습니다.
파스 스위프트 SDK 설치:
만약 스위프트 패키지 관리자, 프로젝트를 Xcode에서 열고 다음과 같이 하세요:
- 파일 → 패키지 추가 → URL 입력 https://github.com/netreconlab/Parse-Swift.git.
- 버전 규칙에서 “다음 주요 버전까지”를 선택하고 확인하세요.
만약 코코아팟:
앱에서 파스 초기화 하세요. 예를 들어, 앱 구조체에서:
이 단계를 완료함으로써, SwiftUI 프론트엔드와 Back4app 백엔드 간의 안전한 연결을 설정했습니다. 모든 요청 및 데이터 거래는 Parse Swift SDK에 의해 처리되며, 수동 REST 또는 GraphQL 호출의 복잡성을 줄여줍니다(필요할 때 여전히 사용할 수 있습니다).
Back4app 프로젝트가 설정되고 Parse Swift SDK가 통합되었으므로, 이제 데이터를 저장하고 검색할 수 있습니다. 아래는 간단한 ParseObject 예제입니다. 우리가 Todo 구조체를 가지고 있다고 가정해 보겠습니다:
새 Todo 저장하기:
모든 Todo 쿼리하기:
대안으로, Back4app의 REST API 엔드포인트를 사용하거나 GraphQL:
GraphQL:
여러 옵션(Parse Swift SDK, REST, GraphQL)을 사용하면 작업 흐름에 가장 적합한 접근 방식을 선택할 수 있습니다.
기본적으로 Parse는 스키마를 즉석에서 생성, 하지만 더 많은 제어를 위해 Back4app 대시보드에서 클래스를 정의할 수도 있습니다.
- “데이터베이스” 섹션으로 이동하여 Back4app 대시보드에서.
- 새 클래스를 생성 (예: “Todo”)하고 title (문자열) 및 isCompleted (부울)과 같은 관련 열을 추가합니다.
Back4app은 다양한 데이터 유형을 지원합니다: 문자열, 숫자, 부울, 객체, 날짜, 파일, 포인터, 배열, 관계, 지리적 지점, 및 다각형. 각 필드에 적합한 유형을 선택할 수 있습니다.
Back4app은 데이터 모델을 설계하는 데 도움을 줄 수 있는 AI 에이전트를 제공합니다:
- 앱 대시보드에서 AI 에이전트를 엽니다.
- 간단한 언어로 데이터 모델을 설명합니다 (예: “새 ToDo 클래스 스키마를 만들어 주세요.”).
- AI 에이전트가 스키마를 생성하도록 합니다.
관계형 데이터가 있는 경우—예를 들어, Category 객체가 여러 Todo 항목을 가리키는 경우—Parse에서 Pointers 또는 Relations를 사용할 수 있습니다. 예를 들어:
쿼리할 때, 포인터 데이터를 포함할 수 있습니다:
실시간 업데이트를 위해, Back4app은 실시간 쿼리를 제공합니다. SwiftUI 앱에서 특정 클래스의 변경 사항을 구독할 수 있습니다:
- 실시간 쿼리 활성화를 Back4app 대시보드의 서버 설정에서 설정하세요.
- 코드에서 구독하기
서버에서 할 일이 생성되거나 업데이트되거나 삭제될 때마다, 귀하의 앱은 실시간으로 알림을 받습니다. 이 기능은 즉각적인 데이터 동기화가 필요한 협업 또는 동적 앱에 매우 유용합니다.
Back4app은 Access Control Lists (ACLs) 및 Class-Level Permissions (CLPs)를 제공하여 강력한 데이터 보안을 제공합니다. 이를 통해 객체별 또는 클래스별로 데이터를 읽거나 쓸 수 있는 사용자를 제한할 수 있으며, 인증된 사용자만 데이터 수정이 가능하도록 보장합니다.
ACL은 개별 객체에 적용됩니다. 예를 들어, 특정 사용자만 Todo를 읽거나 쓸 수 있도록 하려면:
CLPs는 전체 클래스의 기본값을 관리합니다. 예를 들어, 클래스가 공개적으로 읽거나 쓸 수 있는지, 또는 특정 역할만 접근할 수 있는지를 설정합니다.
- Back4app 대시보드로 이동하여 앱을 선택합니다.
- Database 섹션을 열고, 클래스를 선택합니다 (예: Todo).
- Class-Level Permissions 탭을 엽니다.
- “인증 필요” 또는 “접근 불가”와 같은 기본값을 설정합니다.
이 권한은 광범위한 기준선을 설정하며, ACL은 객체 수준에서 보안을 세밀하게 조정할 수 있게 해줍니다. 두 가지를 결합하면 강력한 보안 모델을 보장합니다. 자세한 내용은 앱 보안 가이드라인.
클라우드 코드는 서버를 관리하지 않고도 사용자 정의 서버 측 Swift(또는 JavaScript) 코드를 실행할 수 있게 해줍니다. 클라이언트에서 실행되어서는 안 되는 비즈니스 로직, 데이터 검증, 트리거 또는 백엔드 통합을 추가하는 데 이상적입니다.
- 작성 클라우드 코드를 main.js (JavaScript)와 같은 파일에 작성하거나 Swift 기반 클라우드 코드 환경을 활용하세요.
- 배포 Back4app 프로젝트에 배포하세요. 코드는 Parse Server의 환경에서 실행되므로, 자체 서버를 유지 관리할 필요가 없습니다.
- 호출 클라이언트에서 Swift SDK, REST 또는 GraphQL을 통해 클라우드 코드를 호출하세요.
- 비즈니스 로직: 복잡한 데이터 검증, 필드 계산 또는 외부 통합.
- 데이터 트리거: 객체가 저장, 업데이트 또는 삭제될 때 로직을 실행합니다.
- 보안: 클라이언트에서 민감한 작업을 보호하기 위해 서버 측에서 실행합니다.
아래는 JavaScript 클라우드 코드(클라우드 코드는 주로 Back4App에서 JS를 사용함) 샘플로, 텍스트 길이를 계산합니다:
- 계정 키를 설정하세요:
- 배포 클라우드 코드:
Swift에서:
REST를 통해:
Back4app은 ParseUser 클래스를 사용하여 안전한 인증을 처리합니다. 비밀번호 해싱, 세션 토큰 및 데이터는 자동으로 처리되어 앱의 논리에 집중할 수 있습니다.
새 사용자 등록하기:
기존 사용자 로그인:
세션 토큰은 Parse에 의해 자동으로 처리됩니다. 로그아웃할 수 있습니다:
다음과 통합 가능: 구글, 애플, 페이스북, 등 추가 설정이 필요합니다. 소셜 로그인 문서를 확인하여 자세한 내용을 알아보세요.
Back4app 대시보드에서 이메일 인증을 활성화하고, 사용자가 안전하게 계정을 복구할 수 있도록 비밀번호 재설정 이메일을 구성하세요. 비밀번호 재설정:
Parse는 파일 업로드 처리를 위해 ParseFile을 포함합니다:
이를 ParseObject에 첨부하십시오:
기본적으로 파일은 공개 URL을 통해 접근할 수 있습니다. Parse Server 설정을 사용하여 파일 보안을 구성할 수 있습니다. 더 엄격한 파일 제어를 위해 인증된 사용자 또는 지정된 역할만 파일을 업로드하거나 검색할 수 있도록 하십시오.
클라우드 작업을 사용하면 데이터 정리 또는 이메일 전송과 같은 반복 작업을 예약하고 실행할 수 있습니다.
배포 후, 예약을 Back4app 대시보드의 서버 설정 > 백그라운드 작업에서 설정하세요.
웹훅은 특정 이벤트가 발생할 때마다 Back4app 앱이 외부 서비스(예: Stripe)에 HTTP 요청을 보낼 수 있게 해줍니다. 이는 서드파티 도구나 다른 서버 측 통합에 연결하는 데 유용합니다.
- Back4app 대시보드에서 웹훅으로 이동하세요 > 더보기 > 웹훅.
- 엔드포인트 추가 (예: https://your-service.com/webhook).
- 어떤 이벤트가 (예: Todo 클래스의 새 레코드) 웹훅을 트리거할지 설정하세요.
예를 들어, 사용자가 새로운 Todo를 생성할 때마다 Slack 메시지를 보낼 수 있습니다. 이는 외부 서비스와 Back4app 데이터를 동기화하는 데 도움이 됩니다.
Back4app 관리 앱”은 비기술 사용자가 데이터에 대한 CRUD 작업을 수행할 수 있는 웹 기반 관리 인터페이스입니다. 이는 Parse 대시보드와 분리된 사용자 친화적인 UI를 제공하여 프로덕션에서 데이터를 관리하기 쉽게 만듭니다.
“앱 대시보드 > 더보기 > 관리 앱”으로 이동하여 “관리 앱 활성화”를 클릭하세요.
관리 사용자 생성하기, 이는 자동으로 관리 역할과 관련 클래스를 생성합니다. 관리 인터페이스를 위한 하위 도메인을 선택한 후, 간단한 포인트 앤 클릭 UI를 통해 데이터를 관리하기 위해 로그인하세요.
이 포괄적인 가이드를 따라함으로써, 당신은 다음을 배웠습니다:
- SwiftUI를 위한 백엔드를 구축하는 방법 Back4app과 Parse Swift SDK를 사용하여.
- 데이터를 저장하는 방법 사용자 정의 클래스 스키마와 관계를 통해 안전하게.
- 실시간 쿼리를 통합하는 방법 (라이브 쿼리) 즉각적인 데이터 업데이트를 위해.
- 보안 조치를 적용하는 방법 ACL과 CLP를 사용하여 데이터 접근을 보호하고 관리하기 위해.
- 비즈니스 로직을 실행하는 방법 클라우드 코드를 통해.
- 파일 저장소를 처리하는 방법, 인증 및 클라우드 작업으로 백그라운드 작업 예약.
- 외부 서비스와 통합하는 방법 웹훅을 사용하여.
이 기술을 통해, 당신은 관리하기 쉽고, 안전하며, 확장할 준비가 된 iOS 앱 또는 웹 앱을 구축할 수 있습니다. 역할 기반 권한, 푸시 알림 또는 고급 캐싱과 같은 더 많은 고급 기능을 탐색하십시오. 다른 API를 통합하거나 특정 사용 사례에 맞게 클라우드 코드를 조정할 수도 있습니다.
행복한 코딩, 그리고 Back4App에서 멋진 앱을 만드는 것을 즐기세요!
- 프로덕션 준비 완료된 SwiftUI 앱: 이 백엔드를 확장하여 더 복잡한 데이터 모델, 캐싱 및 성능 향상을 처리하세요.
- 고급 기능: 전문 인증, 역할 기반 접근 또는 서드파티 API 통합(예: Stripe)에 대해 더 깊이 파고드세요.
- Back4app의 공식 문서 탐색: 서버 측 보안, 로그 분석 및 고급 데이터베이스 조정에 대한 심층적인 내용을 위해.
- 추가 튜토리얼 확인: 실시간 채팅, 위치 기반 서비스 또는 다중 테넌트 애플리케이션—여기서 배운 방법을 외부 API와 결합하여 정교한 실제 솔루션을 만드세요.