Quickstarters
Feature Overview
루비를 위한 백엔드를 구축하는 방법은?
34 분
소개 이 튜토리얼에서는 ruby용 백엔드를 구축하는 방법 을 배울 것입니다 우리는 데이터베이스 관리, 클라우드 코드 함수, rest 및 graphql api, 사용자 인증, 실시간 쿼리(라이브 쿼리)와 같은 필수 back4app 기능을 살펴볼 것입니다 ruby 프로그래밍 언어와 back4app을 활용함으로써, 소프트웨어 개발 생태계와 쉽게 통합되는 안전하고 확장 가능하며 강력한 백엔드를 얻을 수 있습니다 이 접근 방식은 parse를 기반으로 구축된 오픈 소스 웹 플랫폼을 사용하여 시간과 노력을 절약합니다 빠른 개발 원칙으로 개발 프로젝트를 가속화하는 방법을 보게 될 것입니다 그 과정에서 고급 보안 기능을 사용하고, 클라우드 작업으로 작업을 예약하며, 외부 통합을 위한 웹후크를 설정하는 방법을 배울 것입니다 마지막에는 웹 애플리케이션 프레임워크 구조를 설계하고 이를 프로덕션 애플리케이션으로 확장할 준비가 될 것입니다 다음과 같은 작업을 수행할 수 있습니다 데이터 모델, 객체 지향 논리 및 실시간 데이터를 위해 ruby를 back4app과 통합합니다 모델 뷰 컨트롤러(mvc) 스타일 또는 선호하는 다른 아키텍처에서 애플리케이션 개발을 위한 개발 프로세스 모범 사례를 활용합니다 안전한 사용자 인증, 클라우드 코드 트리거 등을 처리하여 백엔드 개발자로서의 역할을 강화합니다 back4app의 유연한 기능을 사용하여 실제 요구 사항을 충족하도록 웹 애플리케이션을 더욱 개선합니다 필수 조건 back4app 계정 및 새로운 back4app 프로젝트 back4app 시작하기 https //www back4app com/docs/get started/new parse app 계정이 없으면 무료로 가입하세요 로컬 ruby 환경 다음이 설치되어 있어야 합니다 ruby https //www ruby lang org/en/documentation/installation/ 일반적으로 ruby 2 6 이상이 권장됩니다 ruby 프로그래밍 언어에 대한 친숙함 ruby 구문에 대한 기본 지식, 객체 지향 개념 및 일반 프로그래밍 언어 사용 bundler (선택 사항이지만 권장됨) bundler는 웹 애플리케이션 프레임워크 또는 개발 프로젝트 의 gem을 관리하는 데 도움을 줍니다 bundler 공식 문서 https //bundler io/ 시작하기 전에 모든 필수 조건이 준비되어 있는지 확인하세요 back4app 프로젝트를 생성하고 ruby 환경을 준비하면 원활한 튜토리얼 경험을 제공할 수 있습니다 1단계 – back4app에서 새 프로젝트 만들기 및 연결하기 이 단계가 중요한 이유 새로운 back4app 프로젝트는 당신의 애플리케이션 개발 의 기초입니다 데이터베이스를 호스팅하고, 사용자 인증을 관리하며, cloud code 를 실행할 환경을 제공합니다 새 프로젝트 만들기 back4app에 로그인하세요 back4app 대시보드에서 새 앱 을 클릭하세요 앱에 이름을 지정하세요 (예 “ruby backend tutorial”) parse sdk 설치 및 back4app 연결 ruby용 parse sdk는 back4app의 백엔드와 상호작용하는 데 도움을 줍니다 gem 을 통해 설치할 수 있습니다 2단계 – 데이터베이스 설정 1\ 데이터 모델 만들기 back4app에서 클래스 는 데이터베이스 테이블과 같습니다 예를 들어, 작업을 저장하기 위해 “todo” 클래스를 만들 수 있습니다 ruby에서 즉석에서 클래스를 만들거나 대시보드에서 정의하여 세밀한 제어를 할 수 있습니다 2\ ai 에이전트를 사용하여 데이터 모델 만들기 앱 대시보드에서 ai 에이전트 열기 데이터 모델을 설명하세요 (예 “제목, iscompleted 필드가 있는 todo 앱”) ai 에이전트가 자동으로 스키마를 생성하도록 하세요 3\ 루비를 사용한 데이터 읽기 및 쓰기 (parse sdk) 아래는 ruby sdk를 사용하여 “todo” 클래스에 새 레코드를 생성하는 간단한 예입니다 require relative 'parse config' \# create a todo object todo = parse object new("todo") todo\["title"] = "buy groceries" todo\["iscompleted"] = false saved todo = todo save puts "todo saved with objectid #{saved todo\['objectid']}" \# query todos query = parse query new("todo") results = query get puts "fetched #{results size} todos " results each do |t| puts "title #{t\['title']}, completed #{t\['iscompleted']}" end 4\ rest api를 사용한 데이터 읽기 및 쓰기 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" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/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" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5\ graphql api를 사용한 데이터 읽기 및 쓰기 back4app는 고급 웹 애플리케이션 을 위한 graphql 엔드포인트를 제공합니다 mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6\ 라이브 쿼리 작업하기 (선택 사항) back4app 대시보드(서버 설정)에서 라이브 쿼리 를 활성화하고, 환경이 websocket 연결을 지원하는 경우 ruby 스크립트에서 구독하세요 동시성을 지원하는 웹 애플리케이션 프레임워크 에서도 실시간 업데이트에 사용할 수 있습니다 3단계 – acl 및 clp로 보안 적용하기 1\ 개요 acl(access control lists) 및 clp(class level permissions)는 객체 지향 방식으로 데이터를 보호합니다 acl은 각 레코드를 읽거나 쓸 수 있는 사람을 결정할 수 있게 해줍니다 clp는 전체 클래스에 대한 권한을 관리할 수 있게 해줍니다 2\ 클래스 수준 권한(clps) 및 acl 설정하기 앱의 데이터베이스 섹션으로 가서 “todo”와 같은 클래스를 선택하세요 “보안” 또는 “클래스 수준 권한”에서 클래스의 clp를 구성하세요 레코드에 acl을 설정하려면 owner = parse user current todo = parse object new("todo") acl = parse acl new(owner) acl public read = false acl public write = false todo acl = acl todo\["title"] = "private task" todo save 이렇게 하면 오직 소유자만 해당 todo를 읽거나 쓸 수 있습니다 4단계 – 클라우드 코드 함수 작성 1\ 클라우드 코드의 필요성 클라우드 코드는 비즈니스 로직과 검증을 서버에 직접 내장하는 데 도움을 줍니다 데이터 무결성을 보장하고 클라이언트에 노출되지 않은 작업을 수행하는 데 이상적입니다 2\ 예제 함수 프로젝트의 main js (또는 유사한 파일)에서 back4app에 클라우드 함수를 정의할 수 있습니다 parse cloud define('calculatetextlength', (request) => { const { text } = request params; if (!text) { throw 'no text provided'; } return { length text length }; }); 참고 우리의 주요 애플리케이션은 루비를 사용하지만, parse의 클라우드 코드는 자바스크립트 기반입니다 이것이 back4app에서 서버 측 로직을 내장하는 방법입니다 3\ 배포 back4app cli back4app 대시보드 함수를 cloud code > functions 에 복사/붙여넣기하고 배포 를 클릭하세요 4\ npm 모듈 클라우드 코드 환경에 npm 모듈(예 axios)을 설치할 수 있습니다 예를 들어 npm install axios 당신의 main js , 이를 요구하고 필요에 따라 외부 api 호출을 하세요 5단계 – 인증 구성 1\ 대시보드 설정 앱의 앱 설정 에서 사용자 인증을 활성화합니다 back4app은 parse user 를 사용하여 사용자 관리를 수행합니다 2\ 루비로 가입 / 로그인 require relative 'parse config' \# signing up a user user = parse user new({ username "alice", password "secret123", email "alice\@example com" }) begin user sign up puts "user signed up successfully" rescue => e puts "error #{e message}" end \# logging in a user logged in user = parse user login("alice", "secret123") puts "logged in as #{logged in user username}" 3\ 소셜 로그인 소셜 로그인을 통합하려면 (facebook, google, apple), 소셜 로그인 문서 https //www back4app com/docs/platform/sign in with apple 를 참조하세요 각 제공업체에 대한 구현 세부정보는 다릅니다 6단계 – 파일 저장 처리 1\ 파일 저장 설정 back4app은 parse file 객체를 통해 파일 업로드를 관리합니다 루비에서 file = parse file new("image png", file read("/path/to/image png")) saved file = file save puts "file saved at #{saved file url}" \# attach file to an object photo = parse object new("photo") photo\["imagefile"] = saved file photo save puts "photo object created with file reference " 2\ 예시 사용자는 이미지, 문서 또는 기타 파일을 업로드할 수 있습니다 url을 검색하여 프론트엔드 또는 기타 서비스에서 표시합니다 3\ 보안 고려사항 필요한 경우 인증된 사용자에게만 파일 업로드를 제한하도록 앱을 구성하십시오 7단계 – 이메일 확인 및 비밀번호 재설정 1\ 왜 중요한가 이메일 확인은 새 계정에 대한 유효한 이메일 주소를 보장합니다 비밀번호 재설정은 사용자가 안전하게 계정을 복구할 수 있도록 합니다 2\ back4app 대시보드 구성 이메일 확인을 활성화 하십시오 확인 및 비밀번호 재설정을 위한 사용자 정의 템플릿을 설정하십시오 3\ 코드 예제 루비에서 비밀번호 재설정을 요청할 수 있습니다 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단계 – 클라우드 작업으로 작업 예약하기 1\ 클라우드 작업의 기능 클라우드 작업은 오래된 데이터를 정리하거나 요약 이메일을 보내는 것과 같은 주기적인 작업을 실행합니다 2\ 예제 작업 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); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); 백4앱 대시보드에서 앱 설정 > 서버 설정 > 백그라운드 작업 아래에 일정을 설정하세요 9단계 – 웹훅 통합 1\ 정의 웹훅을 사용하면 백4앱에서 특정 이벤트가 발생할 때마다 외부 서비스에 http 요청을 보낼 수 있습니다 이는 제3자 서비스와 연결하거나 다른 프로그래밍 언어 에서 작업을 트리거하는 데 유용합니다 2\ 구성 앱의 백4앱 대시보드로 가서 > 더보기 > 웹훅 , 그리고 외부 서비스의 url로 새 웹훅을 추가하세요 3\ 예제 새로운 “할 일”이 생성될 때마다 stripe 또는 slack에 데이터를 전송하세요 또는 클라우드 코드에서 트리거를 정의하고 해당 트리거 내에서 http 요청을 만들 수 있습니다 10단계 – 백4앱 관리 패널 탐색 1\ 어디서 찾을 수 있나요? 앱 대시보드에서 더보기 > 관리자 앱 , 그런 다음 활성화합니다 2\ 기능 코드 없이 데이터 관리를 위한 그래픽 인터페이스 로그 분석, 백그라운드 작업 예약 등을 위한 도구 비기술 사용자가 콘텐츠를 안전하게 관리할 수 있도록 하는 역할 기반 액세스 제어 결론 back4app에서 ruby 앱을 위한 안전하고 확장 가능한 백엔드를 구축했습니다 parse api와 연결하기 위해 ruby 프로그래밍 언어를 사용했습니다 이제 개발 프로세스에는 다음이 포함됩니다 고급 보안 기능이 있는 데이터베이스 (acl, clp) 실시간 데이터 업데이트를 위한 라이브 쿼리 클라우드 코드 트리거를 통한 맞춤형 비즈니스 로직 사용자 인증 및 파일 처리 예약된 작업 을 위한 클라우드 작업 및 웹후크 데이터 관리를 위한 사용자 친화적인 관리자 패널 이 기반을 통해 웹 애플리케이션이나 다른 프로그래밍 언어 프로젝트를 실제 요구 사항에 맞게 확장할 수 있습니다 경험이 풍부한 백엔드 개발자이든 ruby를 처음 시작하는 사람이든 back4app은 빠른 개발을 위한 객체 지향적이고 사용하기 쉬운 플랫폼을 제공합니다 추가 api나 기능을 통합하고, 모델 뷰 컨트롤러(mvc) 패턴이나 다른 아키텍처 스타일에 맞게 더 많은 사용자 지정을 탐색해 보세요 다음 단계 생산 환경을 개선하세요 고급 캐싱, 역할 기반 접근 또는 성능 최적화를 추가하여 데이터 클래스 간의 더 복잡한 관계를 추가하세요 실제 사용 사례를 지원하기 위해 공식 back4app 문서를 탐색하세요 보안, 성능 통찰 및 분석을 위해 다른 오픈 소스 웹 프레임워크로 실험해 보세요 애플리케이션의 기능을 확장하기 위해 더 강력하고 기능이 풍부한 웹 애플리케이션 을 ruby와 back4app으로 구축하는 것을 즐기세요!