올인원 백엔드 서버 Appwrite.io

KUKJIN LEE's profile picture

KUKJIN LEE5일 전 작성

Appwrite는 풀 스택 웹앱 개발을 돕기 위한 오픈 소스 백엔드 서버입니다. DB, 인증, 스토리지, 실시간 API 등 서버부터 데이터베이스 다양한 기능을 제공합니다.

(간편하게 개발할 수 있는 이점이 존재하지만, 규모가 커짐에 따라 가격이 기하급수적으로 증가합니다.)

 

Appwrite란?

개발자들이 백엔드의 복잡한 부분을 간단하게 관리할 수 있도록 돕는 플랫폼입니다. 직접 서버를 구축하거나 여러 서비스를 조합하지 않아도, 하나의 시스템에서 필요한 백엔드 기능들을 모두 사용할 수 있습니다. 이를 통해 개발자들은 클라이언트 애플리케이션에 집중할 수 있습니다.

 

주요 특징

  • 종합 백엔드 서비스: 인증, 데이터베이스, 스토리지, 파일 관리, 함수를 하나의 서비스로 통합 제공.

  • 오픈 소스: 누구나 기여할 수 있고, 필요에 따라 커스터마이징이 가능합니다.

  • REST와 GraphQL API 지원: 다양한 클라이언트 애플리케이션과 쉽게 통합 가능합니다.

 

Appwrite 설치하기

npm install node-appwrite --save

 

Appwrite 주요 기능

1. 인증 및 사용자 관리

Appwrite는 이메일/패스워드, OAuth, 익명 인증 등 다양한 인증 방식을 제공합니다. 이를 통해 사용자 관리가 간편하며, 보안성을 강화할 수 있습니다.

const { Client, Account } = require('node-appwrite');

const client = new Client();
client.setEndpoint('http://localhost/v1').setProject('YOUR_PROJECT_ID');

const account = new Account(client);
account.create('unique_id', 'email@example.com', 'password')
  .then(response => console.log(response))
  .catch(error => console.error(error));

 

2. 데이터베이스 관리

Appwrite는 MongoDB를 기반으로 하는 문서형 데이터베이스를 제공합니다. 개발자는 간단히 컬렉션과 문서를 생성하고 관리할 수 있습니다.

const { Databases } = require('node-appwrite');

const databases = new Databases(client);
databases.createDocument('YOUR_COLLECTION_ID', {
  title: 'My First Document',
  content: 'This is an example document.'
})
  .then(response => console.log(response))
  .catch(error => console.error(error));

 

3. 파일 및 스토리지 관리

파일 업로드와 스토리지 관리를 위한 간단한 API도 제공됩니다. 이미지, 비디오, 기타 파일을 업로드하고, URL을 통해 접근할 수 있습니다.

const { Storage } = require('node-appwrite');

const storage = new Storage(client);
storage.createFile('unique_file_id', fileInput.files[0])
  .then(response => console.log(response))
  .catch(error => console.error(error));

 

4. 서버리스 함수 (Cloud Functions)

Appwrite는 서버리스 함수를 지원해, 특정 이벤트에 따라 자동으로 코드를 실행할 수 있습니다. 이를 통해 서버에서 백그라운드 작업을 처리할 수 있습니다.

const { Functions } = require('node-appwrite');

const functions = new Functions(client);
functions.createExecution('YOUR_FUNCTION_ID', 'payload')
  .then(response => console.log(response))
  .catch(error => console.error(error));

 

Appwrite 후기

확실히 백엔드 리소스를 쉽게 관리할 수 있도록 설계되었습니다. 데이터베이스, 사용자, 스토리지 등을 직관적인 UI를 통해 설정하고 모니터링할 수 있습니다. 이를 통해 개발자들은 GUI 환경에서 백엔드 설정을 관리할 수 있으며, API나 코드를 직접 작성할 필요 없이 빠르게 애플리케이션을 구축할 수 있습니다. 문제는 가격입니다. 개인이 기록용 사이트를 만들기 위해서 사용하는 건 좋지만, 실제 서비스를 만들어 대중에게 공개할 경우 과금량이 너무 커질 것으로 판단됩니다.

New Tech Posts