프랜차이즈 허브
AI 에이전트로 구축
프랜차이즈 운영 허브

프랜차이즈 운영 허브 템플릿
로열티 보고 및 브랜드 감사 감독

프랜차이즈 운영 백엔드가 준비 완료되었습니다: 사용자 역할, 브랜드 기록, 프랜차이즈 작업공간, 로열티 보고서 항목, 브랜드 감사 로그 메모, 온보딩 작업 체크리스트가 있습니다. ER 다이어그램, 데이터 사전, JSON 스키마, API 플레이그라운드, 그리고 빠른 시작을 위한 AI 에이전트 프롬프트가 포함되어 있습니다.

주요 내용

이 템플릿은 사용자 역할, 브랜드 레코드, 프랜차이즈 사용자 워크스페이스, RoyaltyReport 항목, BrandAuditLog 메모, 그리고 OnboardingTask 항목을 정리하여 브랜드 관리자, 감사인 및 프랜차이즈 사용자들이 동일한 진실의 출처에서 작업할 수 있도록 합니다.

  1. 로열티 보고 구조월간 마감을 위한 월별 reportMonth, grossSales, royaltyDue, franchisee, submittedBy 및 status로 모델링된 RoyaltyReport 행.
  2. 브랜드 감사 로그사인, 메뉴, 청결 및 보고 점검이 가시성을 유지할 수 있도록 auditType, finding 및 severity로 BrandAuditLog 항목을 추적합니다.
  3. 프랜차이즈 사용자 온보딩 흐름OnboardingTask를 사용하여 프랜차이즈 사용자, taskName, status, dueDate, assignedTo 및 evidenceUrl로 위치를 출시에 따라 이동합니다.
  4. 허가된 작업 공간프랜차이즈 사용자 셀프 서비스 뷰에서 관리자인 administrator, 브랜드 관리자 brandManager, 감사관 auditor 및 프랜차이즈 사용자 franchiseeUser의 접근을 분리합니다.
  5. 단일 API 계약같은 사용자, 브랜드, 프랜차이즈, 로열티 리포트, 브랜드 감사 로그 및 온보딩 작업 스키마로 지원되는 REST 및 GraphQL 엔드포인트를 통해 모바일 및 웹 클라이언트를 제공합니다.

프랜차이즈 운영 허브 백엔드 개요

프랜차이즈 운영 팀이 성장하면 공유받는 수신함은 확장되지 않으며, 모든 사람이 신뢰하는 할당, 권한 및 일정이 필요합니다. 이 템플릿은 Back4app에서 역할 기반 접근으로 핵심 엔티티를 모델링하여 모든 프랜차이즈 운영 팀원이 자신이 소유하는 파이프라인 단계를 볼 수 있게 합니다.

최고의 용도:

프랜차이즈 운영 포털로열티 보고 도구브랜드 감사 관리 시스템프랜차이즈 운영자 온보딩 워크플로우내부 파트너 작업 공간BaaS의 규제된 워크플로우를 선택하는 팀들

프랜차이즈 운영: 백엔드 스냅샷

모바일 팀과 백오피스 직원은 프랜차이즈 운영에서 서로 다른 현실 조각을 봅니다. 제품 작업의 목표는 이러한 조각들을 비난 게임 없이 연결하는 것입니다.

허브는 브랜드 및 영토 기록, 프랜차이즈 운영자 프로필과 역할, 로열티 보고서를 강조하여 클라이언트 스택을 동일한 엔터티, 필드 및 관계에 대해 비교할 수 있게 합니다.

프랜차이즈 허브 기능

이 허브의 모든 기술 카드는 사용자, 브랜드, 가맹점, 로열티 리포트, 브랜드 감사 로그 및 온보딩 작업과 같은 동일한 가맹점 운영 스키마를 사용합니다.

브랜드 및 지역 기록

브랜드는 brandName, territory, brandOwner 및 brandGuideUrl을 저장합니다.

프랜차이즈 가맹점 프로필 및 역할

프랜차이즈 가맹점은 franchiseeName, locationCode, brand, primaryContact 및 status를 유지합니다.

로열티 보고서

RoyaltyReport는 프랜차이즈 가맹점을 보고서 월, 총 판매액, 로열티 금액, 제출자 및 상태에 연결합니다.

브랜드 감사 로그

BrandAuditLog는 브랜드, 프랜차이즈 가맹점, 감사 유형, 발견 사항 및 심각도를 캡처합니다.

프랜차이즈 가맹점 온보딩

