React Native 템플릿

토도 앱 백엔드 템플릿
React Native - 스키마, API 및 AI 가이드

프로덕션에 바로 사용할 수 있는 Back4app의 React Native Todo 백엔드 스키마 및 스타터 키트: ER 다이어그램, 데이터 사전, JSON 스키마, API 플레이그라운드, JavaScript/React 네이티브 코드 예제, 오프라인 우선 고정, 원클릭 AI 에이전트 프롬프트를 통해 몇 분 안에 배포할 수 있습니다.

주요 내용

이 페이지에는 프로덕션 준비 스키마, 원클릭 AI 프롬프트, 단계별 React Native 코드가 제공되므로 백엔드를 구축하지 않고도 Todo 앱을 출시할 수 있습니다.

  1. 몇 분 안에 배포AI 에이전트 프롬프트를 붙여넣고 프런트엔드, 백엔드 및 데이터베이스가 포함된 실행 중인 앱을 가져옵니다.
  2. 기본적으로 보안 설정행 수준 ACL을 사용하면 각 사용자가 자신의 할 일만 볼 수 있습니다.
  3. React Native-네이티브 SDK비동기/대기, 로컬 고정, Parse React 기본 제공 Live Queries를 지원하는 네이티브 SDK.
  4. rest + GraphQL두 API 모두 자동 생성되므로 작성할 사용자 정의 엔드포인트가 없습니다.
  5. 두 가지 클래스사용자(기본 제공 인증) 및 Todo(제목, 완료, 마감일, 우선순위, 소유자가 있는 작업).

React Native Todo 앱 백엔드 템플릿이란 무엇인가요?

React Native Todo 앱 백엔드 템플릿Back4app에서 호스팅되는 사전 구축된 프로덕션 준비 상태의 백엔드 스키마입니다. 두 개의 데이터베이스 클래스(_UserTodo), 소유권 기반 ACL, REST 및 GraphQL API, 원클릭 AI 에이전트 프롬프트가 제공되므로 React Native 앱을 연결하고 오프라인 지원을 통해 며칠이 아닌 몇 분 안에 작동하는 Todo 앱을 출시할 수 있습니다.

최적 대상:

React 네이티브 개발자엑스포 및 베어 워크플로오프라인 우선 모바일 앱MVP 출시크로스 플랫폼 iOS 및 Android

개요

Todo 앱은 백엔드 개발 학습을 위한 가장 일반적인 시작점 중 하나입니다. 내부적으로는 사용자 등록, 작업 CRUD, 소유권 기반 액세스 제어, 실시간 동기화 및 오프라인 지원(선택 사항)이 필요합니다.

아래 스키마는 포인터로 연결된 두 개의 클래스, 즉 _User(기본 제공)와 Todo를 정의합니다. Parse React 네이티브 SDK(Back4app)를 사용하면 사용자 지정 API 계층을 작성하지 않고도 JavaScript 또는 TypeScript 코드에서 직접 이 백엔드와 상호 작용하여 객체를 쿼리, 생성, 업데이트, 삭제하고 오프라인에 대한 고정 기능을 수행할 수 있습니다.

왜 Back4app로 React Native Todo 백엔드를 구축해야 할까요?

Back4app는 준비된 백엔드와 Parse React 네이티브 SDK를 제공하므로 REST 배선 및 인증 대신 UX와 성능에 집중할 수 있습니다.

  • 오프라인 우선 및 동기화: Todo 개체를 로컬 데이터 저장소에 고정하면 목록이 오프라인에서 작동하고 앱이 다시 온라인 상태가 되면 동기화되므로 모바일에 이상적입니다.
  • 구성 요소 및 후크: React 후크 및 컨텍스트와 함께 SDK를 사용하고, 실시간 업데이트를 위해 Parse 쿼리 및 Live Queries와 상태를 동기화하세요.
  • 크로스 플랫폼, 하나의 백엔드: 브랜드2__ 및 브랜드1__에 대한 스키마 및 API가 동일하며, 엑스포 또는 베어 워크플로를 사용하는 React 네이티브 팀에 이상적입니다.

