Quickstarters
Feature Overview
How to Build a Backend for PHP?
39 분
소개 이 튜토리얼에서는 php용 백엔드를 구축하는 방법 을 배우게 됩니다 이를 통해 서버 측에서 동적 웹 애플리케이션을 구동할 수 있습니다 우리는 데이터베이스 관리, 클라우드 코드 함수, rest 및 graphql api, 사용자 인증, 실시간 쿼리와 같은 주요 back4app 서비스를 통합하는 데 집중할 것입니다 이 단계를 따르면 php 프로젝트에서 사용할 수 있는 안전하고 확장 가능하며 강력한 백엔드를 만들 수 있습니다 또한 back4app이 모든 것을 처음부터 구축하는 것에 비해 백엔드 개발을 가속화하는 이유를 살펴보아 시간을 절약하고 노력을 덜 수 있습니다 back4app의 인프라를 기반으로 하여 고급 보안을 구현하고, 클라우드 작업으로 작업을 예약하며, 웹훅을 통해 외부 통합을 연결하는 방법을 발견하게 될 것입니다 마지막에는 이 기본 서버 측 백엔드를 완전한 프로덕션 설정으로 성장시키거나, 실제 사용을 위한 타사 api 및 사용자 정의 논리를 통합할 준비가 될 것입니다 전제 조건 이 튜토리얼을 완료하려면 다음이 필요합니다 back4app 계정과 새로운 back4app 프로젝트 back4app 시작하기 https //www back4app com/docs/get started/new parse app 계정이 없으면 무료로 생성하고 가이드를 따라 새 프로젝트를 준비하세요 기본 php 개발 환경 php가 설치된 로컬 환경을 설정하거나 php를 지원하는 호스팅 환경을 사용할 수 있습니다 공식 php 문서 https //www php net/docs php curl 지원 또는 http 요청을 보내는 방법 대부분의 php 설치에는 기본적으로 curl이 포함되어 있습니다 curl 설치 (공식 문서) https //curl se/docs/install html 웹 애플리케이션 기본 사항에 대한 이해 http, 서버 측 스크립팅 및 기본 데이터베이스 개념을 이해하는 것이 도움이 됩니다 아래 단계에 들어가기 전에 이러한 전제 조건이 준비되어 있는지 확인하세요 back4app 프로젝트가 설정되고 php 환경이 준비되어 있으면 따라하기가 더 쉬워집니다 1단계 – back4app 프로젝트 설정 새 프로젝트 만들기 back4app에서 서버 측 백엔드를 구축하는 첫 번째 단계는 새 프로젝트를 만드는 것입니다 아직 하지 않았다면 다음 단계를 따르세요 back4app 계정에 로그인 하세요 back4app 대시보드에서 “새 앱” 버튼을 클릭 하세요 앱에 이름을 지정하세요 (예 “php backend tutorial”) 생성된 후, 새로운 back4app 프로젝트가 대시보드에 나타납니다 이 프로젝트는 향후 구성 단계의 기초가 될 것입니다 back4app에 rest api로 연결하기 우리는 parse 전용 sdk 없이 php로 작업하고 있으므로, back4app rest 및 graphql api를 통해 통신할 것입니다 back4app 대시보드에서 다음 자격 증명이 필요합니다 애플리케이션 id rest api 키 parse 서버 url (보통 https //parseapi back4app com ) 이 정보는 앱의 앱 설정 또는 보안 및 키 섹션으로 이동하여 찾을 수 있습니다 php에서는 curl 또는 다른 라이브러리를 사용하여 http 요청을 수행할 수 있습니다 아래는 back4app에 post 요청을 보내는 간단한 예입니다 $url = 'https //parseapi back4app com/classes/todo'; $data = array( 'title' => 'buy groceries', 'iscompleted' => false ); $payload = json encode($data); $ch = curl init($url); curl setopt($ch, curlopt post, 1); curl setopt($ch, curlopt postfields, $payload); curl setopt($ch, curlopt httpheader, array( 'x parse application id your application id', 'x parse rest api key your rest api key', 'content type application/json' )); curl setopt($ch, curlopt returntransfer, true); $result = curl exec($ch); curl close($ch); echo $result; // print api response 이 코드 조각은 php 애플리케이션을 back4app 백엔드에 연결하는 방법을 보여줍니다 your application id , your rest api key , 및 기타 매개변수를 자신의 키에 맞게 수정하세요 이렇게 하면 서버 측 코드가 새 프로젝트에서 데이터를 읽고 쓸 수 있습니다 2단계 – 데이터베이스 설정 데이터 모델 만들기 back4app 프로젝트가 준비되었으므로 데이터베이스를 구조화할 시간입니다 데이터 모델은 웹 애플리케이션의 데이터가 어떻게 구성되는지를 정의합니다 예를 들어, 작업이나 블로그 게시물을 클래스에 저장할 수 있습니다 “데이터베이스” 섹션으로 이동 하여 back4app 대시보드에서 새 클래스를 생성 (예 “todo”)하고 title (문자열) 및 iscompleted (부울)과 같은 필드를 추가합니다 back4app은 string , number , boolean , pointer , relation , file , 및 기타 다양한 데이터 유형에 대한 열을 생성할 수 있습니다 또한 php 스크립트에서 객체를 처음 저장할 때 스키마가 자동으로 생성되도록 할 수 있습니다 ai 에이전트를 사용한 데이터 모델 만들기 back4app의 ai 에이전트는 데이터 모델 생성을 자동화할 수 있습니다 ai 에이전트 열기 대시보드에서 설명 제공하기 “back4app에서 완전한 클래스 스키마로 새로운 todo 앱을 생성해 주세요 ”와 같이 ai 에이전트에게 데이터베이스 스키마를 생성하게 하세요 이 기능은 시간을 절약하고 서버 측 앱의 일관성을 유지할 수 있습니다 데이터 읽기 및 쓰기 (rest api) rest를 사용하여 todo 클래스에 새 객체를 저장하려면 post 요청을 보낼 수 있습니다 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 php에서는 curl을 사용하여 비슷한 작업을 수행할 수 있습니다 예를 들어 $url = 'https //parseapi back4app com/classes/todo'; $data = array('title' => 'buy groceries', 'iscompleted' => false); // (same curl setup as before) 모든 기존 todo 항목을 쿼리하려면 curl x get \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ https //parseapi back4app com/classes/todo 데이터 읽기 및 쓰기 (graphql api) back4app은 graphql도 지원합니다 graphql 쿼리 또는 변형을 보내 데이터 삽입 또는 검색을 할 수 있습니다 https //parseapi back4app com/graphql 삽입 (변형) mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 질문 query { todos { edges { node { objectid title iscompleted } } } } 실시간 쿼리 작업하기 (선택 사항) 웹 애플리케이션에서 실시간 업데이트가 필요하다면 실시간 쿼리 back4app 대시보드에서 실시간 쿼리를 활성화한 후, php 환경(또는 별도의 클라이언트)에서 websocket 접근 방식을 사용하여 변경 사항을 구독하세요 javascript 클라이언트에서 더 일반적이지만, 필요하다면 php에서 별도의 소켓을 설정할 수 있습니다 자세한 내용은 back4app 실시간 쿼리 문서 https //www back4app com/docs/javascript/live queries 3단계 – acl 및 clp로 보안 적용하기 간략한 개요 acl(액세스 제어 목록) 및 clp(클래스 수준 권한) 는 누가 객체를 읽거나 쓸 수 있는지를 제어하여 데이터를 보호합니다 이는 무단 접근으로부터 백엔드를 보호합니다 단계별 데이터베이스 대시보드에서 클래스 수준 권한(clps) 설정하기 공용 읽기/쓰기를 제한하거나 인증을 요구할 수 있습니다 각 객체에 대해 acl 구성하기 세밀한 제어가 필요하다면 acl은 특정 사용자 또는 역할에 대한 읽기/쓰기 접근을 지정할 수 있습니다 자세한 내용은 앱 보안 가이드라인 https //www back4app com/docs/security/parse security 4단계 – 클라우드 코드 함수 작성하기 클라우드 코드의 이유 클라우드 코드는 비즈니스 로직, 트리거 또는 검증과 같은 작업을 위해 서버 측 javascript를 실행할 수 있게 해주며, 자체 서버를 설정할 필요가 없습니다 이렇게 하면 특정 코드를 숨기고, 데이터 변환을 수행하는 등의 작업을 할 수 있습니다 예제 함수 텍스트 길이를 계산하는 간단한 클라우드 코드 함수 // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); 이 함수는 rest를 사용하여 php 스크립트에서 호출할 수 있습니다 curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"text" "hello back4app"}' \\ https //parseapi back4app com/functions/calculatetextlength 배포 cloud code는 back4app cli https //www back4app com/docs/local development/parse cli 또는 back4app 대시보드를 통해 배포할 수 있습니다 npm 모듈 추가 라이브러리가 필요하면 npm으로 설치하고 cloud code에 가져오세요 이는 고급 서버 측 통합에 유용합니다 5단계 – 인증 구성 인증 활성화 기본적으로 back4app 프로젝트는 parse user 클래스를 통해 사용자 인증을 제공합니다 사용자가 이메일을 확인해야 하는지 또는 사용자 이름/비밀번호로만 로그인할 수 있는지를 제어할 수 있습니다 회원가입, 로그인, 로그아웃 (rest) 사용자를 생성하세요 curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"username" "alice","password" "secret123","email" "alice\@example com"}' \\ https //parseapi back4app com/users 기존 사용자 로그인 curl x get \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ g \\ \ data urlencode 'username=alice' \\ \ data urlencode 'password=secret123' \\ https //parseapi back4app com/login 소셜 로그인 소셜 로그인(google, apple, facebook)은 oauth 흐름을 구성하여 가능합니다 지침은 다음을 참조하십시오 소셜 로그인 문서 https //www back4app com/docs/platform/sign in with apple 6단계 – 파일 저장 처리 파일 저장 설정 rest를 통해 파일을 업로드할 수 있습니다 curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type image/jpeg" \\ \ data binary "@/path/to/myimage jpg" \\ https //parseapi back4app com/files/myimage jpg json 응답에는 파일 url이 포함되어 있습니다 이 url을 클래스에 저장하여 업로드된 파일을 참조할 수 있습니다 예시 { "name" "myimage jpg", "url" "https //myapp back4app io/files/myimage jpg" } 보안 고려사항 인증된 사용자 또는 특정 역할에서만 파일 업로드를 허용할 수 있습니다 서버 설정에서 파일 업로드 규칙을 구성하십시오 7단계 – 이메일 확인 및 비밀번호 재설정 개요 이메일 확인은 유효한 이메일 주소만 사용되도록 보장합니다 비밀번호 재설정은 사용자가 안전하게 계정을 복구할 수 있도록 합니다 대시보드 구성 back4app 대시보드에서 , 앱 설정 > 이메일 로 이동하십시오 이메일 확인 활성화 및 원하는 템플릿을 설정하십시오 비밀번호 재설정 활성화 하여 사용자가 계정을 복구할 수 있도록 하십시오 구현 활성화되면 사용자 가입 시 확인 이메일이 전송됩니다 또한 다음을 사용하여 비밀번호 재설정을 요청할 수 있습니다 curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"email" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset 8단계 – 클라우드 작업으로 작업 예약하기 클라우드 작업의 기능 클라우드 작업을 사용하면 오래된 데이터를 삭제하거나 정기적인 이메일을 보내는 등의 작업을 자동화할 수 있습니다 이를 main js 에 작성하고 back4app 대시보드에서 예약할 수 있습니다 예시 // main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); 이 코드를 back4app에 배포하십시오 대시보드에서 작업을 예약하십시오 app settings > server settings > background jobs 아래에서 9단계 – 웹훅 통합 정의 웹훅 은 이벤트가 발생할 때 다른 서비스에 http 요청을 보낼 수 있게 해줍니다 예를 들어, back4app 클래스에서 새 레코드가 생성될 때입니다 이는 결제 플랫폼, 이메일 마케팅 도구 또는 slack 알림과 같은 외부 통합에 유용합니다 구성 웹훅 패널을 back4app 대시보드에서 엽니다 > 더보기 > 웹훅 이벤트 데이터를 보낼 엔드포인트 url로 새 웹훅을 추가합니다 트리거를 선택합니다 (예 객체 생성, 업데이트 또는 삭제) 또한 클라우드 코드 트리거에서 웹훅을 정의할 수 있으며, axios 와 같은 node js 모듈로 http 요청을 보낼 수 있습니다 10단계 – back4app 관리 패널 탐색 “ back4app admin app ”은 비기술 사용자나 관리자가 코드를 작성하지 않고도 데이터를 관리할 수 있는 모델 중심의 인터페이스입니다 이는 표준 parse 대시보드보다 더 직관적인 데이터 처리 경험을 제공합니다 어디에서 찾을 수 있나요? 관리 앱 활성화 를 위해 앱 대시보드 > 더보기 > 관리 앱 으로 이동하세요 “관리 앱 활성화” 클릭 하고 관리 자격 증명을 구성하세요 관리 앱에 접근하기 위해 서브 도메인을 선택하세요 새로 생성한 관리 자격 증명으로 로그인하여 데이터베이스 레코드, 사용자 계정, 역할 등을 관리하기 시작하세요 결론 이 튜토리얼에서는 back4app을 사용하여 php 웹 애플리케이션을 위한 서버 측 백엔드를 구축하는 방법을 배웠습니다 안전한 데이터베이스를 설정하고, 실시간 기능을 활용하며, cloud code에서 사용자 정의 로직을 정의하고, 사용자 인증, 파일 저장 및 예약 작업을 탐색했습니다 또한 웹훅과 관리 패널이 외부 서비스와 통합되어 데이터 관리를 간소화하는 방법도 보았습니다 이러한 기반이 마련되었으므로, 다음 php 프로젝트를 위해 필요에 따라 확장할 수 있는 유연하고 확장 가능한 백엔드가 있습니다 애플리케이션을 더욱 강력하고 동적으로 만들기 위해 고급 기술, 사용자 정의 역할 또는 타사 api를 계속 탐색하세요 다음 단계 프로덕션 준비가 완료된 php 애플리케이션을 캐싱, 로드 밸런싱 또는 고급 보안을 추가하여 개선하세요 역할 기반 접근 제어를 추가하세요 또는 사용자 기반에 따라 고유한 인증 흐름을 추가하세요 공식 back4app 문서를 참조하세요 성능 조정, 로그 및 분석에 대해 더 알아보세요 추가 튜토리얼을 시도하세요 여기서 배운 기술을 사용하여 전자 상거래에서 소셜 플랫폼에 이르기까지 실제 솔루션을 구축하세요