OnboardingTask는 프랜차이즈 가맹점, 작업명, 상태, 기한, 담당자 및 증거 URL을 저장합니다.

왜 Back4app으로 프랜차이즈 운영 허브 백엔드를 구축해야 할까요?

Back4app은 귀하의 팀에게 프랜차이즈 특정 구축 Blocks를 제공하여 저장소 및 인증 통합 대신 로열티 보고, 브랜드 거버넌스 및 온보딩 리뷰에 집중할 수 있게 합니다.

  • RoyaltyReport와 Franchisee를 하나의 모델로: reportMonth, grossSales, royaltyDue, franchisee 및 submittedBy를 함께 보관하여 월간 로열티 마감을 쿼리할 수 있도록 유지합니다.
  • 검토 이력이 포함된 BrandAuditLog 기록: BrandAuditLog에서 auditType, finding, severity, brand 및 franchisee를 저장하여 브랜드 팀이 각 검사를 초안에서 승인까지 추적할 수 있도록 합니다.
  • 온보딩 작업 워크플로우 지원: 온보딩 작업을 franchisee, taskName, status, dueDate, assignedTo 및 evidenceUrl와 함께 사용하여 문서 검토, 교육 및 론칭 승인을 통해 프랜차이즈를 진행시킵니다.

웹 및 모바일 전반에 걸쳐 재무, 브랜드 및 운영 화면을 위한 단일 백엔드 계약을 사용합니다.

핵심 이점

보고 주기를 단축하고 검토 작업을 가시적으로 유지하는 가맹점 허브 백엔드입니다.

월간 로열티 마감이 더 쉽게 추적됩니다.

로열티 리포트 행은 보고 월, 총매출, 지급할 로열티, 가맹점 및 제출자를 연결하여 재무 부서가 이메일을 통하지 않고도 총액을 확인할 수 있도록 합니다.

브랜드 검토 이력은 각 위치에 연결되어 있습니다.

브랜드 감사 로그는 각 검토에 대한 감사 유형, 발견 사항, 심각도, 브랜드 및 가맹점을 저장하여 후속 작업을 더 쉽게 할당할 수 있게 합니다.

온보딩 작업은 순서대로 진행됩니다.

온보딩 작업은 운영팀에 계약, 교육, 증거 URL 업로드 및 개장 승인을 위한 단계적 경로를 제공합니다.

역할에 따라 접근 허용

내부 팀이 보고서를 편집할 수 있도록 ACL 및 CLP 규칙을 사용하되, 프랜차이즈 사용자들은 자신의 프랜차이즈, 로열티 보고서 또는 온보딩 작업 행만 볼 수 있습니다.

프랜차이즈 데이터는 구조화된 상태를 유지합니다.

분리된 스프레드시트에서 대시보드를 재구성하는 대신 브랜드, 프랜차이즈, 브랜드 감사 로그 및 로열티 보고서를 함께 쿼리합니다.

포털을 위한 AI 지원 스타트업

로열티 보고 및 온보딩을 위한 스키마, 권한 및 샘플 흐름을 하나의 안내된 프롬프트로 생성합니다.

프랜차이즈 운영 허브를 시작할 준비가 되셨나요?

Back4app AI 에이전트가 프랜차이즈 운영 백엔드를 스캐폴딩하고 하나의 프롬프트에서 로열티 보고, 브랜드 감사 로그 및 온보딩 워크플로를 생성하도록 하세요.

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

스택 필수 항목

이 프랜차이즈 운영 백엔드 템플릿에 포함된 모든 것.

프론트엔드
13개 이상의 기술
백엔드
Back4app
데이터베이스
MongoDB
인증
내장된 인증 + 세션
API
REST 및 GraphQL
실시간
Live Queries

엔티티 맵

프랜차이즈 운영 백엔드 스키마의 엔티티 관계 모델입니다.

