인생 코치 저널
AI Agent로 구축하기
라이프 코치 저널 백엔드

라이프 코치 저널 백엔드 템플릿
코치 사용자, 클라이언트, 목표 항목, 세션 노트, 진행 상황 스냅샷 및 감사 기록

라이프 코치 저널 백엔드가 Back4app에 준비되었습니다. 코치 사용자는 클라이언트를 추적하고, 세션 노트를 기록하며, 진행 상황 스냅샷을 측정하고, 저널 작업을 검토할 수 있습니다. 포함 사항: ER 다이어그램, 데이터 사전, JSON 스키마, API 플레이그라운드 및 빠른 설정을 위한 AI 에이전트 프롬프트.

저널 요약

이 템플릿은 CoachUser, Client, GoalEntry, SessionNote, ProgressSnapshot 및 AuditTrail이 포함된 라이프 코치 저널 백엔드를 제공하여 코치가 클라이언트 타임라인을 명확하고 귀속 가능하게 유지할 수 있도록 합니다.

  1. 클라이언트별 목표 추적각 GoalEntry를 클라이언트 포인터, 제목, 카테고리, 상태, 우선순위 및 targetDate로 저장하여 집중적인 코칭 계획을 수립합니다.
  2. 세션 노트 연대기각 SessionNote 레코드를 클라이언트, sessionDate, noteText, actionItems, mood 및 coach와 함께 캡처하여 각 노트가 회의에 연결되도록 합니다.
  3. 차트를 위한 진행 스냅샷ProgressSnapshot 항목을 클라이언트, 목표, capturedAt, progressScore, milestoneLabel 및 chartValues와 함께 사용하여 시각적 진행 보기 기능을 제공합니다.
  4. 감사 친화적인 기록GoalEntry, SessionNote, ProgressSnapshot, 및 클라이언트 변경에 대한 AuditTrail 행을 기록하여 모든 작업에 기록된 시간 스탬프가 있도록 합니다.
  5. 크로스 플랫폼 코칭 백엔드CoachUser, Client, GoalEntry, SessionNote, ProgressSnapshot, 및 AuditTrail에 대한 하나의 REST 및 GraphQL API를 통해 모바일 및 웹 클라이언트를 제공합니다.

라이프 코치 저널 백엔드 개요

라이프 코치 저널의 실제 비용은 컨텍스트 전환입니다: 도구에 걸쳐 메모가 분산되어 있기 때문에 매 회의마다 이야기를 재구성해야 합니다. 그 비용은 콜백과 크레딧에서 나타납니다. 이 템플릿은 Back4app에서 역할 기반 액세스를 통해 핵심 엔티티를 모델링하여 모든 라이프 코치 저널 팀원이 자신이 소유한 파이프라인의 일부분을 볼 수 있도록 합니다. 스키마는 CoachUser, Client, GoalEntry, SessionNote, ProgressSnapshot, 및 AuditTrail을 포함하며, 인증 및 타임라인 친화적인 쿼리가 내장되어 있습니다. 선호하는 프론트엔드를 연결하고 더 빠르게 이동하십시오.

최고의 용도:

라이프 코치 저널링 앱목표 설정 및 책임 도구세션 노트 시스템진행 상황 시각화 대시보드연대기 코칭 기록팀들이 BaaS 코칭 제품을 선택하는 이유

Life Coach Journal 템플릿에서 얻는 것

대부분의 라이프 코치 저널 실수는 지루합니다: 잘못된 타임스탬프, 중복된 행 또는 어제는 맞았지만 오늘은 틀린 개수입니다.

웹 또는 모바일을 배송하든, 사용자 및 클라이언트 관리, 목표 입력 설정 및 우선 순위 지정, 세션 노트 추적은 중추적으로 남아 있습니다 — 이 페이지는 이해관계자를 조정하는 가장 빠른 방법입니다.

저널 핵심 기능

이 허브의 모든 기술 카드에서는 CoachUser, Client, GoalEntry, SessionNote, ProgressSnapshot 및 AuditTrail과 동일한 코칭 저널 스키마를 사용합니다.

코치 사용자 및 클라이언트 관리

코치 사용자는 사용자 이름, 이메일, 표시 이름 및 역할을 저장하며, 클라이언트는 전체 이름, 이메일, 상태 및 코치를 저장합니다.

