snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
---
title: 사용자 정의 필드 생성
description: 모든 객체에 사용자 정의 필드를 추가하는 단계별 가이드.
---
사용자 정의 필드를 사용하면 비즈니스에 특화된 정보를 수집할 수 있습니다. 표준이든 사용자 정의이든 모든 객체에 추가할 수 있습니다.
## 단계
1. **설정 → 데이터 모델**로 이동
2. 필드를 추가하려는 객체를 선택합니다.
3. **+ 새 필드**를 클릭합니다
4. **필드 유형**을 선택합니다(모든 유형은 [필드](/l/ko/user-guide/data-model/capabilities/fields)에서 확인하세요)
5. **필드 이름**과 선택적 설명을 입력합니다
6. 필드별 설정을 구성합니다(아래 참조)
7. **저장** 클릭
**빠른 방법:** 어떤 테이블 뷰에서든 열 헤더 끝의 \*\*+\*\*를 클릭 → **필드 사용자 지정**.
## 뷰에서 필드 표시
새 필드는 자동으로 표시되지 않습니다. 표시하려면:
1. 객체의 테이블 뷰를 엽니다
2. **옵션 → 필드**를 클릭합니다
3. 해당 필드 옆의 **눈 아이콘**을 클릭하여 표시합니다
4. 드래그하여 순서를 변경합니다
## 구성 옵션
### 선택/다중 선택의 경우
1. 옵션을 만들려면 **+ 옵션 추가**를 클릭합니다
2. 원한다면 **기본 옵션**을 설정합니다
3. 드래그하여 옵션 순서를 변경합니다
<Note>
**가져오기에는 API 이름을 사용하세요.** API 이름을 보려면 설정에서 **고급 모드**를 활성화하세요. [필드 매핑](/l/ko/user-guide/data-migration/capabilities/field-mapping)을 참조하세요.
</Note>
### 통화 필드의 경우
**기본 통화**(USD, EUR 등)를 새 레코드에 대해 설정합니다
### 전화 필드의 경우
새 전화번호에 미리 입력될 **기본 국가 코드**를 설정합니다.
### 필드를 고유하게 만들기
레코드 전체에서 중복 값을 방지하려면 **고유**를 전환합니다.
<Note>
중복이 존재하면(삭제된 레코드를 포함) 오류가 발생합니다. 먼저 중복을 정리하세요.
</Note>
### 기본값 설정
선택 필드의 경우 새 레코드에서 미리 선택될 옵션을 지정할 수 있습니다. 체크박스 필드의 경우 기본으로 선택됨 또는 선택 해제 상태를 설정합니다.
## 필드 비활성화
1. **설정 → 데이터 모델**로 이동
2. 필드를 찾습니다
3. **⋮ → 비활성화**를 클릭합니다
데이터는 보존됩니다. 나중에 다시 활성화하거나 영구적으로 삭제할 수 있습니다.
## 관련 항목
* [필드](/l/ko/user-guide/data-model/capabilities/fields) — 모든 필드 유형 설명
* [데이터 모델 FAQ](/l/ko/user-guide/data-model/how-tos/data-model-faq) — 자주 묻는 질문

View File

