엘릭서용 백엔드를 구축하는 방법?
이 튜토리얼에서는 Elixir의 백엔드를 구축하는 방법을 배우게 됩니다.
우리는 데이터베이스 관리, 클라우드 코드 함수, REST 및 GraphQL API, 사용자 인증, 실시간 쿼리(라이브 쿼리)와 같은 필수 Back4App 기능을 통합하여 안전하고 확장 가능하며 강력한 백엔드를 만드는 방법을 안내할 것입니다.
Erlang VM(BEAM)에서 실행되고 OTP(Erlang OTP)를 활용하는 Elixir는 결함 허용 및 동시성 환경으로 잘 알려져 있으며, 이는 Back4App과 잘 결합되어 현대적이고 고성능의 인프라를 형성합니다.
Back4App의 빠른 설정과 직관적인 환경이 수동으로 서버와 데이터베이스를 구성하는 것에 비해 시간과 노력을 크게 줄일 수 있는 방법을 보게 될 것입니다.
여기에는 패턴 매칭을 활용하고 Elixir의 선택한 웹 프레임워크에 연결하는 것이 포함됩니다.
이 튜토리얼이 끝나면, 프로덕션 준비가 완료된 애플리케이션으로 확장하거나 사용자 정의 논리 및 타사 API로 향상시킬 수 있는 견고한 기반을 갖게 될 것입니다.
이 튜토리얼을 완료하려면 다음이 필요합니다:
시작하기 전에 모든 필수 조건이 준비되어 있는지 확인하세요. Back4App 프로젝트가 설정되고 로컬 Elixir 환경이 준비되어 있으면 더 원활하게 따라갈 수 있습니다.
Back4App에서 Elixir용 백엔드를 구축하는 방법의 첫 번째 단계는 새 프로젝트를 만드는 것입니다. 아직 만들지 않았다면 다음 단계를 따르세요:
- Back4app 계정에 로그인하세요.
- Back4App 대시보드에서 “새 앱” 버튼을 클릭하세요.
- 앱에 이름을 지정하세요 (예: “Elixir-Backend-Tutorial”).
프로젝트가 생성되면 Back4App 대시보드에 나열된 것을 볼 수 있습니다. 이 프로젝트는 이 튜토리얼에서 논의된 모든 백엔드 구성의 기초가 될 것입니다.
Back4App은 Parse 플랫폼을 기초로 사용합니다. Elixir의 경우 현재 공식 Parse SDK가 없습니다. 대신 REST 또는 GraphQL API를 사용하여 Back4App에 쉽게 연결할 수 있습니다. Elixir 프로젝트에서 다음을 수행합니다:
- 당신의 Application ID와 REST 또는 GraphQL Keys를 Back4App 대시보드의 “앱 설정” 또는 “보안 및 키” 섹션에서 가져옵니다.
예를 들어, 자격 증명을 구성 파일에 저장하려면 (config/dev.exs 또는 유사한 파일):
그런 다음 코드에서 이러한 자격 증명을 참조하여 REST 호출을 수행할 수 있습니다. 이 가이드 전반에 걸쳐 Back4App 데이터베이스, 사용자 시스템 및 기타 기능과 상호 작용하는 방법을 표준 HTTP 또는 GraphQL 요청을 사용하여 보여드리겠습니다.
Back4App에서는 데이터가 클래스에 저장됩니다. Back4App 대시보드에서 새 클래스를 만들 수 있습니다:
- “데이터베이스” 섹션으로 이동 하세요.
- 새 클래스 만들기 (예: “Todo”) 및 제목 (문자열)과 완료 여부 (부울)와 같은 관련 열을 추가하세요.
Back4App은 데이터 모델을 설명하고 만드는 데 도움을 주는 AI 에이전트를 제공합니다:
- AI 에이전트 열기 앱 대시보드 또는 메뉴에서.
- 데이터 모델 설명하기 일반 언어로 (예: “새 Todo 앱을 완전한 클래스 스키마로 만들어 주세요.”).
- AI 에이전트가 스키마를 자동으로 생성하게 하세요.
Elixir에는 공식 Parse SDK가 없으므로, 직접 SDK 사용은 건너뛰겠습니다. 대신, 아래에서 REST, GraphQL, 및 Live Queries 접근 방식을 보여드리겠습니다.
HTTP 클라이언트인 HTTPoison을(를) mix.exs에 설치하세요:
그런 다음 mix deps.get을(를) 실행하세요.
Elixir 애플리케이션에서 Todo 객체를 생성(저장)하려면:
그리고 Todo 객체를 쿼리하려면:
GraphQL을 통해서도 상호작용할 수 있습니다. 예를 들어, Todo를 생성하는 경우:
Elixir에서는 HTTP 클라이언트를 사용하여 이것을 보낼 수도 있습니다:
실시간 업데이트를 위해 Back4App은 라이브 쿼리. 앱의 서버 설정에서 라이브 쿼리를 활성화할 수 있습니다. 현재 네이티브 Elixir Parse 클라이언트 라이브러리가 없기 때문에, 일반적으로 제공된 wss://YOUR_SUBDOMAIN_HERE.b4a.io 엔드포인트에 Phoenix 채널이나 사용자 정의 WebSocket 클라이언트를 통해 연결합니다. 이는 구독, 메시지 등을 처리하기 위해 사용자 정의 코딩이 필요할 수 있습니다.
Back4App은 액세스 제어 목록 (ACL) 및 클래스 수준 권한 (CLP)을 제공하여 데이터 접근을 보호하고 관리합니다. ACL은 개별 객체에 적용되고, CLP는 전체 클래스에 적용됩니다.
- 클래스 수준 권한 (CLPs): Back4App 대시보드에서 데이터베이스, 클래스를 선택하고 (예: “Todo”) 클래스 수준 권한 탭을 엽니다. 설정을 조정합니다 (예: “인증 필요” 또는 “공용 접근 불가”).
- ACL 구성: 객체를 생성하거나 업데이트할 때, REST 또는 GraphQL 요청에 ACL 데이터를 보낼 수 있습니다. 예를 들어, 세부적인 객체별 제어가 필요하면 JSON에서 _ACL 필드를 지정합니다.
자세한 정보는 앱 보안 가이드라인을 방문하세요.
클라우드 코드는 자체 서버를 관리하지 않고도 서버 측 로직을 실행할 수 있게 해줍니다. Elixir를 사용할 때는 일반적으로 OTP에 의존하여 동시성을 처리하지만, 여기서는 Back4App에서 JavaScript 클라우드 코드를 간단히 생성하여 검증, 트리거 또는 사용자 정의 비즈니스 로직을 처리할 수 있습니다. 이 코드는 Parse Server에서 실행되므로, Elixir 코드를 클라이언트 또는 마이크로서비스 작업에 집중할 수 있으며, 무거운 작업은 클라우드 코드에서 처리됩니다.
당신의 main.js에서 Back4App 대시보드 또는 CLI를 사용하여:
다음 방법으로 배포하십시오: Back4app CLI 또는 대시보드의 Cloud Code > Functions 아래에 붙여넣고 배포를 클릭하십시오.
Elixir에서 다음과 같이 사용할 수 있습니다:
Back4App은 인증을 위해 Parse User 클래스를 사용합니다. 회원가입, 로그인 및 비밀번호 재설정을 쉽게 관리할 수 있습니다. Elixir에서는 일반적으로 REST 호출을 사용합니다:
Back4App은 Google, Apple, Facebook 등과의 통합을 지원합니다. 대부분의 경우, 사용자를 OAuth 흐름으로 안내한 다음, 이러한 제공자가 반환한 토큰을 사용하여 Parse 로그인을 완료합니다. 자세한 내용은 소셜 로그인 문서를 참조하세요.
Back4App은 파일을 안전하게 저장합니다. Elixir에서 REST를 통해 파일을 업로드할 수 있습니다:
파일 URL이 포함된 JSON 응답을 받게 되며, 이를 클래스(예: 사진)에 저장하여 참조할 수 있습니다.
파일 업로드를 허용할 사용자를 fileUpload 설정에서 구성할 수 있으며, 원할 경우 인증된 사용자로 업로드를 제한할 수 있습니다.
이메일 인증은 사용자가 가입 시 사용한 이메일 주소를 소유하고 있음을 보장합니다. 비밀번호 재설정은 사용자가 안전하게 계정을 복구할 수 있도록 합니다. 두 기능 모두 Back4App에 내장되어 있습니다.
- 이메일 인증 활성화 귀하의 앱의 “앱 설정” 또는 “인증”에서.
- “보내는 주소” 및 이메일 템플릿을 구성합니다.
- 비밀번호 재설정 활성화 사용자가 이메일로 전송된 링크를 통해 재설정할 수 있도록 합니다.
대시보드에서 활성화되면 비밀번호 재설정을 트리거할 수 있습니다:
클라우드 작업을 사용하면 오래된 데이터를 정리하거나 주기적인 이메일을 보내는 것과 같은 일상적인 작업을 자동화할 수 있습니다. 이를 위해 Cloud Code를 작성합니다.
- 코드를 배포합니다.
- Back4app 대시보드로 이동합니다 > 앱 설정 > 서버 설정 > 백그라운드 작업.
- 작업을 일정에 따라 매일 또는 선택한 빈도로 실행되도록 설정합니다.
웹훅을 사용하면 Back4App 애플리케이션이 특정 이벤트가 발생할 때 외부 서비스(예: Slack 채널 또는 Stripe)에 HTTP 요청을 보낼 수 있습니다.
- 웹훅 구성으로 이동 하여 Back4App 대시보드 > 더보기 > 웹훅.
- 엔드포인트 설정 (예: https://your-service.com/webhook-endpoint).
- 트리거 구성 예: “Todo 클래스에 새 레코드.”
Todo가 생성될 때마다 Slack에 데이터를 보내고 싶다면, Slack 수신 웹훅 URL을 가리키는 새로운 웹훅을 추가할 수 있습니다. 또한 afterSave와 같은 트리거에서 사용자 정의 HTTP 요청을 보내어 Cloud Code에서 웹훅을 정의할 수 있습니다.
“Back4app Admin App”은 데이터를 관리하기 위한 사용자 친화적인 인터페이스입니다. 다음에서 활성화할 수 있습니다: 앱 대시보드 > 더보기 > 관리 앱.
- 첫 번째 관리자 사용자 생성, B4aAdminUser 역할 및 추가 클래스를 설정합니다.
- 서브도메인 할당을 통해 관리 인터페이스에 접근합니다.
- 로그인하여 간단한 인터페이스에서 데이터를 보고 관리합니다.
이 튜토리얼을 따라 Elixir로 Back4App의 백엔드를 구축하면 다음과 같은 작업을 수행할 수 있습니다:
- 안전한 백엔드 구조를 Elixir를 사용하여 Back4App 플랫폼에서 통합했습니다.
- 데이터베이스를 설정했습니다 클래스, 데이터 유형 및 관계를 포함하여.
- REST/GraphQL을 사용했습니다 Elixir에서 데이터를 상호작용하기 위해.
- 보안을 적용했습니다 ACL 및 CLP를 사용하여.
- Cloud Code 기능으로 사용자 정의 논리를 추가했습니다
- 이메일 확인 및 비밀번호 재설정을 통해 사용자 인증을 구성했습니다
- 파일 저장 및 검색을 처리했습니다
- 자동화를 위한 백그라운드 작업을 예약했습니다
- 웹훅을 통해 외부 서비스를 통합했습니다
- 데이터 관리를 쉽게 하기 위해 Back4App 관리 패널을 탐색했습니다
Elixir의 동시성 모델(에를랑 VM 기반)과 OTP, Back4App의 확장 가능하고 유연한 서비스를 결합하면 매우 강력한 백엔드를 구축할 수 있습니다.
더 많은 고급 기능을 탐색하고 비즈니스 논리를 통합하며 Back4App이 무거운 작업을 처리하도록 하세요.
- 생산 준비가 완료된 Elixir 앱을 선호하는 Elixir/Phoenix 웹 프레임워크와 함께 구축하세요.
- 고급 기능 통합 역할 기반 접근 제어 또는 제3자 API(결제 게이트웨이, 메시징 서비스)와 같은.
- Back4app의 공식 문서 탐색 고급 보안, 로그, 성능 조정 등을 위해.
- 다른 튜토리얼 확인 실시간 앱, IoT 대시보드 또는 위치 기반 서비스에 대해. 패턴 매칭과 OTP 동시성을 활용하여 다양한 애플리케이션을 처리할 수 있습니다!