목표 항목 설정 및 우선 순위 지정

목표 항목은 클라이언트를 제목, 범주, 상태, 우선 순위, 목표 날짜 및 생성자로 연결합니다.

세션ノ트 추적

세션ノ트는 클라이언트, 세션 날짜, 노트 텍스트, 행동 항목, 기분, 코치를 캡처합니다.

감사 추적 기록

감사 추적은 행위자, 클라이언트, 엔티티 유형, 엔티티 ID, 작업 및 기록 시간을 저장합니다.

진행 스냅샷 시각화

진행 스냅샷은 클라이언트, 목표, 캡처 시간, 진행 점수, 이정표 레이블 및 차트 값으로 차트를 만듭니다.

연대기 코칭 타임라인

SessionNote, ProgressSnapshot 및 AuditTrail을 함께 사용하여 각 클라이언트의 이력을 재구성합니다.

왜 Back4app으로 당신의 라이프 코치 저널 백엔드를 구축해야 할까요?

Back4app은 팀이 인프라 대신 코칭 워크플로우에 집중할 수 있도록 CoachUser, Client, GoalEntry, SessionNote, ProgressSnapshot 및 AuditTrail 기본 요소를 제공합니다.

  • 클라이언트 및 GoalEntry 구조: 클라이언트는 fullName, email, status 및 coach를 유지하고, GoalEntry는 title, category, priority, targetDate 및 status를 쉽게 쿼리할 수 있는 형태로 유지합니다.
  • SessionNote 및 AuditTrail 연속성: 각 SessionNote 및 AuditTrail 행을 클라이언트 및 CoachUser에 연결하여 모든 관찰 및 변경 사항이 귀속될 수 있도록 합니다.
  • 실시간 진행 상황 스냅샷: 코치가 저장하는 즉시 ProgressSnapshot 및 AuditTrail에서 Live Queries을 사용하여 차트와 타임라인을 업데이트합니다.

모든 플랫폼에서 하나의 백엔드 계약으로 코칭 저널 기능을 신속하게 구축하고 반복합니다.

저널의 이점

코칭 기록을 읽기 쉽고, 속성을 지정할 수 있으며, 다시 방문하기 쉬운 생활 코치 저널 백엔드입니다.

빠른 목표 설정

나중에 필드를 발명하는 대신 클라이언트, 제목, 카테고리, 상태, 우선 순위, 목표 날짜 및 생성자를 포함한 완전한 GoalEntry 스키마에서 시작하십시오.

클리너 세션 리뷰

SessionNote를 ProgressSnapshot과 함께 사용하여 후속 통화 전에 정확한 코칭 컨텍스트를 다시 열 수 있습니다.

진행 시각화 준비 완료

progressScore, milestoneLabel, chartValues를 저장하여 차트 및 추세선에 직접 매핑되는 ProgressSnapshot 행을 저장하세요.

귀속성은 그대로 유지됩니다

노트를 추적 가능하도록 하기 위해 CoachUser, createdBy, coach, actor, entityType, entityId를 레코드 모델에 유지하세요.

연대기별 클라이언트 기록

클라이언트 및 날짜별로 Client, GoalEntry, SessionNote, ProgressSnapshot 및 AuditTrail을 쿼리하여 코칭 타임라인을 재구성합니다.

AI 지원 부트스트랩

구조화된 프롬프트로 빠르게 백엔드 스캐폴딩 및 통합 지침을 생성합니다.

당신의 라이프 코치 저널 앱을 시작할 준비가 되었나요?

Back4app AI 에이전트가 코칭 백엔드를 스캐폴딩하고 CoachUser, Client, GoalEntry, SessionNote, ProgressSnapshot, 그리고 AuditTrail 흐름을 한 번의 프롬프트로 생성하게 하세요.

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

저널 기술 스택

이 라이프 코치 저널 백엔드 템플릿에 모든 것이 포함되어 있습니다.

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

저널 ER 다이어그램

라이프 코치 저널 스키마를 위한 엔티티 관계 모델입니다.