엑스포 또는 베어 워크플로우를 사용하는 React 네이티브 개발자에게 이상적입니다(하나의 백엔드, 두 플랫폼 모두).

핵심 혜택

프로덕션 준비가 완료된 Todo 백엔드를 통해 더 빠르게 출시하고 앱에 집중할 수 있습니다.

백엔드 코드 없이 더 빠르게 배송

REST 및 GraphQL API와 바로 사용 가능한 스키마 - 앱을 연결하고 시작하세요.

기본적으로 보안 설정

ACL 및 클래스 수준 권한으로 사용자가 자신의 데이터에만 액세스할 수 있습니다.

실시간 업데이트

Live Queries를 웹소켓에 연결하여 즉시 UI를 업데이트할 수 있습니다.

내장 인증

사용자 가입, 로그인, 세션 처리를 사용자 지정 인증 계층 없이 바로 사용할 수 있습니다.

오프라인에서 작동

로컬 고정은 오프라인 상태에서도 데이터를 사용할 수 있도록 유지하며 재접속 시 동기화됩니다.

몇 분 안에 배포

AI 에이전트를 사용하여 이 템플릿에서 Todo 앱을 만들고 배포하세요.

사용해 볼 준비가 되셨나요?

단일 프롬프트에서 Back4app AI 에이전트가 Todo 앱 백엔드 생성, React Native 프런트엔드 연결 및 배포를 모두 수행할 수 있습니다.

무료 시작 - 월 50개의 AI 상담원 프롬프트, 신용카드 필요 없음

기술 스택

이 Todo 앱 템플릿을 지원하는 모든 것을 한눈에 살펴보세요.

프론트엔드
React Native
백엔드
Back4app
데이터베이스
MongoDB
Auth
인증 및 액세스 제어
API
rest & GraphQL
배포
AI 에이전트 / 대시보드

응급실 다이어그램

PH0__ Todo 앱 데이터 모델에 대한 엔티티-관계 다이어그램입니다.

