React 템플릿

할 일 앱 백엔드 템플릿
React — 스키마, API 및 AI 가이드

생산 준비가 완료된 React 할 일 백엔드 스키마와 스타터 키트가 Back4app에 있습니다: ER 다이어그램, 데이터 사전, JSON 스키마, API 플레이그라운드, 코드 예제, 그리고 몇 분 안에 배포할 수 있는 원클릭 AI 에이전트 프롬프트.

주요 요점

이 페이지에서는 프로덕션 준비가 완료된 스키마, 원클릭 AI 프롬프트, 단계별 React 코드가 제공됩니다. 따라서 백엔드를 구축하지 않고도 Todo 앱을 배포할 수 있습니다.

  1. 몇 분 안에 배포하기AI 에이전트 프롬프트를 붙여넣고 프론트엔드, 백엔드 및 데이터베이스가 포함된 실행 중인 앱을 얻으세요.
  2. 기본적으로 보안행 수준 ACL은 각 사용자가 자신의 Todo만 볼 수 있도록 보장합니다.
  3. React-네이티브 SDK타입이 지정된 객체, async/await, 오프라인 핀 고정 및 Live Queries를 기본으로 제공합니다.
  4. REST + GraphQL두 API는 자동 생성되며, 사용자 정의 엔드포인트를 작성할 필요가 없습니다.
  5. 두 개의 클래스_User (내장 인증) 및 Todo (제목, 완료, 기한, 우선 순위, 소유자가 있는 작업).

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

Back4app는 Todo 앱에 적합한 백엔드 서비스(BaaS)로, 관리되는 백엔드, 인증, 실시간 기능 및 13개 이상의 기술을 위한 SDK를 제공합니다. React Todo 앱 백엔드 템플릿Back4app에 호스팅된 미리 구축된 생산 준비 완료 백엔드 스키마입니다. 이 템플릿은 두 개의 데이터베이스 클래스(_UserTodo), 소유 기반 ACL, REST 및 GraphQL API, 그리고 원클릭 AI 에이전트 프롬프트를 제공하여 React 프론트엔드를 연결하고 며칠이 아닌 몇 분 안에 작동하는 Todo 앱을 배포할 수 있습니다.

최고의 용도:

앱 개발자신속한 프로토타이핑해커톤백엔드 개발 학습MVP 출시BaaS 대신 맞춤형 백엔드를 선택하는 팀

개요

Todo 앱은 백엔드 개발 학습을 위한 가장 일반적인 시작점 중 하나입니다. 내부적으로 사용자 등록, 작업 CRUD, 소유 기반 접근 제어 및 선택적으로 실시간 동기화가 필요합니다.

아래 스키마는 _User (내장) 및 Todo라는 두 클래스를 정의하며, 이들은 포인터로 연결되어 있습니다. Back4app React SDK를 사용하면 앱에서 이 백엔드와 상호작용할 수 있습니다 — 객체를 쿼리하고, 생성하고, 업데이트하고, 삭제하는 작업을 사용자 정의 API 레이어를 작성하지 않고도 수행할 수 있습니다.

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

Back4app은 준비된 백엔드와 타입이 지정된 SDK를 제공하므로 REST 연결 코드를 작성하거나 인증을 직접 관리하지 않고도 할 일 앱을 구축할 수 있습니다.

  • SDK 및 타입 안전성: SDK는 Todo와 User를 타입 안전하게 유지하고 JSON을 처리하므로 보일러플레이트 코드를 덜 작성할 수 있습니다.
  • 비동기 및 선택적 오프라인: async/await를 사용하세요; 지원되는 SDK는 로컬 핀닝을 제공하므로 목록이 오프라인에서도 작동하고 온라인으로 돌아올 때 동기화됩니다.
  • Live Queries: Todo 변경 사항을 구독하여 UI가 WebSockets를 통해 실시간으로 업데이트됩니다.

모든 스택에 대해 동일한 스키마와 API — 백엔드를 변경하지 않고 클라이언트를 나중에 전환할 수 있습니다.

핵심 이점

더 빠르게 배포할 수 있는 프로덕션 준비 완료 Todo 백엔드로 앱에 집중할 수 있습니다.

더 빠르게 배포, 백엔드 코드 없음

REST & GraphQL API와 즉시 사용할 수 있는 스키마 — 앱을 연결하고 시작하세요.

기본적으로 보안

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

실시간 업데이트

WebSockets를 통한 Live Queries로 즉각적인 UI 업데이트를 제공합니다.

