--- title: 다대다 관계 만들기 description: 정션 오브젝트를 사용하여 양쪽에서 여러 항목이 서로 연결될 수 있는 레코드를 연결합니다. --- 다대다 관계를 사용하면 양쪽에서 여러 레코드를 연결할 수 있습니다. 예: 여러 사람은 여러 프로젝트에서 작업할 수 있으며, 각 프로젝트에는 많은 사람이 포함될 수 있습니다. **베타 기능**: 정션 관계는 현재 베타 단계입니다. 이 가이드를 따르기 전에 **Settings → Community → Features**에서 이를 활성화하세요. 이 기능을 사용하려면 **Advanced mode**도 활성화되어 있어야 합니다(설정 사이드바 왼쪽 하단의 토글). ## 다대다 관계를 사용할 때 관계의 양쪽 모두에 여러 연결이 있을 수 있을 때 다대다를 사용하세요: | 관계 | 예시 | | --------- | ---------------------------------------------------- | | 사람 ↔ 프로젝트 | 한 사람은 여러 프로젝트에서 작업하고, 하나의 프로젝트에는 여러 팀원이 있습니다. | | 회사 ↔ 태그 | 하나의 회사에는 여러 태그가 있을 수 있으며, 하나의 태그는 여러 회사에 적용될 수 있습니다. | | 제품 ↔ 주문 | 하나의 제품은 여러 주문에 포함될 수 있으며, 하나의 주문에는 여러 제품이 포함됩니다. | ## 작동 방식 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. "이름 필드 생성을 건너뛰기"를 켭니다 새 피벗 오브젝트 5. **저장**을 클릭합니다 **명명 규칙**: "Project Assignment" 또는 "Team Membership"처럼 관계를 설명하는 이름을 사용하세요. 이렇게 하면 데이터 모델을 더 쉽게 이해할 수 있습니다. ## 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"\*\*를 활성화하세요 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) — 기본 관계 설정