PocketBase란 무엇이며 어떻게 사용합니까?
PocketBase는 데이터 유효성 검사, 실시간 구독 및 사용하기 쉬운 REST API가 있는 포함된 SQLite 데이터베이스로 구성된 오픈 소스 백엔드입니다. 또한 미디어 파일에 대한 인증 및 파일 저장소를 제공합니다.
PocketBase는 완벽하게 이식 가능하고 최소한의 설정만 필요하기 때문에 시간 제약이나 편의성 때문에 백엔드를 구축하고 싶지 않은 프로젝트에 적합합니다. 또한 Vue, Svelte, React, Angular 및 Flutter와 같은 널리 사용되는 기술과 통합됩니다.
PocketBase에서 제공하는 서비스
PocketBase는 SupaBase와 같은 다른 백엔드 공급자가 제공하는 대부분의 서비스를 제공합니다.
- SQLite 데이터베이스 : PocketBase에는 임베디드 SQLite 데이터베이스가 포함되어 있습니다. 이것은 PostgreSQL 또는 MySQL과 같은 더 큰 데이터베이스를 사용하는 다른 백엔드 공급자와 다릅니다. SQLite를 사용하면 PocketBase가 더 가벼워집니다. API를 통해 실시간 데이터베이스 이벤트를 구독할 수도 있습니다.
- 인증 : PocketBase는 Facebook, Google, GitLab 및 GitHub를 통한 이메일/비밀번호 인증 및 OAuth2 인증을 지원합니다.
- 파일 저장소 : PocketBase를 사용하여 사진, 오디오, 동영상 파일을 로컬 저장소나 S3 버킷에 업로드할 수 있습니다.
- 관리 대시보드 : 관리 대시보드를 사용하면 데이터베이스에서 컬렉션을 만들고 관리할 수 있습니다. 또한 파일을 업로드하고, 로그 파일을 보고, 이메일 전송을 위한 설정을 구성할 수 있습니다.
문서에 따르면 PocketBase는 6개의 가상 사설 서버에서 10,000개 이상의 동시 및 영구 실시간 연결을 쉽게 제공할 수 있으므로 중소형 애플리케이션을 위한 저렴한 백엔드 선택입니다.
PocketBase는 세로로만 확장됩니다. 즉, 처리 능력을 높이려면 더 많은 CPU와 RAM을 추가해야 합니다. 대규모 애플리케이션이 있는 경우 수평 확장을 허용하는 Firebase와 같은 백엔드 공급자를 고려하십시오.
PocketBase 시작하기
현재 PocketBase는 두 가지 SDK를 제공합니다.
- Svelte, React, Vue 및 Angular와 같은 JavaScript 프레임워크와 함께 사용할 수 있는 JavaScript SDK.
- Flutter 앱용 Dart SDK.
시작하는 가장 쉬운 방법은 PocketBase를 다운로드하는 것 입니다. 여러 링크가 있으므로 환경에 맞는 것을 다운로드하십시오.
다운로드가 완료되면 압축을 풀고 pocketbase 폴더로 이동합니다. 그런 다음 터미널에서 다음 명령을 실행합니다.
./pocketbase serve
이 명령은 이러한 경로에서 웹 서버를 시작해야 합니다.
- 서버: http://127.0.0.1:8090/
- REST API: http://127.0.0.1:8090/api/
- 관리자 UI: http://127.0.0.1:8090/_/
http://127.0.0.1:8090/_/ URL로 이동하여 관리 대시보드를 사용하여 첫 번째 컬렉션을 만듭니다.
PocketBase에서 컬렉션 만들기
관리자 UI를 처음 열면 관리자 계정을 만들기 위해 이메일 주소와 비밀번호를 묻습니다.
관리 UI는 다음과 같습니다.
관리 UI에서 새 컬렉션 버튼을 클릭하면 새 컬렉션 을 만들기 위한 세부 정보를 입력할 수 있는 컬렉션 패널이 열립니다.
제목과 완료된 필드로 구성된 todos라는 컬렉션을 만드는 방법은 다음과 같습니다.
컬렉션은 기본 또는 인증 컬렉션일 수 있습니다. 기본 컬렉션은 기본 컬렉션 유형이며 모든 유형의 데이터에 사용할 수 있습니다. 인증 컬렉션에는 사용자 이름, 이메일 및 확인된 사용자를 관리하기 위한 추가 필드가 포함되어 있습니다.
컬렉션을 만들기 위해 관리 UI를 사용할 필요가 없습니다. 웹 API를 사용하여 만들 수 있습니다. PocketBase 문서 는 API를 통해 컬렉션을 만들고 관리하는 방법에 대한 SDK 관련 예제를 제공합니다. 컬렉션을 생성, 보기, 업데이트, 삭제 또는 가져올 수 있습니다.
React 애플리케이션에서 PocketBase 사용
JavaScript SDK를 사용하면 React 프로젝트에서 PocketBase와 상호 작용할 수 있습니다.
따라하려면 React 프로젝트를 생성하여 시작하십시오.
그런 다음 npm을 통해 React 프로젝트에 PocketBase JavaScript SDK를 설치합니다.
npm install pocketbase --save
다음으로 app.js에서 PocketBase를 가져오고 초기화합니다.
import PocketBase from 'pocketbase';
const pb = new PocketBase('http://127.0.0.1:8090');
PocketBase가 React를 통합하는 방법을 설명하기 위해 할 일 응용 프로그램에 대한 도우미 함수를 만듭니다. 이러한 기능은 항목을 생성, 업데이트, 검색 및 삭제합니다.
할 일 항목 만들기
app.js에서 addTodo라는 함수를 만듭니다.
const addTodo = async (todo) => {
try {
const record = await await pb.collection("todos").create(todo);
return record;
} catch (error) {
return { error: error.message };
}
};
이 함수는 todos 컬렉션에 새 레코드를 추가합니다.
할 일 항목 업데이트
todo 컬렉션의 레코드를 업데이트하려면 updateTodo라는 함수를 만들고 update 메서드를 사용합니다.
const updateTodo = async (record_id, todo) => {
try {
const record = await pb.collection("todos").update(record_id, todo);
return record;
} catch (error) {
return { error: error.message };
}
};
updateTodo 함수는 레코드 ID를 기반으로 할 일 항목을 찾아 새 데이터로 업데이트합니다.
할 일 항목 삭제
app.js에서 todo 컬렉션의 레코드를 삭제하는 deleteTodo라는 함수를 만듭니다.
const deleteTodo = async (record_id) => {
try {
await pb.collection("todos").delete(record_id);
} catch (error) {
return { error: error.message };
}
};
Todo 항목 검색
컬렉션에서 단일 할 일 항목 또는 모든 항목을 검색할 수 있습니다.
이 함수는 ID로 단일 할 일 항목을 검색합니다.
const getTodo = async (record_id) => {
try {
const record = await pb.collection("todos").getOne(record_id, {
expand: "relField1,relField2.subRelField",
});
return record
} catch (error) {
return { error: error.message };
}
};
아래 함수는 todo 컬렉션의 모든 레코드를 검색합니다.
const getTodos = async (record_id) => {
try {
const records = await pb
.collection("todos")
.getFullList(200 /* batch size */, {
sort: "-created",
});
return records;
} catch (error) {
return { error: error.message };
}
}
이러한 기능을 사용하여 애플리케이션의 UI를 만들고 업데이트할 수 있습니다.
자세한 예는 PocketBase 레코드 API 문서 또는 “관리자 UI > 컬렉션 > API 미리 보기”에서 생성된 API 문서를 참조하세요. 컬렉션에 대한 목록, 보기, 생성, 업데이트, 삭제 및 실시간 문서에 액세스할 수 있어야 합니다.
PocketBase를 사용해야 하는 이유
PocketBase는 중소 규모 프로젝트를 위한 최고의 백엔드입니다. 최소한의 설정이 필요하고 사용하기 쉽습니다. JavaScript SDK와 Dart SDK의 두 가지 클라이언트 SDK를 제공하며 웹 및 모바일 애플리케이션에서 사용할 수 있습니다.
PocketBase는 자체 호스팅도 가능하며 로컬 서버나 VPS에서 호스팅할 수 있습니다. 클라우드 기능을 지원하지 않지만 Go 프레임워크로 사용하고 사용자 지정 비즈니스 논리로 자신의 앱을 만들 수 있습니다.
답글 남기기