내장 인증

사용자 가입, 로그인 및 세션 처리를 기본 제공 — 맞춤 인증 계층이 필요 없습니다.

오프라인에서도 작동합니다.

로컬 핀닝은 데이터를 오프라인에서 사용할 수 있도록 유지하고, 재연결 시 동기화합니다.

몇 분 안에 배포

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

시도해 볼 준비가 되셨나요?

Back4app AI 에이전트가 Todo 앱 백엔드를 생성하고, React 프론트엔드를 연결하며, 배포합니다 — 모두 단일 프롬프트에서.

무료 시작 — 월 50개의 AI 에이전트 프롬프트, 신용 카드 필요 없음

기술 스택

이 Todo 앱 템플릿을 지원하는 모든 것.

프론트엔드
React
백엔드
Back4app
데이터베이스
MongoDB
인증
인증 및 접근 제어
API
REST 및 GraphQL
배포
AI 에이전트 / 대시보드

ER 다이어그램

React 할 일 앱 데이터 모델에 대한 개체-관계 다이어그램입니다.

다이어그램 소스 보기
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"

통합 흐름

Auth-to-CRUD 시퀀스: 당신의 React 앱이 Back4app와 통신하는 방법 — 로그인 후, 할 일을 조회하고 생성합니다.

다이어그램 소스 보기
Mermaid
sequenceDiagram
  participant User
  participant App as React 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: List 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자동

8 필드가 Todo에 있습니다.

보안 및 권한

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

행 수준 ACL

각 Todo는 소유자와 연결된 ACL을 가집니다. 오직 생성자만 자신의 작업을 읽고, 업데이트하고, 삭제할 수 있습니다.

클래스 수준 권한

CLP는 어떤 역할이나 사용자가 클래스 수준에서 객체를 생성, 읽기, 업데이트 또는 삭제할 수 있는지를 제한합니다 — 당신의 첫 번째 방어선입니다.

포인터 기반 소유권

소유자 포인터는 각 Todo를 해당 _User에 연결합니다. Cloud Code 트리거는 소유권을 자동으로 설정하고 저장 시 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 에이전트로 빌드하기

Back4app AI 에이전트를 사용하여 이 템플릿에서 실제 Todo 앱을 빌드하세요: 프론트엔드, 백엔드(이 스키마, 인증 및 API)를 생성하고 배포합니다 — 수동 설정이 필요 없습니다. 아래 프롬프트는 에이전트가 한 번에 프로덕션 준비가 완료된 앱을 생성할 수 있도록 이 Todo 스택을 설명합니다.

Back4app AI 에이전트
빌드할 준비가 되었습니다
이 정확한 스키마와 동작으로 Back4app에서 Todo 앱을 만드세요.

스키마:
1. _User ( Back4app 내장 사용): username (String, 필수), email (String, 필수), password (String, 필수); objectId, createdAt, updatedAt (시스템).
2. Todo: title (String, 필수), done (Boolean, 기본값: false), dueDate (Date, 선택적), priority (Number, 기본값: 3; 1=높음, 2=중간, 3=낮음), owner (현재 사용자로 설정된 _User에 대한 포인터); objectId, createdAt, updatedAt (시스템).

보안:
- 모든 Todo에 ACL을 설정하여 소유자만 읽고 쓸 수 있도록 합니다. 공개 읽기/쓰기는 없습니다.
- 생성 시 Todo.owner를 현재 사용자로 설정합니다 (예: Cloud Code beforeSave 또는 클라이언트 측을 통해).
- 클래스 수준 권한을 사용하여 인증된 사용자만 Todo를 생성/읽기/업데이트/삭제할 수 있도록 합니다.

인증:
- 회원가입 (username, email, password) 및 로그인; 로그아웃/세션 지원.
- 로그인 후, 앱은 현재 사용자의 Todo에 대한 CRUD만 표시하고 허용해야 합니다.

동작:
- Todo에 대한 전체 CRUD: 생성, 목록 (소유자만), 하나 가져오기, 업데이트 (done 전환, 제목, dueDate, priority 편집), 삭제.
- 우선순위 또는 createdAt에 따라 정렬하여 todos 목록을 표시합니다. 새 Todo의 기본 우선순위: 3 (낮음).

전달:
- 위의 스키마, ACL 및 필요한 Cloud Code (예: 소유자를 설정하기 위한 Todo의 beforeSave)를 사용하여 Back4app 앱을 만드세요.
- 프론트엔드를 생성하고 이를 백엔드에 연결하세요; 앱이 엔드 투 엔드로 실행 가능하도록 배포하세요.