@@ -0,0 +1,51 @@
---
title: 사용자 정의 객체 생성
description: Twenty에서 사용자 정의 객체를 생성하는 단계별 가이드.
---
사용자 정의 객체를 사용하면 표준 객체에서 다루지 않는, 비즈니스에 고유한 정보를 저장할 수 있습니다. 예: 프로젝트, 제품, 티켓 또는 리스팅.
<Note>
**객체가 필요한지 필드가 필요한지 확신이 없나요?** 자세한 내용은 [데이터 모델 이해](/l/ko/user-guide/data-model/overview)를 참조하세요.
</Note>
## 단계
1. **설정 → 데이터 모델**로 이동
2. **+ 객체 추가**를 클릭합니다
3. 다음을 입력하세요:
* **단수 이름**(예: "Listing")
* **복수 이름**(예: "Listings")
* **아이콘**
* **설명** (선택 사항)
4. **저장** 클릭
객체가 즉시 사이드바에 표시됩니다.
## 다음: 필드 추가
새 객체는 기본 필드로 시작합니다. 필요한 데이터를 수집할 수 있도록 사용자 정의 필드를 추가하세요:
1. **설정 → 데이터 모델**에서 객체를 선택합니다
2. **+ 새 필드**를 클릭합니다
3. 필드 유형을 선택하고 구성한 뒤 저장합니다
필드 유형과 구성에 대한 자세한 내용은 [사용자 정의 필드 생성 방법](/l/ko/user-guide/data-model/how-tos/create-custom-fields)을 참조하세요.
## 다른 객체와 연결하기
객체를 사람, 회사 또는 다른 객체와 연결하려면 관계 필드를 생성하세요. [관계 필드 생성 방법](/l/ko/user-guide/data-model/how-tos/create-relation-fields)을 참조하세요.
## 객체 비활성화
객체가 더 이상 필요하지 않은 경우:
1. **설정 → 데이터 모델 → 원하는 오브젝트 → 설정**으로 이동합니다
2. **비활성화** 버튼을 클릭합니다
객체는 숨겨지지만 데이터는 보존됩니다. 나중에 다시 활성화하거나 영구적으로 삭제할 수 있습니다.
## 관련 항목
* [객체](/l/ko/user-guide/data-model/capabilities/objects) — 표준 객체 vs 사용자 정의 객체
* [데이터 모델 FAQ](/l/ko/user-guide/data-model/how-tos/data-model-faq) — 자주 묻는 질문

View File

