Quickstarters
Feature Overview
How to Build a Backend for Objective-C?
38 분
소개 이 튜토리얼에서는 objective c용 백엔드를 구축하는 방법 을 배우게 됩니다 우리는 데이터베이스 관리, 클라우드 코드 함수, rest 및 graphql api, 사용자 인증, 실시간 쿼리와 같은 필수 back4app 기능을 통합하여 ios 앱과 원활하게 통신하는 안전하고 확장 가능하며 강력한 백엔드를 만드는 방법을 안내할 것입니다 모든 데이터 요구 사항을 처리하기 위해 오픈 소스인 parse ios sdk를 사용할 것입니다 back4app의 유연한 환경을 활용하여 서버, 저장소 및 보안 구성에 소요되는 시간과 노력을 줄이는 방법을 보게 될 것입니다 이 튜토리얼에서는 objective c로 코드 샘플을 보여주므로 일반적인 xcode 작업 흐름에 맞게 텍스트를 입력할 수 있습니다 마지막에는 프로덕션 준비가 완료된 모바일 앱의 빌딩 블록을 갖게 되며, 필요에 따라 특정 사용 사례에 맞게 추가로 사용자 정의할 수 있습니다 전제 조건 이 튜토리얼을 완료하려면 다음이 필요합니다 back4app 계정 및 새 back4app 프로젝트 back4app 시작하기 https //www back4app com/docs/get started/new parse app 계정이 없으면 무료로 만들 수 있습니다 위 가이드를 따라 프로젝트를 준비하세요 objective c 개발 환경 최신 버전의 xcode가 설치되어 있는지 확인하세요 mac app store에서 xcode 다운로드 https //apps apple com/us/app/xcode/id497799835 cocoapods 또는 swift package manager에 대한 지식 (선택 사항, 하지만 권장됨) swift package manager 가이드 https //github com/parse community/parse sdk ios osx objective c, ios 앱 기본 또는 관련 개념에 대한 친숙함 apple의 objective c 문서 https //developer apple com/library/archive/documentation/cocoa/conceptual/programmingwithobjectivec/introduction/introduction html 시작하기 전에 모든 전제 조건을 갖추었는지 확인하여 여정이 원활하게 진행되도록 하세요 1단계 – back4app에서 새 프로젝트 만들기 및 연결하기 이 단계가 중요한 이유는? 새로운 back4app 프로젝트는 백엔드의 기초입니다 데이터 저장, 클라우드 함수 실행 및 보안 관리를 위한 장소를 제공합니다 back4app 프로젝트를 시작해 보겠습니다 back4app에서 프로젝트 만들기 back4app 계정에 로그인하세요 “새 앱” 클릭하기 back4app 대시보드에서 앱 이름 정하기 (예 “objectivec backend tutorial”) 및 완료하기 back4app 대시보드에서 새 앱을 볼 수 있습니다 이 앱은 우리가 논의할 모든 백엔드 구성을 처리할 것입니다 ios용 parse sdk 설치하기 (objective c) back4app은 parse ios sdk와 함께 작동합니다 이 sdk는 ios 앱을 위한 데이터 작업, 실시간 기능, 사용자 인증 등을 간소화합니다 parse 키 가져오기 back4app 대시보드에서 앱 설정 또는 보안 및 키 로 이동하여 애플리케이션 id 와 클라이언트 키 parse 서버 url은 종종 https //parseapi back4app com 입니다 parse 통합하기 swift package manager 또는 cocoapods를 사용하여 cocoapods pod 'parse' swift package manager xcode를 열고 “파일” > “패키지 추가…”를 선택합니다 저장소 추가 https //github com/parse community/parse sdk ios osx ios 타겟에서 parse를 확인합니다 objective c에서 parse 초기화하기 appdelegate m 을 열고 parse 모듈을 가져옵니다 @import parsecore; // or #import \<parse/parse h> \ (bool)application (uiapplication )application didfinishlaunchingwithoptions (nsdictionary )launchoptions { \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your application id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; }]]; return yes; } 이로써, 당신의 objective c 앱은 back4app 백엔드에 안전하게 연결되었습니다 이제 서버에서 데이터를 읽고, 쓰고, 관리할 수 있습니다 2단계 – 데이터베이스 설정 1\ 데이터 모델(스키마) 만들기 back4app에서 데이터는 클래스에 저장됩니다—데이터베이스의 테이블과 같습니다 간단한 “todo” 클래스를 만들고 싶다고 가정해 보겠습니다 back4app 대시보드의 데이터베이스 섹션에서 수동으로 만들 수 있습니다 제목 (문자열), iscompleted (부울) 등의 필드를 추가하세요 2\ ai 에이전트를 사용하여 데이터 모델 만들기 back4app은 스키마 생성을 돕기 위해 ai 에이전트를 제공합니다 ai 에이전트 열기 앱 대시보드에서 자연어로 데이터 모델 설명하기 (예 “제목, 설명 및 기한이 있는 새로운 todo 클래스를 만듭니다 ”) ai가 모든 것을 설정하게 하세요 자동으로 3\ sdk를 사용하여 데이터 읽기 및 쓰기 objective c를 사용하여 pfobject를 사용하여 생성 및 쿼리 작업을 처리할 수 있습니다 예를 들어 \#import \<parse/parse h> // create a new todo item pfobject todo = \[pfobject objectwithclassname @"todo"]; \[todo setobject @"buy groceries" forkey @"title"]; \[todo setobject @no forkey @"iscompleted"]; \[todo saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"todo saved successfully!"); } else { nslog(@"error saving todo %@", error localizeddescription); } }]; // query all todos pfquery query = \[pfquery querywithclassname @"todo"]; \[query findobjectsinbackgroundwithblock ^(nsarray nullable objects, nserror nullable error) { if (!error) { for (pfobject item in objects) { nslog(@"todo %@", item\[@"title"]); } } }]; 4\ rest를 사용한 데이터 읽기 및 쓰기 sdk를 건너뛰고 싶다면 curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries","iscompleted"\ false}' \\ https //parseapi back4app com/classes/todo 5\ graphql을 사용한 데이터 읽기 및 쓰기 back4app은 graphql 인터페이스도 제공합니다 mutation { createtodo(input { fields { title "wash the car", iscompleted false } }) { todo { objectid title iscompleted } } } 6\ 라이브 쿼리 작업하기 (선택 사항) ios 앱이 실시간 업데이트가 필요하다면 라이브 쿼리 활성화 서버 설정 에서 back4app 대시보드 parse 구성 livequeryserverurl로 설정 \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your app id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; configuration livequeryserverurl = @"wss\ //your subdomain b4a io"; }]]; 그런 다음 objective c 코드에서 실시간 업데이트를 구독합니다 이렇게 하면 ui가 최신 데이터를 즉시 표시합니다 3단계 – acl 및 clp로 보안 적용 액세스 제어 목록(acl) 및 클래스 수준 권한(clps) back4app은 세밀한 보안을 위해 acl 및 clp를 사용합니다 clp는 전체 클래스(테이블)에 적용되고, acl은 개별 객체에 적용됩니다 클래스 수준 권한 설정 데이터베이스 섹션에서 클래스 선택(예 “todo”) 클래스 수준 권한 클릭 클래스 수준에서 읽기, 쓰기 또는 쿼리를 수행할 수 있는 사람을 제어합니다 acl 구성 acl은 객체 수준입니다 예를 들어 pfacl acl = \[pfacl aclwithuser \[pfuser currentuser]]; \[acl setpublicreadaccess\ no]; \[acl setpublicwriteaccess\ no]; todo acl = acl; \[todo saveinbackground]; 이 코드 조각은 현재 사용자에게만 읽기/쓰기를 제한합니다 4단계 – 클라우드 코드 함수 작성 클라우드 코드가 필요한 이유? 클라우드 코드는 서버 측 로직—트리거 처리, 검증 또는 백그라운드 작업에 유용합니다 클라이언트로부터 코드를 숨겨 보안을 강화합니다 예제 함수 parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); 이 예제는 클라이언트가 제공한 문자열의 길이를 계산합니다 배포 back4app cli https //www back4app com/docs/local development/parse cli 또는 클라우드 코드 > 함수 섹션에서 대시보드에 배포할 main js 를 사용하세요 objective c에서 클라우드 코드 호출하기 \[pfcloud callfunctioninbackground @"calculatetextlength" withparameters @{@"text" @"hello back4app"} block ^(id nullable result, nserror nullable error) { if (!error) { nsnumber len = result\[@"length"]; nslog(@"text length %@", len); } }]; 5단계 – 인증 구성 파스 사용자 back4app의 pfuser 클래스는 가입, 로그인 및 보안을 관리합니다 기본적으로 pfuser는 비밀번호 해싱, 세션 및 사용자 필드를 처리합니다 가입하기 pfuser user = \[pfuser user]; user username = @"alice"; user password = @"secret123"; user email = @"alice\@example com"; \[user signupinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"user signed up successfully!"); } else { nslog(@"sign up error %@", error localizeddescription); } }]; 로그인하기 \[pfuser loginwithusernameinbackground @"alice" password @"secret123" block ^(pfuser nullable user, nserror nullable error) { if (user) { nslog(@"user logged in %@", user username); } else { nslog(@"login error %@", error localizeddescription); } }]; 소셜 로그인 back4app은 facebook , apple , google , 등등을 지원합니다 이러한 플랫폼을 통합하고 사용자 세션을 적절히 연결하세요 소셜 로그인 문서 https //www back4app com/docs/platform/sign in with apple 를 확인하세요 6단계 – 파일 저장 처리 파일 업로드 및 검색 이미지, 문서 또는 기타 이진 데이터를 pffileobject 사용하여 저장할 수 있습니다 nsdata imagedata = uiimagepngrepresentation(\[uiimage imagenamed @"localimage"]); pffileobject parsefile = \[pffileobject fileobjectwithname @"image png" data\ imagedata]; pfobject photo = \[pfobject objectwithclassname @"photo"]; \[photo setobject\ parsefile forkey @"imagefile"]; \[photo saveinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"file uploaded successfully"); } }]; 검색하려면 pffileobject photofile = photo\[@"imagefile"]; \[photofile getdatainbackgroundwithblock ^(nsdata nullable data, nserror nullable error) { if (!error) { uiimage image = \[uiimage imagewithdata\ data]; // use the image in your ui } }]; 7단계 – 이메일 인증 및 비밀번호 재설정 왜 중요한가? 이메일 인증은 사용자 계정의 유효성을 보장하는 데 도움이 됩니다 비밀번호 재설정은 사용자가 자격 증명을 잊어버린 경우 안전한 흐름을 제공합니다 대시보드 구성 back4app 대시보드에서 이메일 설정 으로 이동합니다 이메일 인증 및 비밀번호 재설정 옵션을 활성화합니다 필요에 따라 이메일 템플릿을 사용자 정의합니다 구현 앱에서 비밀번호 재설정을 수동으로 트리거하려면 \[pfuser requestpasswordresetforemailinbackground @"alice\@example com" block ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"reset email sent!"); } else { nslog(@"error %@", error localizeddescription); } }]; 8단계 – 클라우드 작업으로 작업 예약하기 클라우드 작업이란? 클라우드 작업은 오래된 데이터 정리, 일일 보고서 생성 또는 대량 알림 전송과 같은 반복 작업을 자동화합니다 일일 정리 작업 예시 당신의 main js parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); const cutoff = new date(date now() 30 24 60 60 1000); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); 그런 다음 앱 설정 > 서버 설정 > 백그라운드 작업 예를 들어 매일 실행하도록 선택할 수 있습니다 9단계 – 웹훅 통합하기 개요 웹훅은 back4app이 객체 생성과 같은 이벤트가 발생할 때 외부 서비스에 http 요청을 보낼 수 있게 해줍니다 구성 back4app 대시보드 > 더보기 > 웹훅 새 엔드포인트 (url)을 추가합니다 어떤 이벤트가 웹훅을 트리거할지 결정합니다 (예 todo가 저장된 후) 10단계 – back4app 관리 패널 탐색 개요 “ back4app 관리 패널 ”은 비기술적 이해관계자가 코딩 없이 crud 작업을 수행할 수 있는 간단하고 모델 중심의 인터페이스입니다 활성화 대시보드에서 더보기 > 관리 앱 으로 이동하여 활성화합니다 첫 번째 관리자 사용자를 생성한 후에는 패널에 접근하기 위해 사용자 지정 하위 도메인을 설정할 수 있습니다 이 패널은 원시 데이터베이스에 들어가지 않고도 기록 편집, 로그 보기 또는 역할 할당과 같은 일상적인 작업을 간소화할 수 있습니다 결론 이제 objective c용 백엔드를 구축하는 방법 을 back4app을 사용하여 보았습니다 이 튜토리얼을 통해 여러분은 새로운 back4app 프로젝트를 생성했습니다 parse ios sdk, rest 또는 graphql을 사용하여 데이터베이스를 설정하고 읽었습니다 실시간 업데이트를 live queries로 활성화했습니다 acl 및 clp를 사용하여 보안을 적용했습니다 서버 측 로직을 위한 cloud code를 배포했습니다 사용자 인증, 파일 저장, 이메일 확인 및 비밀번호 재설정을 처리했습니다 예약 작업 및 웹훅을 구성했습니다 데이터 관리를 쉽게 하기 위해 admin panel을 탐색했습니다 이 기반은 프론트엔드 경험에 집중하면서 ios 앱을 확장할 수 있게 해줍니다 objective c와 back4app 간의 시너지는 개발을 가속화하는 입증된 방법으로, 시간과 노력을 절약할 수 있습니다 다음 단계 고급 사용자 정의 로직, 푸시 알림 또는 분석으로 백엔드를 강화하세요 소셜 로그인, 청구 또는 메시징을 위한 외부 서비스 또는 오픈 소스 라이브러리를 통합하세요 최적화 팁, 모범 사례 및 심층 튜토리얼을 위해 공식 back4app 문서를 확인하세요 이 패턴을 사용하여 채팅 앱, 게임 리더보드 또는 위치 기반 서비스와 같은 실제 예제를 구축하세요 이 가이드가 유익하셨기를 바랍니다! back4app과 parse ios sdk를 활용하면 무거운 서버 관리 없이 강력하고 안전한 시스템을 개발할 수 있어 최고의 모바일 경험을 구축하는 데 집중할 수 있습니다