아래 버튼을 눌러 이 템플릿의 프롬프트가 미리 채워진 상태로 에이전트를 엽니다.

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

API 플레이그라운드

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

플레이그라운드 로딩 중…

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

단계별 React 통합

React 앱에서 Back4app 백엔드에 연결하고 Back4app React SDK를 사용하세요.

  1. 1단계: Back4app React SDK 설치

    Install the Parse JavaScript SDK in your React project.

    Bash
    npm install parse
  2. 2단계: 앱에서 Back4app 초기화

    Initialize Parse with your App ID and server URL (e.g. in index.js or App.js).

    JavaScript
    import Parse from 'parse';
    
    Parse.initialize(
      'YOUR_APP_ID',
      'YOUR_JAVASCRIPT_KEY',
      { serverURL: 'https://parseapi.back4app.com' }
    );
    Parse.serverURL = 'https://parseapi.back4app.com';
  3. 3단계: 모든 할 일 쿼리

    SDK를 사용하여 우선순위별로 정렬된 모든 Todo 객체를 가져옵니다.

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

    제목, 완료 여부 및 우선순위를 가진 새로운 Todo를 생성한 후 저장하세요.

    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단계: 할 일 업데이트 및 삭제

    필드를 업데이트하고 저장하거나 객체를 삭제합니다.

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

상태 관리 통합

Back4app SDK를 앱의 상태 레이어(예: context, store 또는 services)와 통합하세요.

전체 데이터 모델

타입 안전 직렬화를 위한 전체 Todo 모델을 복사하세요(예: 클래스, 인터페이스 또는 타입 정의).

JavaScript
// TypeScript interface for Todo (matches Back4app schema)
interface Todo {
  objectId?: string;
  title: string;
  done: boolean;
  dueDate?: string;  // ISO date
  priority: number;
  owner?: { __type: string; className: string; objectId: string };
  createdAt?: string;
  updatedAt?: string;
}

// Helper: Parse.Object -> Todo
function toTodo(obj: Parse.Object): Todo {
  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'),
    createdAt: obj.get('createdAt')?.toISOString?.() ?? undefined,
    updatedAt: obj.get('updatedAt')?.toISOString?.() ?? undefined,
  };
}

오프라인 우선 및 로컬 데이터 저장소

pin() 및 unpin()을 사용하여 데이터가 오프라인에서도 사용 가능하고 온라인으로 돌아올 때 동기화되도록 합니다.

지원되는 SDK에는 로컬 데이터 저장소가 포함됩니다. Todo 객체(또는 전체 클래스)를 핀하여 장치에 유지하고, 오프라인일 때 핀된 데이터를 쿼리합니다. 앱이 온라인으로 돌아오면 서버와 동기화합니다.

아래: 가져온 후 결과를 핀하고, 더 이상 로컬 복사본이 필요하지 않을 때 unpin합니다.

JavaScript
// 1. Enable local datastore (e.g. before Parse.initialize)
Parse.enableLocalDatastore();

// 2. After fetching todos, pin them for offline access
async function fetchAndPinTodos() {
  const query = new Parse.Query('Todo');
  query.ascending('priority');
  const results = await query.find();
  await Parse.Object.pinAll(results);
  return results;
}

// 3. When offline (or for instant load), query from local datastore
async function getTodosFromLocal() {
  const query = new Parse.Query('Todo');
  query.ascending('priority');
  query.fromLocalDatastore();
  return await query.find();
}

// 4. Unpin when no longer needed
async function unpinAllTodos() {
  await Parse.Object.unpinAll('Todo');
}

자주 묻는 질문

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

Back4app는 무엇인가요?
React Todo 앱에 Back4app를 사용하는 이유는 무엇인가요?
React로 빌드할 때 Todo 클래스는 무엇인가요?
내 React Todo 앱에서 소유권을 어떻게 강제할 수 있나요?
내 React 앱의 Todo 스키마를 확장할 수 있나요?
React에서 우선순위로 todos를 쿼리하려면 어떻게 하나요?
React에 실시간 동기화가 가능하나요?
React에서 카테고리나 태그를 어떻게 추가하나요?

전 세계 개발자들이 신뢰합니다

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

G2 Users Love Us Badge

할 일 앱을 만들 준비가 되셨나요?

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

AI 에이전트와 함께 구축하기