@@ -0,0 +1,175 @@
---
title: 다대다 관계 만들기
description: 정션 오브젝트를 사용하여 양쪽에서 여러 항목이 서로 연결될 수 있는 레코드를 연결합니다.
---
다대다 관계를 사용하면 양쪽에서 여러 레코드를 연결할 수 있습니다. 예: 여러 사람은 여러 프로젝트에서 작업할 수 있으며, 각 프로젝트에는 많은 사람이 포함될 수 있습니다.
<Warning>
**베타 기능**: 정션 관계는 현재 베타 단계입니다. 이 가이드를 따르기 전에 **Settings → Community → Features**에서 이를 활성화하세요.
</Warning>
<Note>
이 기능을 사용하려면 **Advanced mode**도 활성화되어 있어야 합니다(설정 사이드바 왼쪽 하단의 토글).
</Note>
## 다대다 관계를 사용할 때
관계의 양쪽 모두에 여러 연결이 있을 수 있을 때 다대다를 사용하세요:
| 관계 | 예시 |
| --------- | ---------------------------------------------------- |
| 사람 ↔ 프로젝트 | 한 사람은 여러 프로젝트에서 작업하고, 하나의 프로젝트에는 여러 팀원이 있습니다. |
| 회사 ↔ 태그 | 하나의 회사에는 여러 태그가 있을 수 있으며, 하나의 태그는 여러 회사에 적용될 수 있습니다. |
| 제품 ↔ 주문 | 하나의 제품은 여러 주문에 포함될 수 있으며, 하나의 주문에는 여러 제품이 포함됩니다. |
## 작동 방식
Twenty는 다대다 관계에 **정션 오브젝트** 패턴을 사용합니다. 정션 오브젝트는 두 객체 사이에 위치하여 연결을 보관합니다:
```
People ←→ Project Assignments ←→ Projects
```
**Project Assignments** 오브젝트(정션)에는 다음이 있습니다:
* 사람에 대한 관계(다대일)
* 프로젝트에 대한 관계(다대일)
정션 관계 토글을 활성화하면, Twenty는 중간 정션 레코드를 표시하지 않고 연결된 레코드를 직접 표시합니다.
## 사전 준비
1. **베타 기능에서 Junction Relations 활성화**: **Settings → Community → Features**로 이동하여 **Junction Relations**를 활성화하세요
2. **Advanced mode 활성화**: 설정 사이드바 왼쪽 하단에서 **Advanced mode**를 켭니다
3. 데이터 모델을 계획하세요:
* 어떤 두 오브젝트를 연결하나요?
* 정션 오브젝트의 이름은 무엇으로 할까요?
## 1단계: 정션 오브젝트 만들기
먼저, 연결을 보관할 중간 오브젝트를 만드세요.
1. **설정 → 데이터 모델**로 이동
2. **+ 객체 추가**를 클릭합니다
3. 설명을 담은 이름을 지정하세요(예: "Project Assignment", "Team Member", "Product Order")
4. "이름 필드 생성을 건너뛰기"를 켭니다
<img src="/images/user-guide/fields/new-pivot-object.png" alt="새 피벗 오브젝트" />
5. **저장**을 클릭합니다
<Tip>
**명명 규칙**: "Project Assignment" 또는 "Team Membership"처럼 관계를 설명하는 이름을 사용하세요. 이렇게 하면 데이터 모델을 더 쉽게 이해할 수 있습니다.
</Tip>
## 2단계: 오브젝트와 정션 간 관계 만들기
두 개의 오브젝트 각각에서 정션 오브젝트로 관계 필드를 추가합니다.
### 첫 번째 관계(오브젝트 A → 정션)
1. **Settings → Data Model**에서 첫 번째 오브젝트를 선택하세요
2. **+ 관계 추가**를 클릭합니다
3. 정션 오브젝트를 선택하세요(예: "Project Assignments")
4. 관계 유형을 **One-To-Many**로 설정합니다(한 사람이 여러 할당에 연결될 수 있음)
5. 필드 이름 지정:
* People의 필드: 예: "Project Assignments"
* 정션의 필드: 예: "Person"
6. **저장**을 클릭합니다
### 두 번째 관계(오브젝트 B → 정션)
1. **Settings → Data Model**에서 두 번째 오브젝트를 선택하세요
2. **+ 관계 추가**를 클릭합니다
3. 정션 오브젝트를 선택하세요(예: "Project Assignments")
4. 관계 유형을 **One-To-Many**로 설정합니다(하나의 프로젝트가 여러 할당에 연결될 수 있음)
5. \*\*"This is a relation to a Junction Object"\*\*를 활성화하세요
<img src="/images/user-guide/fields/junction-relation-toggle.png" style={{width:'100%'}} />
6. 필드 이름 지정:
* 정션의 필드: 예: "Project"
* Projects의 필드: 예: "Team Members"
7. **저장**을 클릭합니다
## 3단계: 정션 관계 표시 구성
이제 중간 정션 오브젝트를 건너뛰고 연결된 레코드를 직접 표시하도록 소스 오브젝트를 구성하세요.
1. **설정 → 데이터 모델**로 이동
2. 첫 번째 오브젝트를 선택하세요(예: "People")
3. 정션 오브젝트를 가리키는 관계 필드(예: "Project Assignments")를 찾으세요
4. 클릭하여 필드를 편집하세요
5. \*\*"This is a relation to a Junction Object"\*\*를 활성화하세요
6. **Target relation**을 선택하세요(예: "Project" — 반대편을 가리키는 정션의 필드)
7. **저장**을 클릭합니다
## 결과
구성 후:
* **Person** 레코드에서는 "Project Assignments" 필드가 할당 레코드가 아니라 **Projects**를 직접 표시합니다
* **Project** 레코드에서는 "Team Members" 필드가 **People**를 직접 표시합니다
정션 오브젝트는 여전히 존재하며 연결을 저장하지만, UI는 더 깔끔한 다대다 보기를 제공합니다.
## 예: People ↔ Projects
전체 단계별 안내는 다음과 같습니다:
### 정션 오브젝트 만들기
* 이름: **Project Assignment**
* 설명: "사람을 작업 중인 프로젝트에 연결합니다"
### 관계 추가
1. **People → Project Assignment**
* 유형: One-to-Many
* People의 필드: "Project Assignments"
* Assignment의 필드: "Person"
2. **Projects → Project Assignment**
* 유형: One-to-Many
* Projects의 필드: "Team Members"
* Assignment의 필드: "Project"
### 정션 표시 구성
1. **People** 오브젝트에서:
* "Project Assignments" 필드를 편집하세요
* 정션 토글을 활성화하세요
* 대상: "Project"
2. **Projects** 오브젝트에서:
* "Team Members" 필드를 편집하세요
* 정션 토글을 활성화하세요
* 대상: "Person"
### 사용하기
* Person 레코드를 열면 → 해당 Projects를 바로 확인할 수 있습니다
* Project 레코드를 열면 → 팀원을 바로 확인할 수 있습니다
* 양쪽 어디에서든 새 연결을 만들 수 있습니다
## 연결에 추가 데이터 추가하기
정션 오브젝트는 실제 오브젝트이므로, 관계에 대한 정보를 저장할 사용자 정의 필드를 추가할 수 있습니다:
* **역할**: "Developer", "Designer", "Manager"
* **시작일**: 해당 인원이 프로젝트에 참여한 시점
* **할당 시간**: 이 프로젝트의 주간 시간
이 데이터를 확인하려면 정션 오브젝트로 직접 이동하거나 API를 통해 조회하세요.
## 제한 사항
* **CSV 가져오기/내보내기**: 다대다 관계를 직접 가져오기는 지원되지 않습니다. 대신 정션 오브젝트로 레코드를 가져오세요.
* **필터**: 다대다 관계로 필터링하는 경우 옵션이 제한될 수 있습니다.
## 관련 항목
* [관계 필드](/l/ko/user-guide/data-model/capabilities/relation-fields) — 관계 유형 설명
* [사용자 정의 오브젝트 만들기](/l/ko/user-guide/data-model/how-tos/create-custom-objects) — 오브젝트 생성 방법
* [관계 필드 만들기](/l/ko/user-guide/data-model/how-tos/create-relation-fields) — 기본 관계 설정