다이어그램 소스 보기
Mermaid
erDiagram
    User ||--o{ Brand : "brandOwner"
    User ||--o{ Franchisee : "primaryContact"
    User ||--o{ RoyaltyReport : "submittedBy"
    User ||--o{ BrandAuditLog : "auditedBy"
    User ||--o{ OnboardingTask : "assignedTo"
    Brand ||--o{ Franchisee : "brand"
    Brand ||--o{ BrandAuditLog : "brand"
    Franchisee ||--o{ RoyaltyReport : "franchisee"
    Franchisee ||--o{ BrandAuditLog : "franchisee"
    Franchisee ||--o{ OnboardingTask : "franchisee"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    Brand {
        String objectId PK
        String brandName
        String territory
        String brandOwnerId FK
        String brandGuideUrl
        Date createdAt
        Date updatedAt
    }

    Franchisee {
        String objectId PK
        String franchiseeName
        String locationCode
        String brandId FK
        String primaryContactId FK
        String status
        Date createdAt
        Date updatedAt
    }

    RoyaltyReport {
        String objectId PK
        String reportMonth
        Number grossSales
        Number royaltyDue
        String franchiseeId FK
        String submittedById FK
        String status
        Date createdAt
        Date updatedAt
    }

    BrandAuditLog {
        String objectId PK
        String brandId FK
        String franchiseeId FK
        String auditedById FK
        String auditType
        String finding
        String severity
        Date createdAt
        Date updatedAt
    }

    OnboardingTask {
        String objectId PK
        String franchiseeId FK
        String taskName
        String status
        Date dueDate
        String assignedToId FK
        String evidenceUrl
        Date createdAt
        Date updatedAt
    }

포털 흐름

로그인, 로열티 보고, 브랜드 감사 검토 및 온보딩 업데이트에 대한 전형적인 실행 흐름입니다.

다이어그램 소스 보기
Mermaid
sequenceDiagram
  participant User
  participant App as Franchise Management Portal App
  participant Back4app as Back4app Cloud

  User->>App: Sign in to the portal
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  User->>App: Open royalty dashboard
  App->>Back4app: GET /classes/RoyaltyReport?include=franchisee,submittedBy
  Back4app-->>App: Monthly royalty reports

  User->>App: Review brand audit activity
  App->>Back4app: GET /classes/BrandAuditLog?include=brand,franchisee,auditedBy
  Back4app-->>App: Audit findings and severity tags

  User->>App: Submit onboarding task evidence
  App->>Back4app: POST /classes/OnboardingTask
  Back4app-->>App: OnboardingTask objectId

  App->>Back4app: Subscribe to RoyaltyReport updates
  Back4app-->>App: Live query notifications

필드 가이드

프랜차이즈 운영 스키마에 대한 필드 수준 참고 자료.

필드유형설명필수
objectIdStringAuto-generated unique identifier자동
usernameStringUser login name
emailStringUser email address
passwordStringHashed password (write-only)
roleStringAccess role such as admin, brandManager, auditor, or franchiseeUser
createdAtDateAuto-generated creation timestamp자동
updatedAtDateAuto-generated last-update timestamp자동

7 필드에서 User

접근 규칙

ACL 및 CLP 규칙이 로열티, 감사 및 온보딩 데이터를 어떻게 보호하는지.

내부 팀을 위한 역할 기반 접근

재무, 브랜드 관리자, 감사인 및 운영 사용자는 RoyaltyReport 또는 BrandAuditLog와 같은 관리하는 클래스에 맞춰 접근을 받습니다.

프랜차이즈 전용 가시성 필요 시

프랜차이즈 사용자 는 공유 검토 규칙이 적용되지 않는 한 자신의 프랜차이즈 프로필, RoyaltyReport 항목 및 온보딩 상태만 볼 수 있어야 합니다.

감사 및 승인 무결성

저장하기 전에 BrandAuditLog 발견 사항, OnboardingTask 상태 변경 및 로열티 제출에 대해 Cloud Code 유효성 검사를 사용하세요.

JSON 스키마

Back4app에 복사할 준비가 된 원시 JSON 스키마 정의 또는 구현 참조로 사용하세요.

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Brand",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "brandName": {
          "type": "String",
          "required": true
        },
        "territory": {
          "type": "String",
          "required": true
        },
        "brandOwner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "brandGuideUrl": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Franchisee",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "franchiseeName": {
          "type": "String",
          "required": true
        },
        "locationCode": {
          "type": "String",
          "required": true
        },
        "brand": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Brand"
        },
        "primaryContact": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "RoyaltyReport",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "reportMonth": {
          "type": "String",
          "required": true
        },
        "grossSales": {
          "type": "Number",
          "required": true
        },
        "royaltyDue": {
          "type": "Number",
          "required": true
        },
        "franchisee": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Franchisee"
        },
        "submittedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "status": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "BrandAuditLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "brand": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Brand"
        },
        "franchisee": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Franchisee"
        },
        "auditedBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "auditType": {
          "type": "String",
          "required": true
        },
        "finding": {
          "type": "String",
          "required": true
        },
        "severity": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "OnboardingTask",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "franchisee": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Franchisee"
        },
        "taskName": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "dueDate": {
          "type": "Date",
          "required": false
        },
        "assignedTo": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "evidenceUrl": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AI 에이전트로 빌드하기

이 템플릿에서 프랜차이즈 운영 허브를 생성하기 위해 Back4app AI 에이전트를 사용하여 프론트엔드, 백엔드, 인증, 로열티, 감사 및 온보딩 흐름을 포함합니다.

Back4app AI 에이전트
구축할 준비 완료
Back4app에서 이 정확한 스키마와 동작으로 안전한 프랜차이즈 운영 허브 백엔드를 생성하십시오.

스키마:
1. 사용자 ( Back4app 내장 사용): 사용자 이름, 이메일, 비밀번호, 역할; objectId, createdAt, updatedAt (시스템).
2. 브랜드: brandName (문자열, 필수), territory (문자열, 필수), brandOwner (사용자에 대한 포인터, 필수), brandGuideUrl (문자열, 선택 사항); objectId, createdAt, updatedAt (시스템).
3. 프랜차이즈: franchiseeName (문자열, 필수), locationCode (문자열, 필수), brand (브랜드에 대한 포인터, 필수), primaryContact (사용자에 대한 포인터, 필수), status (문자열, 필수); objectId, createdAt, updatedAt (시스템).
4. 로열티 보고서: reportMonth (문자열 YYYY-MM, 필수), grossSales (숫자, 필수), royaltyDue (숫자, 필수), franchisee (프랜차이즈에 대한 포인터, 필수), submittedBy (사용자에 대한 포인터, 필수), status (문자열, 필수); objectId, createdAt, updatedAt (시스템).
5. 브랜드 감사 로그: brand (브랜드에 대한 포인터, 필수), franchisee (프랜차이즈에 대한 포인터, 필수), auditedBy (사용자에 대한 포인터, 필수), auditType (문자열, 필수), finding (문자열, 필수), severity (문자열, 필수); objectId, createdAt, updatedAt (시스템).
6. 온보딩 작업: franchisee (프랜차이즈에 대한 포인터, 필수), taskName (문자열, 필수), status (문자열, 필수), dueDate (날짜, 선택 사항), assignedTo (사용자에 대한 포인터, 필수), evidenceUrl (문자열, 선택 사항); objectId, createdAt, updatedAt (시스템).

보안:
- 브랜드 관리자는 자신의 영토에 대한 브랜드 및 프랜차이즈 레코드를 관리할 수 있습니다.
- 프랜차이즈 사용자들은 로열티 보고서 항목을 제출하고 허용된 경우 자신의 온보딩 작업 evidenceUrl/status를 업데이트할 수 있습니다.
- 감사자는 브랜드 감사 로그 항목을 기록할 수 있지만 로열티 수치를 수정해서는 안 됩니다.
- ACL 및 CLP를 적용하여 한 프랜차이즈 사용자가 명시적으로 부여되지 않는 한 다른 프랜차이즈 사용자의 온보딩 작업 또는 로열티 보고서 데이터는 볼 수 없습니다.

인증:
- 가입, 로그인, 로그아웃.

동작:
- 로열티 보고서 목록, 월별 로열티 보고서 제출, 브랜드 감사 로그 기록, 프랜차이즈 온보딩 작업 추적.

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

이것은 기술 접미사 없이 기본 프롬프트입니다. 생성된 프론트엔드 스택은 나중에 조정할 수 있습니다.

몇 분 내에 배포월 50개의 무료 프롬프트신용 카드 불필요

API 샌드박스

프랜차이즈 운영 스키마에 대해 REST 및 GraphQL 엔드포인트를 시도해 보세요. 응답은 모의 데이터를 사용하며 Back4app 계정이 필요하지 않습니다.

플레이그라운드 로딩 중…

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

스택 선택

각 카드를 확장하여 선택한 스택과 Brand, Franchisee 및 RoyaltyReport를 통합하는 방법을 확인하세요.

Flutter 프랜차이즈 운영 허브

React 프랜차이즈 운영 허브

React 네이티브 프랜차이즈 운영 허브

Next.js 프랜차이즈 운영 허브

JavaScript 프랜차이즈 운영 허브

Android 프랜차이즈 운영 허브

iOS 프랜차이즈 운영 허브

Vue 프랜차이즈 운영 허브

Angular 프랜차이즈 운영 허브

GraphQL 프랜차이즈 운영 허브

REST API 프랜차이즈 운영 허브

PHP 프랜차이즈 운영 허브

.NET 프랜차이즈 운영 허브

모든 기술에서 얻는 것

모든 스택은 동일한 프랜차이즈 운영 백엔드 스키마 및 API 계약을 사용합니다.

통합된 프랜차이즈 데이터 구조

한 계약에서 사용자, 브랜드, 가맹점, 로열티 보고서, 브랜드 감사 기록, 온보딩 작업을 관리합니다.

재무 팀을 위한 로열티 보고

스프레드시트 드리프트 없이 보고서 월, 총 판매, 로열티 지급 및 상태를 추적합니다.

브랜드 감사 가시성

감사 유형, 발견 사항 및 심각도를 각 감사 기록에 붙여서 검토 및 후속 조치를 진행합니다.

새로운 가맹점을 위한 온보딩 워크플로우

가맹점을 상태, 담당자, 기한 및 증거 URL로 명확한 단계로 이동합니다.

REST/GraphQL 포털 클라이언트를 위한 API

유연한 API 접근으로 모바일 및 웹 프론트엔드를 통합합니다.

성장을 위한 확장 가능한 스키마

TrainingSession 또는 ComplianceNotice와 같은 새 클래스를 추가해도 핵심 워크플로가 깨지지 않습니다.

스택 비교

모든 지원되는 기술에 걸쳐 설정 속도, SDK 스타일 및 AI 지원을 비교합니다.

프레임워크설정 시간프랜차이즈 허브 혜택SDK 유형AI 지원
약 5분모바일 및 웹의 프랜차이즈 운영을 위한 단일 코드베이스입니다.타입된 SDK전체
5분 미만로열티 보고 및 감사를 위한 빠른 웹 대시보드입니다.타입된 SDK전체
약 3–7분프랜차이즈 리뷰를 위한 크로스 플랫폼 모바일 앱입니다.타입된 SDK전체
빠른 (5분) 설정운영 및 재정을 위한 서버 렌더링 포털입니다.타입된 SDK전체
약 3~5분프랜차이즈 보고를 위한 경량 웹 통합입니다.타입된 SDK전체
약 5분현장 감사용 네이티브 Android 앱입니다.타입된 SDK전체
5분 이내온보딩 및 승인용 네이티브 iOS 앱.타이핑된 SDK전체
약 3–7분프랜차이즈 대시보드를 위한 React 웹 UI.타이핑된 SDK전체
빠른(5분) 설정브랜드 거버넌스를 위한 기업 웹 앱.타이핑된 SDK전체
2분 이내프랜차이즈 운영을 위한 유연한 GraphQL API.GraphQL API전체
빠른 (2분) 설정보고 시스템을 위한 REST API 통합.REST API전체
~3분프랜차이즈 관리 도구를 위한 서버 측 PHP 백엔드.REST API전체
~3–7분기업 프랜차이즈 운영을 위한 .NET 백엔드입니다.타입 SDK전체

설정 시간은 이 템플릿 스키마를 사용하여 프로젝트 시작부터 첫 사용자, 로열티 보고서 또는 브랜드 감사 로그 쿼리까지의 예상 기간을 반영합니다.

자주 묻는 질문

이 템플릿을 사용하여 프랜차이즈 운영 허브를 구축하는 것에 대한 일반적인 질문.

프랜차이즈 운영 허브 템플릿을 지원하는 클래스는 무엇인가요?
프랜차이즈 팀은 로열티 보고서를 어떻게 제출하나요?
어떻게 특정 위치에 대한 브랜드 감사를 기록할 수 있나요?
실시간 업데이트가 이 포털에 어떻게 도움이 되나요?
모바일에서 오프라인으로 온보딩 작업을 유지할 수 있나요?
브랜드와 가맹점에 대한 포인터를 어떻게 모델링하나요?
한 가맹점이 다른 가맹점의 데이터를 보지 못하게 하려면 어떻게 해야 하나요?
온보딩 작업은 증거 파일과 어떻게 연결되나요?
프랜차이즈 온보딩 흐름은 엔드 투 엔드로 어떻게 작동하나요?
React 또는 Next.js에서 브랜드 감사를 어떻게 쿼리해야 하나요?

전 세계 개발자들로부터 신뢰받고 있습니다.

Back4app 템플릿으로 더 빠르게 프랜차이즈 운영 제품을 배송하는 팀에 참여하세요.

G2 Users Love Us Badge

프랜차이즈 운영 허브 구축할 준비 되셨나요?

몇 분 안에 프랜차이즈 운영 프로젝트를 시작하세요. 신용 카드 불필요합니다.

기술 선택하기