다이어그램 소스 보기
Mermaid
erDiagram
    CoachUser ||--o{ Client : "coach"
    CoachUser ||--o{ GoalEntry : "createdBy"
    CoachUser ||--o{ SessionNote : "coach"
    CoachUser ||--o{ ProgressSnapshot : "createdBy"
    CoachUser ||--o{ AuditTrail : "actor"
    Client ||--o{ GoalEntry : "client"
    Client ||--o{ SessionNote : "client"
    Client ||--o{ ProgressSnapshot : "client"
    Client ||--o{ AuditTrail : "client"
    GoalEntry ||--o{ ProgressSnapshot : "goal"

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

    Client {
        String objectId PK
        String fullName
        String email
        String status
        String coachId FK
        Date createdAt
        Date updatedAt
    }

    GoalEntry {
        String objectId PK
        String clientId FK
        String title
        String category
        Date targetDate
        String status
        Number priority
        String createdById FK
        Date createdAt
        Date updatedAt
    }

    SessionNote {
        String objectId PK
        String clientId FK
        Date sessionDate
        String noteText
        Array actionItems
        String mood
        String coachId FK
        Date createdAt
        Date updatedAt
    }

    ProgressSnapshot {
        String objectId PK
        String clientId FK
        String goalId FK
        Date capturedAt
        Number progressScore
        String milestoneLabel
        Array chartValues
        String createdById FK
        Date createdAt
        Date updatedAt
    }

    AuditTrail {
        String objectId PK
        String actorId FK
        String clientId FK
        String entityType
        String entityId
        String action
        Date recordedAt
        Date createdAt
        Date updatedAt
    }

코치 앱 흐름

로그인, 클라이언트 목록, 목표 입력, 세션 노트 및 진행 상황 스냅샷의 일반적인 실행 흐름입니다.

다이어그램 소스 보기
Mermaid
sequenceDiagram
  participant Coach
  participant App as Life Coach Client Journal App
  participant Back4app as Back4app Cloud

  Coach->>App: Sign in
  App->>Back4app: POST /login
  Back4app-->>App: Session token

  Coach->>App: Open client roster
  App->>Back4app: GET /classes/Client?include=coach&order=fullName
  Back4app-->>App: Clients with coach pointers

  Coach->>App: Add a goal for a client
  App->>Back4app: POST /classes/GoalEntry
  Back4app-->>App: GoalEntry objectId

  Coach->>App: Save session notes and progress snapshot
  App->>Back4app: POST /classes/SessionNote
  App->>Back4app: POST /classes/ProgressSnapshot
  Back4app-->>App: SessionNote and ProgressSnapshot ids

  App->>Back4app: Subscribe to live updates for the selected client
  Back4app-->>App: ProgressSnapshot and AuditTrail changes

필드 가이드

라이프 코치 저널 스키마의 모든 클래스에 대한 전체 필드 수준 참조입니다.

필드유형설명필수
objectIdStringAuto-generated unique identifier자동
usernameStringCoach login name
emailStringCoach email address
passwordStringHashed password (write-only)
displayNameStringCoach display name shown in the journal app
roleStringRole of the user (e.g., coach, admin)
createdAtDateAuto-generated creation timestamp자동
updatedAtDateAuto-generated last-update timestamp자동

8 필드에서 CoachUser

코칭 기록에 대한 권한

ACL 및 CLP 전략이 클라이언트 프로필, 목표, 세션 및 개인 코칭 노트를 어떻게 보호하는지.

클라이언트 접근

지정된 CoachUser만 클라이언트를 변경할 수 있도록 클라이언트 읽기 및 업데이트를 제한합니다.

개인 메모 경계

세션 노트 가시성과 ACL을 정렬하여 개인 메모가 의도된 코칭 서클 내에 유지되도록 합니다.

귀속된 기록

감사 추적 행을 저장하기 전에 Cloud Code에서 actor, client, entityType, entityId, action 및 recordedAt을 검증합니다.

스키마 JSON

Back4app에 복사하거나 구현 참조로 사용할 준비가 된 원시 JSON 스키마 정의입니다.

JSON
{
  "classes": [
    {
      "className": "CoachUser",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "displayName": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "Client",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "fullName": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "coach": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CoachUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "GoalEntry",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Client"
        },
        "title": {
          "type": "String",
          "required": true
        },
        "category": {
          "type": "String",
          "required": true
        },
        "targetDate": {
          "type": "Date",
          "required": false
        },
        "status": {
          "type": "String",
          "required": true
        },
        "priority": {
          "type": "Number",
          "required": true
        },
        "createdBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CoachUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "SessionNote",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Client"
        },
        "sessionDate": {
          "type": "Date",
          "required": true
        },
        "noteText": {
          "type": "String",
          "required": true
        },
        "actionItems": {
          "type": "Array",
          "required": false
        },
        "mood": {
          "type": "String",
          "required": false
        },
        "coach": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CoachUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "ProgressSnapshot",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Client"
        },
        "goal": {
          "type": "Pointer",
          "required": true,
          "targetClass": "GoalEntry"
        },
        "capturedAt": {
          "type": "Date",
          "required": true
        },
        "progressScore": {
          "type": "Number",
          "required": true
        },
        "milestoneLabel": {
          "type": "String",
          "required": true
        },
        "chartValues": {
          "type": "Array",
          "required": false
        },
        "createdBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CoachUser"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "AuditTrail",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "actor": {
          "type": "Pointer",
          "required": true,
          "targetClass": "CoachUser"
        },
        "client": {
          "type": "Pointer",
          "required": true,
          "targetClass": "Client"
        },
        "entityType": {
          "type": "String",
          "required": true
        },
        "entityId": {
          "type": "String",
          "required": true
        },
        "action": {
          "type": "String",
          "required": true
        },
        "recordedAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AI 에이전트로 구축

Back4app AI 에이전트를 사용하여 이 템플릿에서 실제 코치 저널 앱을 생성합니다. 여기에는 프런트엔드, 백엔드, 인증, 목표, 세션, 노트 및 진행 흐름이 포함됩니다.

Back4app AI 에이전트
구축 준비 완료
Back4app에서 이 정확한 스키마와 동작으로 안전한 라이프 코치 클라이언트 저널 백엔드를 생성하십시오.

스키마:
1. CoachUser (기본 제공 인증 필드와 displayName 및 role 사용): username, email, password, displayName, role; objectId, createdAt, updatedAt (시스템).
2. Client: fullName (String, 필수), email (String, 필수), status (String, 필수), coach (CoachUser에 대한 포인터, 필수); objectId, createdAt, updatedAt (시스템).
3. GoalEntry: client (Client에 대한 포인터, 필수), title (String, 필수), category (String, 필수), targetDate (Date, 선택 사항), status (String, 필수), priority (Number, 필수), createdBy (CoachUser에 대한 포인터, 필수); objectId, createdAt, updatedAt (시스템).
4. SessionNote: client (Client에 대한 포인터, 필수), sessionDate (Date, 필수), noteText (String, 필수), actionItems (Array<String>, 선택 사항), mood (String, 선택 사항), coach (CoachUser에 대한 포인터, 필수); objectId, createdAt, updatedAt (시스템).
5. ProgressSnapshot: client (Client에 대한 포인터, 필수), goal (GoalEntry에 대한 포인터, 필수), capturedAt (Date, 필수), progressScore (Number, 필수), milestoneLabel (String, 필수), chartValues (Array<Number>, 선택 사항), createdBy (CoachUser에 대한 포인터, 필수); objectId, createdAt, updatedAt (시스템).
6. AuditTrail: actor (CoachUser에 대한 포인터, 필수), client (Client에 대한 포인터, 필수), entityType (String, 필수), entityId (String, 필수), action (String, 필수), recordedAt (Date, 필수); objectId, createdAt, updatedAt (시스템).

보안:
- 코치는 자신의 CoachUser 포인터에 할당된 클라이언트만 읽고 쓸 수 있습니다.
- 오직 소유하는 코치만 해당 클라이언트에 대한 GoalEntry, SessionNote, ProgressSnapshot 및 AuditTrail 기록을 생성할 수 있습니다.
- 세션 노트 및 진행 스냅샷은 귀속 가능하고 연대순으로 유지해야 합니다.

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

동작:
- 클라이언트 목록, 목표 생성, 세션 노트 작성, 진행 스냅샷 캡처 및 감사 추적 항목 검토.
- ProgressSnapshot.chartValues 및 이정표 레이블에서 진행 시각화를 지원합니다.

제공:
- 클라이언트 목표, 세션 노트 및 진행 추적을 위한 스키마, CLP, ACL 및 코치 전용 저널 UI를 갖춘 Back4app 앱.

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

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

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

API 플레이그라운드

라이프 코치 저널 스키마에 대해 REST 및 GraphQL 엔드포인트를 사용해 보세요. 응답은 모의 데이터를 사용하며 Back4app 계정이 필요하지 않습니다.

플레이그라운드 로딩 중…

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

기술 선택

각 카드를 확장하여 선택한 스택과 함께 CoachUser, Client 및 GoalEntry를 통합하는 방법을 확인하세요.

Flutter 라이프 코치 저널 백엔드

React 라이프 코치 저널 백엔드

React 네이티브 라이프 코치 저널 백엔드

Next.js 라이프 코치 저널 백엔드

JavaScript 라이프 코치 저널 백엔드

Android 라이프 코치 저널 백엔드

iOS 라이프 코치 저널 백엔드

Vue 라이프 코치 저널 백엔드

Angular 라이프 코치 저널 백엔드

GraphQL 라이프 코치 저널 백엔드

REST API 라이프 코치 저널 백엔드

PHP 라이프 코치 저널 백엔드

.NET 라이프 코치 저널 백엔드

모든 기술에서 얻는 것

모든 스택은 동일한 라이프 코치 저널 백엔드 스키마 및 API 계약을 사용합니다.

통합 코칭 데이터 구조

CoachUser, Client, GoalEntry, SessionNote, ProgressSnapshot 및 AuditTrail을 하나의 일관된 스키마로 관리합니다.

목표 설정 및 진행 상황 추적

제목, 범주, 상태, 우선 순위, 진행 점수 및 차트 값을 명확한 백엔드 필드에 유지합니다.

시간순 세션 노트

SessionNote 및 AuditTrail 기록을 저장하여 코칭 이력을 쉽게 검토할 수 있습니다.

클라이언트별 가시성

코칭 팀과 개인 노트 워크플로에 맞는 접근 규칙을 정의하세요.

라이프 코치 저널 기술 비교

모든 지원 기술 간의 설치 속도, 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분 이내코칭 대시보드를 위한 유연한 __브랜드0__ API.__브랜드0__ API전체
빠른 (2분) 설정저널 워크플로우를 위한 __브랜드0__ 통합.__브랜드0__전체
~3분코칭 기록을 위한 서버 측 __브랜드0__ 백엔드.__브랜드0__전체
~3–7분.NET 코칭 저널 시스템을 위한 백엔드입니다.타입된 SDK전체

설정 시간은 이 템플릿 스키마를 사용하여 프로젝트 시작부터 첫 목표, 세션 또는 진행 쿼리까지의 예상 기간을 반영합니다.

코치 질문

이 템플릿으로 라이프 코치 저널 백엔드를 구축하는 데 관한 일반적인 질문들.

“바쁨”을 넘어 라이프 코치 저널 제공에 실제로 중요한 메트릭은 무엇인가요?
라이프 코치 저널 관련 사항은 데이터에서 문서, 기한 및 커뮤니케이션을 어떻게 연결해야 하나요?
우리는 알림, 작업 및 클라이언트 알림을 위해 라이프 코치 저널 자동화를 어떻게 확장할 수 있습니까?
이 라이프 코치 저널 템플릿을 지원하는 클래스는 무엇인가요?
클라이언트를 위해 목표를 어떻게 생성하나요?
코칭 세션을 어떻게 기록하나요?
세션 노트에 대한 실시간 타임라인 업데이트는 어떻게 작동합니까?
진행 상태 스냅샷을 오프라인으로 캐시할 수 있나요?
Flutter 템플릿을 위한 SDK는 어떻게 초기화하나요?
저널 데이터에 대해 언제 GraphQL를 REST 대신 선택해야 하나요?

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

Back4app 템플릿으로 더 빠른 코칭 저널 제품 배송 팀에 가입하세요

G2 Users Love Us Badge

당신의 라이프 코치 저널 앱을 만들 준비가 되셨나요?

몇 분 만에 라이프 코치 저널 프로젝트를 시작하세요. 신용 카드 필요 없음.

기술 선택