View File

@@ -0,0 +1,70 @@
---
title: 관계 필드 만들기
description: 관계 필드를 사용하여 객체를 연결하는 단계별 가이드.
---
관계 필드는 서로 다른 객체의 레코드를 연결합니다—예: 사람을 회사에 연결.
<Note>
**관계 이름은 생성 후 변경할 수 없습니다** (API에 영향을 줍니다). 이름을 신중하게 계획하세요.
</Note>
## 시작하기 전에
다음을 결정하세요:
* 어떤 객체를 연결하나요? (예: 사람 → 회사)
* 어느 쪽이 "일(1)" 측인가요? (예: 회사)
* 어느 쪽이 "다수" 측인가요? (예: 사람 — 많은 사람이 한 회사에서 근무합니다)
* 각 측의 필드 이름을 무엇으로 지정할까요?
관계 유형에 대한 설명은 [관계 필드](/l/ko/user-guide/data-model/capabilities/relation-fields)를 참고하세요.
## 단계
1. **설정 → 데이터 모델**로 이동
2. 관계를 만들 객체(보통 "다수" 측)를 선택합니다.
3. **+ 새 필드**를 클릭합니다
4. 필드 유형으로 **관계**를 선택합니다.
5. **대상 객체**를 선택합니다.
6. **일대다** 또는 **다대일**을 선택합니다.
7. 관계의 **양쪽**에 대한 필드 이름을 입력합니다.
8. **저장** 클릭
## 예: 사람 → 회사
* **설정 → 데이터 모델 → 사람**으로 이동
* 관계 필드를 추가합니다.
* 대상: **회사**
* 유형: **다대일**
* 사람 측의 필드: **회사**
* 회사 측의 필드: **직원**
이제 각 사람을 회사에 연결할 수 있고, 각 회사에는 연결된 사람들이 표시됩니다.
## 관계 비활성화
1. **설정 → 데이터 모델 → 원하는 오브젝트**로 이동
2. 관계 필드를 찾아 클릭합니다
3. **비활성화** 버튼을 클릭합니다
연결은 유지되지만 숨겨집니다. 복원하려면 다시 활성화하세요.
<Note>
**관계를 비활성화해도 레코드는 삭제되지 않습니다.** 둘 사이의 연결만 제거됩니다.
</Note>
## 관계 삭제
1. **설정 → 데이터 모델 → 원하는 오브젝트**로 이동
2. 관계 필드를 찾아 클릭합니다
3. **삭제** 버튼을 클릭합니다
<Note>
사용자 지정 관계에만 적용됩니다. 표준 관계는 비활성화만 할 수 있습니다.
</Note>
## 관련 항목
* [관계 필드](/l/ko/user-guide/data-model/capabilities/relation-fields) — 유형과 제한사항
* [관계 가져오기 방법](/l/ko/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) — 연결된 레코드를 대량으로 가져오기

