Quickstarters
Feature Overview
How to Build a Backend for Yii 2?
40 분
소개 이 튜토리얼에서는 back4app을 사용하여 yii 2의 백엔드를 구축하는 방법 을 배울 것입니다 yii 2는 안전하고 효율적인 웹 애플리케이션을 만드는 데 도움을 주는 인기 있는 오픈 소스 php 프레임워크입니다 yii 프레임워크와 back4app을 통합함으로써 데이터베이스 관리, 클라우드 기능, rest 및 graphql api, 사용자 인증, 실시간 쿼리와 같은 강력한 기능을 활용할 수 있으며, 백엔드 개발 프로세스를 가속화할 수 있습니다 back4app의 환경을 활용하여 수동 서버 구성 시간을 줄이고 yii 2 코드를 작성하는 데 집중할 수 있는 방법을 보여드릴 것입니다 이 단계를 따르면 강력한 보안 제어(acl, clp), 반복 작업 예약, 웹후크를 통한 외부 통합 설정 등 필수 기능에 대한 실습 경험을 얻을 수 있습니다 이 튜토리얼이 끝나면 yii 2 프로젝트를 위한 견고한 백엔드 구조를 갖추게 되어, 프로덕션으로 확장하거나 맞춤형 비즈니스 로직으로 향상시킬 준비가 될 것입니다 또한 서드파티 api를 통합하거나 웹 애플리케이션에 새로운 기능을 구축할 준비가 잘 되어 있을 것입니다 전제 조건 이 튜토리얼을 완료하려면 다음이 필요합니다 back4app 계정과 새로운 back4app 프로젝트 back4app 시작하기 https //www back4app com/docs/get started/new parse app 계정이 없으시면 무료로 가입하고 링크된 가이드를 따라 프로젝트를 준비하세요 로컬 yii 2 개발 환경 composer를 사용하여 yii 2를 다운로드할 수 있습니다 composer https //getcomposer org/ 를 설치하고 yii 2 공식 가이드 https //www yiiframework com/doc/guide/2 0/en 를 따라 설정하세요 php (버전 7 4 이상) 설치 yii 2를 실행하고 composer 패키지를 관리하려면 호환 가능한 php 환경이 필요합니다 php 및 기본 yii 2 개념에 대한 이해 yii 프레임워크가 처음이라면 공식 yii 2 문서 https //www yiiframework com/doc/guide/2 0/en 시작하기 전에 모든 전제 조건이 준비되어 있는지 확인하세요 back4app 프로젝트가 설정되고 로컬 yii 2 환경이 준비되면 더 쉽게 따라할 수 있습니다 1단계 – back4app에서 새 프로젝트 만들기 및 연결 새 프로젝트 만들기 yii 2의 백엔드를 구축하기 위한 첫 번째 단계는 새로운 back4app 프로젝트를 만드는 것입니다 아직 하지 않았다면 다음 단계를 따르세요 back4app 계정에 로그인하세요 back4app 대시보드에서 “새 앱” 버튼을 클릭하세요 앱 이름 지정하기 (예 “yii2 backend tutorial”) 프로젝트가 생성되면 back4app 대시보드에서 확인할 수 있습니다 이는 이 튜토리얼에서 탐색할 모든 백엔드 구성의 기초가 됩니다 parse api를 통한 연결 back4app은 내부적으로 parse 플랫폼을 사용합니다 parse php sdk가 존재하지만, parse의 rest 또는 graphql api를 사용하여 yii 2 애플리케이션을 back4app과 통합할 수도 있습니다 이 접근 방식은 유연하여, yii 컨트롤러나 모델에서 back4app으로 http 또는 graphql 요청을 보내는 코드를 작성할 수 있습니다 parse 키 가져오기 back4app 대시보드에서 앱의 “앱 설정” 또는 “보안 및 키” 로 이동합니다 다음 정보를 찾습니다 애플리케이션 id , rest api 키 , 그리고 parse 서버 url (보통 https //parseapi back4app com )입니다 이 자격 증명을 가까이 두십시오 yii 2 애플리케이션에서 back4app으로 요청을 보낼 때 필요합니다 2단계 – 데이터베이스 설정 귀하의 back4app 프로젝트에는 parse server에 의해 자동으로 관리되는 클라우드 기반 데이터베이스가 포함되어 있습니다 rest, graphql 또는 back4app의 ai 에이전트를 사용하여 데이터 모델을 만들고 객체를 저장할 수 있습니다 데이터 모델 만들기 “데이터베이스” 섹션을 열어보세요 귀하의 back4app 대시보드에서 새 클래스를 만드세요 (예 “todo”) 그리고 title (문자열) 및 iscompleted (부울)과 같은 열을 추가하세요 parse가 귀하의 yii 코드가 데이터를 처음 보낼 때 이러한 열을 자동으로 생성하도록 할 수도 있습니다 또한, back4app의 ai 에이전트 가 스키마 설정을 도와줄 수 있습니다 ai 에이전트를 열어보세요 귀하의 앱 대시보드 또는 메뉴에서 데이터 모델을 설명하세요 (예 “todo 클래스를 가진 todo 앱 스키마 만들기”) ai 에이전트가 스키마를 생성하도록 허용하세요 rest api를 사용한 데이터 읽기 및 쓰기 아래는 rest api를 사용하여 todo 객체를 저장하는 예입니다 이를 yii 2 컨트롤러 액션에서 curl 또는 php의 file get contents() 를 사용하여 json 데이터를 게시하는 방식으로 구현할 수 있습니다 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 컨트롤러에서 curl을 사용하는 예제 yii 2 php 코드 스니펫 public function actioncreatetodo() { $url = "https //parseapi back4app com/classes/todo"; $data = \[ "title" => "buy groceries", "iscompleted" => false ]; $headers = \[ "x parse application id your application id", "x parse rest api key your rest api key", "content type application/json" ]; $ch = curl init($url); curl setopt($ch, curlopt post, 1); curl setopt($ch, curlopt postfields, json encode($data)); curl setopt($ch, curlopt httpheader, $headers); curl setopt($ch, curlopt returntransfer, true); $result = curl exec($ch); curl close($ch); // handle $result as needed, e g , parse json or redirect } rest를 사용하여 동일한 데이터를 쿼리하는 방법은 다음과 같습니다 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를 사용한 데이터 읽기 및 쓰기 parse의 graphql 인터페이스를 사용하여 데이터 생성 및 읽기를 할 수 있습니다 예를 들어, todo mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } yii 2에서는 graphql 라이브러리 https //packagist org/packages/webonyx/graphql php 또는 간단한 http 요청을 사용하여 back4app graphql 엔드포인트와 상호작용할 수 있습니다 https //parseapi back4app com/graphql 라이브 쿼리 작업하기 (선택 사항) 실시간 업데이트를 위해 back4app은 라이브 쿼리 , 클래스의 변경 사항에 구독할 수 있게 해줍니다 yii 2에서의 일반적인 사용은 덜 일반적일 수 있지만, back4app 설정에서 라이브 쿼리를 활성화하고 php에서 websocket 연결을 처리할 수 있습니다 이는 더 고급 기능이므로, php 기반 웹 애플리케이션에서 실시간 기능을 구현하는 방법에 대한 자세한 내용은 parse 라이브 쿼리 문서 https //www back4app com/docs/javascript live queries/parse livequery overview 를 참조하세요 3단계 – acl 및 clp를 통한 보안 적용 간략한 개요 back4app은 액세스 제어 목록 (acls) 및 클래스 수준 권한 (clps) 을 제공하여 데이터를 보호합니다 acl은 특정 객체에 적용되며, clp는 각 클래스에 대한 전역 권한을 정의합니다 클래스 수준 권한 설정 back4app 대시보드에서 데이터베이스 로 이동하여 클래스(예 “todo”)를 선택합니다 clps 탭을 엽니다 , 그리고 읽기/쓰기 권한을 구성합니다(예 “인증 필요” 또는 “액세스 없음”) acl 구성하기 rest 또는 graphql을 통해 데이터를 생성하거나 업데이트할 때 acl 필드를 포함하여 개별 객체에 대한 acl을 설정할 수 있습니다 예를 들어, rest를 사용하여 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" "private todo", "acl" { "user object id here" { "read" true, "write" true }, " " { "read" false, "write" false } } }' \\ https //parseapi back4app com/classes/todo 이 객체는 이제 지정된 objectid를 가진 사용자만 접근할 수 있습니다 4단계 – 클라우드 코드 함수 작성 클라우드 코드의 필요성 back4app에서 클라우드 코드를 사용하면 자체 서버를 관리하지 않고도 사용자 정의 서버 측 로직을 실행할 수 있습니다 비즈니스 로직 , 데이터 검증 , 또는 트리거 를 객체 생성, 업데이트 및 삭제를 위해 만들 수 있습니다 예제 클라우드 코드 함수 아래는 텍스트 길이를 계산하는 간단한 클라우드 코드 함수(자바스크립트로 작성됨)입니다 main js // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); 배포 cloud code를 back4app cli 를 통해 배포하거나 cloud code > functions 섹션에서 직접 배포할 수 있습니다 back4app cli 대시보드 코드를 main js 에 복사/붙여넣기 하고 배포 를 클릭하세요 클라우드 함수 호출하기 간단한 rest post 요청을 사용하여 yii 2에서 함수를 호출할 수 있습니다 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 또는 graphql을 통해 mutation { calculatetextlength(input { text "hello graphql" }) { result } } 5단계 – 인증 구성 back4app에서 사용자 인증 back4app은 parse user 클래스를 기반으로 안전한 인증을 제공합니다 rest 또는 graphql 호출을 통해 사용자를 생성하고 검증할 수 있습니다 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 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 소셜 로그인 소셜 로그인을 위해 (구글, 애플, 페이스북 등), back4app에서 oauth 설정을 구성하고 yii 2 애플리케이션에서 필요한 토큰을 처리하도록 설정하세요 back4app의 소셜 로그인 문서 https //www back4app com/docs/platform/sign in with apple 를 참조하여 제공자별 가이드라인을 확인하세요 이메일 인증 및 비밀번호 재설정 사용자 보안을 향상시키기 위해 back4app 대시보드의 이메일 설정에서 이메일 인증 및 비밀번호 재설정 을 활성화하세요 back4app 대시보드에서 이메일 설정 으로 이동하세요 이메일 인증을 활성화하고 이메일 템플릿을 사용자 정의하세요 이메일이 제대로 전송되고 수신되는지 테스트 하세요 6단계 – 파일 저장 처리 back4app은 parse 파일 시스템을 통해 안전한 파일 저장을 제공합니다 parse php sdk도 옵션이지만, 일관성을 위해 rest를 다시 설명하겠습니다 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/png" \\ \ data binary "@path/to/local/image png" \\ https //parseapi back4app com/files/myimage png 이것은 저장된 파일에 대한 url 을 반환합니다 그런 다음 해당 url을 나중에 검색할 수 있도록 클래스(예 사진 )에 저장할 수 있습니다 파일 보안 고려사항 파일 업로드를 인증된 사용자 또는 특정 역할로 제한하려면 앱의 parse server 설정을 구성하세요 더 세부적인 제어를 위해 이러한 설정을 acl 및 clp 규칙과 결합하세요 7단계 – 이메일 인증 및 비밀번호 재설정 개요 이메일 인증은 사용자가 등록한 이메일 주소를 소유하고 있음을 보장하며, 비밀번호 재설정은 계정을 복구할 수 있도록 합니다 back4app 대시보드 구성 이메일 인증 활성화 앱 설정 > 이메일 설정 “보낸 사람” 주소 및 이메일 템플릿 사용자 정의 새 사용자 생성으로 테스트 하여 인증 이메일이 전송되는지 확인합니다 구현 당신의 yii 2 애플리케이션에서 사용자를 parse의 비밀번호 재설정 엔드포인트 https //www back4app com/docs/users/password reset 나머지 흐름(실제 이메일 전송 등)은 back4app 인프라에서 처리됩니다 8단계 – 클라우드 작업으로 작업 예약 클라우드 작업의 기능 back4app의 클라우드 작업을 사용하면 데이터 정리 또는 알림 전송과 같은 정기 작업을 예약할 수 있습니다 이를 클라우드 코드( main js )에 정의하고 대시보드에서 예약합니다 예 정리 작업 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); } }); 9단계 – 웹훅 통합 정의 웹훅은 back4app 애플리케이션이 이벤트가 발생할 때 외부 서비스에 자동화된 http 요청을 보낼 수 있도록 합니다 예를 들어 새로운 todo 를 생성할 때 구성 back4app 대시보드에서 , 더보기 > 웹훅 로 이동합니다 웹훅 엔드포인트를 추가합니다 (예 https //your external service com/webhook ) 트리거를 구성합니다 (예 “todo 클래스에 새 레코드”) 웹훅을 사용하면 todo 객체가 생성되거나 업데이트될 때마다 slack, stripe 또는 사용자 정의 api와 같은 다른 서비스에 알림을 보낼 수 있습니다 10단계 – back4app 관리 패널 탐색 찾는 방법 back4app 관리 앱은 코드를 작성하지 않고 데이터를 관리할 수 있는 포인트 앤 클릭 인터페이스입니다 앱 대시보드 > 더보기 > 관리 앱 로 방문하여 활성화할 수 있습니다 관리 앱 활성화 기능 관리 사용자 생성 후, 관리 앱을 위한 전용 하위 도메인이 제공됩니다 이를 통해 권한이 있는 팀원들은 back4app 데이터베이스에서 crud 작업을 수행하고, 로그를 검토하거나 분석을 볼 수 있는 깔끔한 인터페이스를 이용할 수 있습니다 — 코드가 필요 없습니다 결론 이 튜토리얼에서는 back4app을 사용하여 yii 2의 백엔드를 구축하는 방법 을 발견했습니다 클라우드 기반 데이터베이스를 구성하고, acl 및 clp로 강력한 보안을 설정하고, cloud jobs로 백그라운드 작업을 예약하고, 웹훅을 통해 외부 서비스를 통합했습니다 또한 사용자 인증 및 파일 저장을 안전하게 관리하는 방법을 보았습니다 오픈 소스 yii 프레임워크를 back4app의 확장 가능한 인프라와 결합하여 이제 개발 및 성장에 적합한 강력한 환경을 갖추게 되었습니다 다음 단계 생산으로 나아가세요 데이터 모델을 확장하고, 추가 보안 설정을 적용하며, 성능을 최적화합니다 외부 api 통합 (결제 게이트웨이, 이메일 제공업체)을 cloud code 또는 직접 웹훅을 통해 수행합니다 공식 back4app 문서 탐색 고급 보안, 로그 분석 및 성능 최적화와 같은 심화 주제를 위해 더 배우기 역할 기반 접근 제어, 캐싱 전략 및 고급 데이터베이스 관계를 사용하여 yii 2로 복잡한 웹 애플리케이션을 구축하는 방법에 대해 이 기반을 통해 yii 2 프로젝트를 계속 향상시키고, 비즈니스 특정 논리에 집중하며, 사용자에게 강력하고 확장 가능한 기능을 제공할 수 있습니다 현대 웹 애플리케이션을 코딩하고 구축하는 것을 즐기세요