다이어그램 소스 보기
Mermaid
erDiagram
    _User {
        String objectId PK
        String username
        String email
        String password
        Date createdAt
        Date updatedAt
    }

    Todo {
        String objectId PK
        String title
        Boolean done
        Date dueDate
        Number priority
        Pointer owner FK
        Date createdAt
        Date updatedAt
    }

    _User ||--o{ Todo : "owns"

통합 흐름

인증-크루 시퀀스: React Native 앱이 Back4app와 대화하는 방법 - 로그인, 쿼리 및 할 일 생성.

다이어그램 소스 보기
Mermaid
sequenceDiagram
  participant User
  participant App as React Native App
  participant Back4app as Back4app Cloud

  User->>App: Login
  App->>Back4app: Parse.User.logIn(username, password)
  Back4app-->>App: Session token
  App-->>User: Logged in

  User->>App: Load todos
  App->>Back4app: new Parse.Query('Todo').find()
  Back4app-->>App: Array of Todo
  App-->>User: Show list

  User->>App: Create todo
  App->>Back4app: todo.save()
  Back4app-->>App: Todo (objectId)
  App-->>User: Updated list

데이터 사전

스키마의 모든 클래스에 대한 완전한 필드 참조.

필드유형설명필수
objectIdStringAuto-generated unique identifier자동
titleStringShort description of the task
doneBooleanWhether the task is completed
dueDateDateOptional deadline for the task
priorityNumberPriority level (1 = high, 3 = low)
ownerPointer<_User>User who owns this task
createdAtDateAuto-generated creation timestamp자동
updatedAtDateAuto-generated last-update timestamp자동

Todo의 8 필드

보안 및 권한

소유권, ACL 및 클래스 수준 권한이 이 스키마에서 데이터를 보호하는 방식입니다.

행 수준 ACL

각 Todo는 소유자에게 연결된 ACL을 받습니다. 작성자만 자신의 작업을 읽거나 업데이트하거나 삭제할 수 있습니다.

클래스 수준 권한

CLP는 1차 방어선인 클래스 수준에서 개체를 생성, 읽기, 업데이트 또는 삭제할 수 있는 역할 또는 사용자를 제한합니다.

포인터 기반 소유권

소유자 포인터는 각 작업을 해당 _사용자에 연결합니다. 클라우드 코드 트리거는 소유권을 자동으로 설정하고 저장 시 ACL을 적용할 수 있습니다.

스키마(JSON)

원시 JSON 스키마 정의 - 복사하여 Back4app 앱에서 사용하거나 API를 통해 가져옵니다.

JSON
{
  "classes": [
    {
      "className": "Todo",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "done": {
          "type": "Boolean",
          "required": false,
          "defaultValue": false
        },
        "dueDate": {
          "type": "Date",
          "required": false
        },
        "priority": {
          "type": "Number",
          "required": false,
          "defaultValue": 3
        },
        "owner": {
          "type": "Pointer",
          "targetClass": "_User",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "_User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AI 에이전트로 구축

이 템플릿에서 실제 Todo 앱을 구축하려면 Back4app AI 에이전트를 사용하면 수동 설정 없이도 프론트엔드, 백엔드(이 스키마, 인증 및 API)를 만들고 배포할 수 있습니다. 아래 프롬프트는 에이전트가 한 번에 프로덕션 지원 앱을 생성할 수 있도록 이 Todo 스택에 대해 설명합니다.

Back4app AI 에이전트
구축 준비 완료
Create a Todo app on Back4app with this exact schema and behavior.

Schema:
1. _User (use Back4app built-in): username (String, required), email (String, required), password (String, required); objectId, createdAt, updatedAt (system).
2. Todo: title (String, required), done (Boolean, default: false), dueDate (Date, optional), priority (Number, default: 3; 1=high, 2=medium, 3=low), owner (Pointer to _User; set to current user on create); objectId, createdAt, updatedAt (system).

Security:
- Set ACLs on every Todo so only the owner has read and write. No public read/write.
- On create, set Todo.owner to the current user (e.g. via Cloud Code beforeSave or client-side).
- Use Class-Level Permissions so only authenticated users can create/read/update/delete Todo.

Auth:
- Sign-up (username, email, password) and login; support logout/session.
- After login, the app should only show and allow CRUD for the current user's todos.

Behavior:
- Full CRUD for Todo: create, list (only owner's), get one, update (toggle done, edit title, dueDate, priority), delete.
- List todos with sort (e.g. by priority then dueDate or createdAt). Default priority for new todos: 3 (low).

Deliver:
- Create the Back4app app with the schema above, ACLs, and any Cloud Code needed (e.g. beforeSave on Todo to set owner).
- Generate the frontend and connect it to this backend; deploy so the app is runnable end-to-end.

아래 버튼을 누르면 이 템플릿의 프롬프트가 미리 채워진 상태에서 상담원이 열립니다.

몇 분 안에 배포무료 프롬프트 50개/월신용 카드 필요 없음

API 플레이그라운드

Todo 스키마에 대한 REST 및 GraphQL 엔드포인트를 사용해 보세요. 위 예제 데이터의 응답 - Back4app 계정이 필요하지 않습니다.

놀이터 로드 중...

이 템플릿과 동일한 Todo 스키마를 사용합니다.

단계별 React Native 통합

네이티브 SDK를 사용하여 React Native 앱에서 Parse React 백엔드에 연결합니다.

  1. 1단계: Parse React 네이티브 SDK 설치하기

    npm 또는 yarn을 사용하여 프로젝트에 Parse React 네이티브 SDK(또는 React-native-Parse)를 추가합니다.

    JavaScript
    npm install parse --save
    # or: yarn add parse
  2. 2단계: 앱에서 Parse 초기화하기

    애플리케이션 ID, 서버 URL, JavaScript 키를 사용하여 앱 항목(예: App.js 또는 index.js)에서 Parse SDK를 초기화합니다.

    JavaScript
    import Parse from 'parse/react-native';
    
    Parse.setAsyncStorage(AsyncStorage);
    Parse.initialize('YOUR_APP_ID', 'YOUR_JS_KEY');
    Parse.serverURL = 'https://parseapi.back4app.com';
    
  3. 3단계: 모든 항목 쿼리하기

    Todo 클래스에 대한 Parse 쿼리를 만들고, 우선순위에 따라 오름차순을 추가한 다음 find()(또는 findWithCount())를 호출합니다.

    JavaScript
    async function getTodos() {
      const query = new Parse.Query('Todo').ascending('priority');
      const results = await query.find();
      return results;
    }
  4. 4단계: 할 일 만들기

    새 Parse.Object('Todo')를 만들고 제목, 완료 및 우선순위를 설정한 다음 save()를 호출합니다.

    JavaScript
    async function createTodo(title, priority = 3) {
      const Todo = Parse.Object.extend('Todo');
      const todo = new Todo();
      todo.set('title', title);
      todo.set('done', false);
      todo.set('priority', priority);
      await todo.save();
      return todo;
    }
  5. 5단계: 할 일 업데이트 및 삭제

    objectId로 할 일을 가져오고, 필드를 설정한 다음 save()를 호출하여 업데이트하거나 destroy()를 호출하여 삭제합니다.

    JavaScript
    async function markDone(objectId) {
      const query = new Parse.Query('Todo');
      const todo = await query.get(objectId);
      todo.set('done', true);
      await todo.save();
    }
    
    async function deleteTodo(objectId) {
      const query = new Parse.Query('Todo');
      const todo = await query.get(objectId);
      await todo.destroy();
    }

상태 관리

React 훅(사용State, 사용감속기, 사용컨텍스트) 또는 작은 스토어를 사용하여 Todo 목록 상태를 유지하고 Parse SDK를 호출합니다.

전체 JavaScript/TypeScript 데이터 모델

브랜드0__ SDK를 사용하여 유형 안전 직렬화를 위한 전체 Todo 유형 및 헬퍼를 복사하세요.

JavaScript
/** @typedef {{ objectId?: string, title: string, done: boolean, dueDate?: string, priority: number, owner?: { objectId: string }, createdAt?: string, updatedAt?: string }} Todo */

/**
 * @param {Parse.Object} obj
 * @returns {Todo}
 */
function todoFromParse(obj) {
  return {
    objectId: obj.id,
    title: obj.get('title'),
    done: obj.get('done') ?? false,
    dueDate: obj.get('dueDate')?.toISOString?.() ?? undefined,
    priority: obj.get('priority') ?? 3,
    owner: obj.get('owner') ? { objectId: obj.get('owner').id } : undefined,
    createdAt: obj.get('createdAt')?.toISOString?.() ?? undefined,
    updatedAt: obj.get('updatedAt')?.toISOString?.() ?? undefined,
  };
}

오프라인 우선 및 로컬 데이터스토어

오프라인에서 데이터를 사용할 수 있고 다시 온라인 상태가 되면 동기화되도록 핀올() 및 핀 해제 기능을 사용합니다.

브랜드0__ __브랜드1__ 네이티브 SDK는 로컬 데이터스토어를 지원합니다. Todo 개체를 가져온 후 목록을 오프라인에서 사용할 수 있도록 고정하고 기기가 오프라인일 때 fromLocalDatastore()로 동일한 쿼리를 실행합니다. 앱이 다시 온라인 상태가 되면 변경 사항을 저장하고 동기화합니다.

아래 가져오기 후 결과를 고정하고 로컬 복사본이 더 이상 필요하지 않으면 고정 해제합니다.

JavaScript
// Pin todos after fetch (offline-first)
async function fetchAndPinTodos() {
  const query = new Parse.Query('Todo').ascending('priority');
  const results = await query.find();
  await Parse.Object.pinAll(results);
  // When offline, read from local datastore:
  // const localQuery = new Parse.Query('Todo').fromLocalDatastore();
  // const localResults = await localQuery.find();
}

async function unpinAllTodos() {
  await Parse.Object.unpinAll('Todo');
}

자주 묻는 질문

Todo 앱 백엔드 템플릿에 대한 일반적인 질문입니다.

전 세계 개발자들이 신뢰하는 기업

앱의 미래를 만드는 커뮤니티에 참여하세요

G2 Users Love Us Badge

Todo 앱을 구축할 준비가 되셨나요?

몇 분 안에 React Native 프로젝트를 시작하세요. 신용 카드가 필요하지 않습니다.

AI 에이전트로 구축