View File

@@ -0,0 +1,22 @@
---
title: 데이터 모델 사용자 정의하기
description: 데이터 모델 사용자 정의 옵션 개요.
---
Twenty의 데이터 모델은 완전히 사용자 정의할 수 있습니다. 비즈니스에 맞게 객체, 필드, 관계를 생성하세요.
## 빠른 링크
| 원하는 작업... | 가이드 |
| --------- | ----------------------------------------------------------------------- |
| 새 객체 생성 | [사용자 정의 객체 생성 방법](/l/ko/user-guide/data-model/how-tos/create-custom-objects) |
| 객체에 필드 추가 | [사용자 정의 필드 생성 방법](/l/ko/user-guide/data-model/how-tos/create-custom-fields) |
| 객체를 서로 연결 | [관계 필드 생성 방법](/l/ko/user-guide/data-model/how-tos/create-relation-fields) |
## 자세히 알아보기
* [데이터 모델 이해하기](/l/ko/user-guide/data-model/overview) — 핵심 개념과 계획 팁
* [객체](/l/ko/user-guide/data-model/capabilities/objects) — 표준 객체와 사용자 정의 객체
* [필드](/l/ko/user-guide/data-model/capabilities/fields) — 모든 필드 유형
* [관계 필드](/l/ko/user-guide/data-model/capabilities/relation-fields) — 객체 연결
* [데이터 모델 FAQ](/l/ko/user-guide/data-model/how-tos/data-model-faq) — 자주 묻는 질문

View File

