Quickstarters
Feature Overview
How to Build a Backend for Ruby On Rails?
34 분
소개 이 튜토리얼에서는 back4app을 사용하여 ruby on rails의 백엔드를 구축하는 방법을 배웁니다 rails 애플리케이션을 데이터베이스 상호작용, 클라우드 코드 함수, rest 및 graphql api, 사용자 인증, 실시간 쿼리(라이브 쿼리)와 같은 필수 back4app 기능과 통합하는 주요 단계를 살펴보겠습니다 모든 것이 서버 측에서 실행됩니다 ruby 프로그래밍 언어를 활용하여 rails의 뷰 컨트롤러 mvc 패턴에 맞는 강력하고 확장 가능한 아키텍처를 구축하여 개발자가 웹 애플리케이션 개발 속도를 높일 수 있도록 합니다 또한 back4app이 서버 및 데이터베이스 관리를 단순화하여 시간과 노력을 크게 줄이는 방법을 발견하게 될 것입니다 이 자동화된 기능은 웹 서버를 수동으로 설정하거나 복잡한 인프라를 처리하는 것에서 벗어나게 해줍니다 마지막으로, 생산 또는 추가 통합 및 고급 사용자 정의 논리와 같은 추가 확장을 위해 준비된 유연하고 안전한 구조를 갖추게 될 것입니다 웹 페이지를 제공하든 데이터 기반 웹 애플리케이션을 구동하든, rails와 back4app은 인기 있는 프로그래밍 언어로 현대적인 솔루션을 만드는 데 원활한 시너지를 제공합니다 전제 조건 이 튜토리얼을 완료하려면 다음이 필요합니다 back4app 계정과 새로운 back4app 프로젝트 back4app 시작하기 https //www back4app com/docs/get started/new parse app 계정이 없으면 무료로 만들 수 있습니다 위의 가이드를 따라 프로젝트를 준비하세요 ruby on rails 개발 환경 ruby가 설치되어 있는지 확인하세요(최소 2 7 버전 이상 권장) 및 rails gem(rails 6 이상) rails 설치하기 https //guides rubyonrails org/getting started html parse ruby 클라이언트 parse sdk를 직접 사용하려는 경우, parse ruby client https //github com/parse community/parse sdk ruby gem을 설치하여 back4app과 데이터 작업을 처리할 수 있습니다 rails mvc에 대한 이해 ruby on rails가 처음이라면, 공식 rails 가이드 https //guides rubyonrails org/ 또는 초보자 튜토리얼을 검토하여 rails의 뷰 컨트롤러 mvc 아키텍처 를 이해한 후 시작하세요 시작하기 전에 이러한 전제 조건이 충족되었는지 확인하세요 back4app 프로젝트가 설정되어 있고, rails 애플리케이션 스캐폴드가 준비되어 있으면 원활한 튜토리얼 경험을 보장합니다 1단계 – back4app에서 새 프로젝트 만들기 및 연결하기 새 프로젝트 만들기 rails 애플리케이션을 위한 서버 측 백엔드를 설정하는 첫 번째 단계는 back4app에서 새 프로젝트를 만드는 것입니다 아직 하지 않았다면 back4app 계정에 로그인하세요 “새 앱” 버튼을 클릭하세요 back4app 대시보드에서 앱에 이름을 지정하세요 (예 “rails backend tutorial”) 프로젝트가 생성되면 back4app 대시보드에서 확인할 수 있습니다 이 새로운 프로젝트는 이 튜토리얼의 모든 백엔드 구성의 핵심을 형성합니다 parse sdk 연결하기 (선택 사항 parse ruby client) 데이터베이스 상호작용을 간소화하고 실시간 쿼리를 위해 back4app은 parse 플랫폼을 사용합니다 rails 서버를 parse와 직접 통합하려면 parse ruby client 젬을 설치할 수 있습니다 그렇지 않으면 표준 rest 또는 graphql 엔드포인트를 사용할 수 있습니다 parse 키를 가져오세요 back4app 대시보드에서 앱의 “앱 설정” 또는 “보안 및 키”로 이동하여 애플리케이션 id 와 rest api 키 를 찾으세요 또한 parse 서버 url 을 얻을 수 있습니다 (예 https //parseapi back4app com ) parse ruby client 젬을 추가하세요 당신의 gemfile gem 'parse ruby client' 그 다음 실행하세요 bundle install parse 초기화 를 초기화 파일에서, 예를 들어 config/initializers/parse rb \# config/initializers/parse rb require 'parse' parse init application id 'your application id', api key 'your rest api key', server url 'https //parseapi back4app com' 이 시점에서, 당신의 rails 애플리케이션 은 데이터를 저장하고 검색하며, 사용자 정의 로직을 조정하는 등 back4app과 통신할 수 있습니다 이 통합된 접근 방식은 ruby on rails 앱이 백엔드를 처리하는 방식을 단순화합니다 2단계 – 데이터베이스 설정 데이터 모델 생성 많은 웹 애플리케이션 , rails에서 activerecord 마이그레이션을 사용하여 데이터 구조를 정의합니다 back4app을 사용하면 대시보드에서 직접 스키마를 구축할 수도 있습니다 예를 들어, todo 모델이 있는 경우 “데이터베이스” 로 이동합니다 “todo”라는 새 클래스를 생성하고 title (문자열) 및 iscompleted (부울)과 같은 열을 추가합니다 back4app은 문자열 , 숫자 , 부울 , 날짜 , 파일 , 포인터 , 관계 , 배열 , 지오포인트 , 및 다각형 rails는 일반적으로 이러한 항목을 모델 정의 내에서 관리하지만, parse sdk 또는 rest/graphql api를 사용하는 경우 첫 번째 저장 시 parse가 열을 자동으로 생성하도록 할 수도 있습니다 ai 에이전트를 사용하여 데이터 모델 만들기 back4app의 ai 에이전트는 스키마 생성을 자동화할 수 있습니다 ai 에이전트 열기 대시보드에서 데이터 모델 설명하기 (예 “새로운 todo 앱을 완전한 클래스 스키마로 만들어 주세요 ”) 에이전트에게 스키마 생성하기 sdk를 사용하여 데이터 읽기 및 쓰기 parse ruby client 를 통합하기로 선택하면, 다음과 같이 레코드를 저장할 수 있습니다 \# app/controllers/todos controller rb def create todo class = parse object new('todo') todo class\['title'] = params\[ title] todo class\['iscompleted'] = false begin todo class save render json { message 'todo saved successfully' } rescue => e render json { error e message }, status 500 end end def index query = parse query new('todo') results = query get render json results end rest api를 사용한 데이터 읽기 및 쓰기 대안으로, rails 코드(또는 외부 클라이언트) 내에서 rest 호출을 사용할 수 있습니다 예를 들어, todo 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" "finish rails guide", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo graphql api를 사용한 데이터 읽기 및 쓰기 back4app은 graphql도 제공합니다 mutation { createtodo(input { fields { title "plan web pages" iscompleted false } }) { todo { objectid title iscompleted } } } 실시간 쿼리 작업하기 (선택 사항) rails 애플리케이션에서 실시간 업데이트를 원하신다면, 프론트엔드 또는 websocket 클라이언트에서 live queries를 구독할 수 있습니다 back4app의 서버 설정 에서 live queries를 활성화한 후, wss\ //your subdomain b4a io 에 연결하여 변경 사항의 지속적인 스트림을 받을 수 있습니다 이는 즉각적인 데이터 새로 고침이 필요한 동적 웹 애플리케이션 에 유용합니다 3단계 – acl 및 clp로 보안 적용하기 간략한 개요 보안은 웹 애플리케이션 개발 에서 매우 중요합니다 back4app은 액세스 제어 목록(acl) 과 클래스 수준 권한(clps) 을 제공하여 객체 및 클래스 수준에서 데이터 가시성을 제어합니다 이는 인증된 사용자 또는 권한이 있는 사용자만 민감한 데이터에 대한 읽기/쓰기를 할 수 있도록 보장하는 데 도움이 됩니다 클래스 수준 권한 설정하기 back4app 대시보드에서 데이터베이스 로 이동합니다 클래스 선택하기 (예 “todo”) 읽기/쓰기 접근을 역할, 인증된 사용자 또는 공개에 따라 구성하기 위해 clp 탭을 엽니다 acl 구성하기 특정 사용자가 객체를 읽거나 수정할 수 있도록 acl을 설정할 수 있습니다 rails에서 parse ruby client , 다음과 같이 보일 수 있습니다 todo = parse object new('todo') acl = parse acl new \# set read/write for a user acl set read access for(user id, true) acl set write access for(user id, true) todo acl = acl todo save 4단계 – 클라우드 코드 함수 작성하기 클라우드 코드의 이유 클라우드 코드는 서버 측 javascript를 실행하여, 개발자 가 자체 웹 서버 를 관리하지 않고도 사용자 정의 논리, 트리거 및 유효성 검사를 추가할 수 있게 해줍니다 추가 서버 논리를 처리하거나 데이터를 저장하기 전에 검사를 수행할 수 있습니다 예제 함수 아래는 javascript의 예입니다 rails 서버 가 주요 앱을 처리하는 동안, 클라우드 코드를 사용하여 데이터를 처리할 수 있습니다 parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); 배포 back4app cli를 통해 배포하거나 back4app 대시보드 , 클라우드 코드는 모든 클라이언트 간에 공유되는 논리를 캡슐화하는 편리한 방법입니다 사용되는 프로그래밍 언어 에 관계없이 노드 기반 모듈(npm) 지원을 통해 외부 패키지를 원활하게 통합할 수 있습니다 5단계 – 인증 구성하기 사용자 인증 활성화 back4app는 parse의 내장 사용자 클래스를 사용하여 사용자 가입, 로그인 및 세션을 관리합니다 rest 호출 또는 공식 sdk를 통해 사용자를 생성할 수 있습니다 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" "john", "password" "secretpass"}' \\ https //parseapi back4app com/users 소셜 로그인 facebook, google 또는 apple 로그인 흐름을 통합할 수 있습니다 각 제공자는 약간 다른 접근 방식을 가지고 있지만, 주요 원칙은 parse와 토큰을 교환하는 것입니다 이러한 통합 방법에 대한 자세한 내용은 공식 소셜 로그인 문서 https //www back4app com/docs/platform/sign in with apple 를 확인하세요 rails 애플리케이션 에 통합하는 방법에 대한 세부정보 6단계 – 파일 저장 처리 파일 저장 설정 parse를 사용하여 파일을 업로드하는 것은 parse api를 통해 파일을 업로드하는 것만큼 간단합니다 parse ruby client를 사용하는 경우 file data = file open('path/to/image jpg') parse file = parse file new('image jpg', file data) begin parse file save puts "file uploaded #{parse file url}" rescue => e puts "error uploading file #{e message}" end 예시 그런 다음 이 파일을 객체에 첨부할 수 있습니다 photo obj = parse object new('photo') photo obj\['imagefile'] = parse file photo obj save 7단계 – 이메일 인증 및 비밀번호 재설정 이메일 인증 활성화 는 back4app 대시보드의 이메일 설정 에서 가능합니다 비밀번호 재설정 설정 은 이메일 템플릿 및 도메인 설정을 사용자 정의하여 가능합니다 이메일 흐름 트리거 는 사용자 등록 후 또는 사용자가 비밀번호 재설정을 요청할 때 자동으로 발생합니다 이는 보안을 향상시키고 유효한 이메일 소유권을 확인하는 데 도움이 됩니다 8단계 – 클라우드 작업으로 작업 예약 클라우드 작업 데이터 정리 또는 일일 요약 전송과 같은 작업을 자동화하려면 클라우드 작업을 사용하세요 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 대시보드의 서버 설정 > 백그라운드 작업 에서 매일 또는 원하는 간격으로 실행되도록 예약할 수 있습니다 9단계 – 웹훅 통합 웹훅을 사용하면 back4app 앱이 특정 이벤트가 발생할 때마다 외부 url로 데이터를 전송할 수 있습니다 새로운 또는 업데이트된 객체 데이터를 stripe 또는 slack과 같은 다른 시스템으로 전달할 수 있습니다 back4app 대시보드에서 더보기 > 웹훅 으로 이동합니다 외부 url을 가리키는 새 웹훅을 추가합니다 (예 rails 컨트롤러의 경로) 웹훅을 트리거하는 이벤트를 지정합니다 원하신다면, beforesave 또는 aftersave 함수에서 http 요청을 만들어 cloud code에서 웹훅을 트리거할 수도 있습니다 10단계 – back4app 관리 패널 탐색 “ back4app 관리 앱 ”은 비기술 팀이나 클라이언트가 back4app 데이터에 대해 crud 작업을 수행할 수 있는 사용자 친화적인 방법을 제공합니다 이 인터페이스는 기본 작업을 위해 직접 코드 변경이나 parse 대시보드 사용의 필요성을 없애줍니다 어디서 찾을 수 있나요? 대시보드에서 관리 앱 활성화 를 선택하여 더보기 > 관리 앱 로 이동한 후 관리 앱 활성화 를 클릭하면 됩니다 기능 활성화되면 다음을 수행할 수 있습니다 쿼리를 작성하지 않고 데이터를 생성하고 관리합니다 로그를 모니터링하고, 백그라운드 작업을 예약하며, 푸시 알림을 처리합니다(활성화된 경우) 안전한 편집을 위해 팀원에게 역할 기반 액세스를 제공합니다 결론 축하합니다! back4app을 사용하여 ruby on rails의 백엔드를 구축하는 방법을 배웠습니다 이 튜토리얼에서 여러분은 rails 프로젝트 구성 을 rest, graphql 또는 parse ruby client를 통해 back4app과 상호작용하도록 설정했습니다 안전한 데이터베이스 상호작용 설정 을 클래스 스키마, acl, clp 및 선택적 실시간 쿼리를 사용하여 수행했습니다 사용자 인증 통합 을 이메일 확인 및 비밀번호 재설정과 함께 구현했습니다 클라우드 코드 배포 를 위해 사용자 정의 논리, 트리거 및 예약 작업을 설정했습니다 파일 업로드 관리 , 웹훅 활용 및 관리 패널 탐색 ruby on rails의 mvc 아키텍처와 back4app의 강력한 기능 세트를 결합함으로써, 귀하의 rails 애플리케이션은 원활하게 확장할 수 있습니다 인프라 관리에 상당한 시간을 절약할 수 있으며, 세련된 사용자 경험과 신뢰할 수 있는 서버 측 논리를 갖춘 웹 애플리케이션 구축에 집중할 수 있습니다 다음 단계 rails 앱 확장 을 더 복잡한 관계, 캐싱 전략 또는 고급 통합을 추가하여 수행하세요 서드파티 api 통합 (결제 게이트웨이와 같은) 및 클라우드 코드를 활용하여 더 깊은 웹 애플리케이션 개발 을 진행하세요 공식 back4app 문서 탐색 을 통해 고급 보안, 성능 조정, 로그 분석 등을 확인하세요 실시간 기능 실험 을 통해 채팅 앱이나 협업 플랫폼을 생성하세요—데이터가 자주 변경되는 경우에 이상적입니다 이러한 기본 사항이 마련되면, 현대 웹 애플리케이션을 위해 rails 서버를 신속하게 개발하고 반복하며 확장할 수 있습니다 행복한 코딩 되세요!