@@ -0,0 +1,157 @@
---
title: 데이터 모델 FAQ
description: Twenty의 데이터 모델에 대한 자주 묻는 질문입니다.
---
## 객체 관리
<AccordionGroup>
<Accordion title="사용자 정의 객체를 삭제할 수 있나요?">
예, 사용자 정의 객체는 삭제할 수 있습니다. 먼저 비활성화할 수도 있습니다. 이렇게 하면 데이터는 보존하면서 객체와 그 데이터를 인터페이스에서 숨깁니다.
</Accordion>
<Accordion title="표준 객체(사람, 회사 등)를 삭제할 수 있습니까?">
아니요, 표준 객체는 삭제할 수 없습니다. 비활성화만 할 수 있으며, 인터페이스에서는 숨겨지지만 데이터는 보존됩니다.
</Accordion>
<Accordion title="사용자 정의 객체는 몇 개까지 만들 수 있나요?">
필요한 만큼 사용자 정의 객체와 필드를 만들 수 있으며, 가격은 변동하지 않습니다.
</Accordion>
<Accordion title="표준 객체의 이름을 바꿀 수 있나요?">
표준 객체(사람, 회사, 기회)의 레이블은 변경할 수 있지만, API 이름은 변경할 수 없습니다. 모든 Twenty 워크스페이스에서의 일관성을 위해 API 이름은 고정되어 있습니다.
</Accordion>
<Accordion title="객체의 아이콘을 변경할 수 있나요?">
예, **설정 → 데이터 모델**에서 표준 객체와 사용자 정의 객체 모두의 아이콘을 변경할 수 있습니다.
</Accordion>
<Accordion title="왼쪽 탐색 모음에서 객체 순서를 변경할 수 있습니까?">
아직 안 됩니다. 탐색의 객체 순서는 현재 고정되어 있으며, 이 기능은 향후 릴리스에 계획되어 있습니다.
</Accordion>
<Accordion title="왼쪽 탐색 모음에서 객체를 숨길 수 있습니까?">
모든 활성 객체는 탐색에 나타납니다. **설정 → 데이터 모델**에서 필요 없는 객체를 비활성화할 수 있습니다.
</Accordion>
</AccordionGroup>
## 필드 기능
<AccordionGroup>
<Accordion title="생성 후에 필드 유형을 변경할 수 있나요?">
아니요, 생성 후에는 필드 유형을 변경할 수 없습니다. 다른 유형이 필요하다면 올바른 유형의 새 필드를 만들고 데이터를 마이그레이션한 다음 이전 필드를 비활성화하세요.
</Accordion>
<Accordion title="단수 및 복수 이름이 필요한 이유는 무엇입니까?">
우리의 GraphQL API는 다양한 작업에서 두 형식을 모두 사용합니다:
* 단일 기록 작업을 위한 `createPerson` (단수)
* 대량 작업을 위한 `createPeople` (복수)
단수 및 복수 형식이 동일할 때 제한이 있지만, 개발자 경험을 향상시킵니다.
</Accordion>
<Accordion title="왜 일부 필드 이름은 보호됩니까?">
`Type` 또는 `Application`과 같은 특정 필드 이름은 시스템 사용을 위해 예약되어 있습니다. 대신 `Category` 또는 `Classification`과 같은 대체 이름을 선택하세요.
</Accordion>
<Accordion title="필드를 비활성화하면 어떻게 되나요?">
* 필드는 인터페이스에서 숨겨집니다
* 기존 데이터는 보존됩니다
* API를 통해 해당 필드에 계속 액세스할 수 있습니다
* 기존 관계는 유지되지만 새 관계를 생성할 수는 없습니다
* 필드는 나중에 다시 활성화할 수 있습니다
</Accordion>
<Accordion title="필드를 필수로 설정할 수 있나요?">
현재는 사용자 정의 필드를 필수로 설정할 수 없습니다. 모든 필드는 빈 값을 허용합니다. 필드가 비어 있을 때 알림을 보내거나 동작을 차단하는 워크플로우를 사용해 필수 필드를 강제할 수 있습니다.
</Accordion>
<Accordion title="고유와 필수의 차이는 무엇인가요?">
* **고유**: 두 레코드가 이 필드에 동일한 값을 가질 수 없습니다
* **필수**: 필드에 값이 있어야 합니다(현재 사용자 정의 필드에서는 지원되지 않음)
</Accordion>
<Accordion title="수식 필드를 만들 수 있습니까?">
수식 필드는 **2026년 하반기**에 제공될 예정입니다. 현재는 워크플로를 사용하여 필드 값을 자동으로 계산하고 업데이트할 수 있습니다.
</Accordion>
<Accordion title="내 객체에 중첩 필드를 가질 수 있습니까?">
중첩 필드는 **2026년 하반기**에 제공될 예정입니다. 현재로서는 관련 객체의 필드 값을 가져오려면 워크플로를 사용할 수 있습니다. 예를 들어, 회사의 산업을 사람 기록에 표시하려면 사람에 대한 사용자 정의 필드를 만들고 워크플로를 사용하여 값을 동기화하세요.
</Accordion>
<Accordion title="객체 내에서 필드를 정렬할 수 있습니까?">
예, Settings → Data model → 원하는 객체 → Layout으로 이동한 다음 **Customize record page**를 클릭하세요. 이 버튼이 비활성화되어 있다면, 레코드를 하나 생성해야 합니다.
</Accordion>
</AccordionGroup>
## 관계
<AccordionGroup>
<Accordion title="같은 객체를 가리키는 관계를 만들 수 있나요?">
예! 자기 참조 관계가 지원되며, 계정 계층 구조와 같은 사용 사례에 권장됩니다. 예를 들어, 상위/하위 계정을 추적하기 위해 회사에서 회사로의 관계를 생성하세요.
</Accordion>
<Accordion title="다대다 관계를 만들 수 있습니까?">
다대다 관계는 **2026년 하반기**에 제공될 예정입니다. 현재는 우회 방법으로 두 개의 1대다 관계를 가진 중간 객체를 만드세요.
예를 들어 People과 Projects를 연결(다대다)하려면 "Project Assignments" 객체를 만들고 다음을 포함하세요:
* People에 대한 관계(여러 할당 → 한 사람)
* Projects에 대한 관계(여러 할당 → 한 프로젝트)
</Accordion>
<Accordion title="여러 객체 유형에 대한 관계(Morph 관계)란 무엇인가요?">
이는 하나의 필드를 통해 하나의 객체가 여러 서로 다른 객체 유형과 관계를 맺을 수 있도록 합니다. 예를 들어, 노트는 동시에 사람, 회사, 기회에 첨부될 수 있습니다.
각 노트는 동시에 한 사람, 한 회사, 한 기회에 연결됩니다.
자세한 내용은 [관계 필드](/l/ko/user-guide/data-model/capabilities/relation-fields)에서 확인하세요.
</Accordion>
<Accordion title="동일한 두 객체 간에 여러 관계를 만들 수 있나요?">
예, 동일한 두 객체 간에 여러 관계를 생성할 수 있습니다. 예를 들어, 회사는 사람에 대해 "Primary Contact"와 "Billing Contact" 관계를 모두 가질 수 있습니다.
</Accordion>
<Accordion title="레코드를 삭제하면 관계는 어떻게 되나요?">
레코드를 삭제하면 관련 레코드에서 관계 링크가 제거됩니다. 관련 레코드 자체는 삭제되지 않습니다.
</Accordion>
<Accordion title="순환 관계를 만들 수 있나요?">
기술적으로는 가능하지만, 순환 관계(A → B → C → A)는 혼란을 초래하고 성능 문제를 일으킬 수 있으므로 피하는 것이 좋습니다.
</Accordion>
</AccordionGroup>
## 접속 및 권한
<AccordionGroup>
<Accordion title="내 데이터 모델을 어디서 보고 편집할 수 있습니까?">
**설정 → 데이터 모델**로 이동하여 모든 객체와 필드를 보고 편집하세요.
</Accordion>
<Accordion title="왜 설정에서 데이터 모델을 볼 수 없습니까?">
워크스페이스 관리자에게 문의하세요. 데이터 모델 접근은 보통 관리자에게만 제한됩니다.
</Accordion>
</AccordionGroup>
## 데이터 관리
<AccordionGroup>
<Accordion title="보유할 수 있는 레코드 수에 제한이 있나요?">
레코드 수에 대한 하드 제한은 없습니다. 하지만 매우 큰 데이터 세트는 일부 보기에서 성능에 영향을 줄 수 있습니다. 필터와 보기를 사용해 대규모 데이터 세트를 효과적으로 관리하세요.
</Accordion>
<Accordion title="사용자 정의 객체로 데이터를 가져올 수 있나요?">
예, 사용자 정의 객체를 포함한 모든 객체에 CSV 데이터를 가져올 수 있습니다. 가져오기 프로세스는 사용자 정의 필드에 대한 필드 매핑을 지원합니다. 자세한 내용은 [CSV 파일 준비 방법](/l/ko/user-guide/data-migration/how-tos/prepare-your-csv-files)을 참조하세요.
</Accordion>
<Accordion title="내 데이터 모델 구성 정보를 내보낼 수 있나요?">
현재 데이터 모델 구성에 대한 내장된 내보내기 기능은 없습니다. 워크스페이스 간에 데이터 모델을 마이그레이션해야 하는 경우 지원팀에 문의하세요.
</Accordion>
<Accordion title="하나의 객체는 필드를 최대 몇 개까지 가질 수 있나요?">
하나의 객체가 가질 수 있는 필드 수의 최대값은 Postgres 제한에 따라 기존 필드와 삭제된 필드를 모두 포함해 1600개입니다. 1600개 필드 한도에 도달하면 이는 당사의 공정 사용(Fair Usage) 정책에 해당하므로 Twenty에서는 워크스페이스를 수정해 주지 않는다는 점에 유의하세요.
</Accordion>
</AccordionGroup>
## 추가 도움이 필요하십니까?
복잡한 데이터 모델 설계를 지원받으려면 [구현 서비스](/l/ko/user-guide/getting-started/capabilities/implementation-services)를 확인하세요.