---
title: 고유성 제약 조건
description: Twenty가 가져오기 중 데이터 고유성을 강제하는 방법.
---

import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';

## 개요

Twenty는 중복 레코드를 방지하고 데이터 무결성을 보장하기 위해 일부 필드에 고유성을 강제합니다. 이러한 제약 조건을 이해하는 것은 성공적인 가져오기에 필수적입니다.

## 기본 고유 필드

| 객체            | 고유 필드          |
| ------------- | -------------- |
| **사람**        | `id`, `email`  |
| **회사**        | `id`, `domain` |
| **사용자 지정 개체** | `id`만 (기본값)    |

<Note>`id` 필드는 Twenty의 내부 식별자로, 각 레코드에 대해 자동 생성됩니다. UUID 형식을 사용합니다(예: `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>

## 사용자 지정 고유 필드

**설정 → 데이터 모델**에서 추가 고유 필드를 정의할 수 있습니다:

1. **설정 → 데이터 모델**로 이동
2. 객체를 선택하세요
3. 필드를 클릭하세요
4. 필드 설정에서 **Unique**를 활성화하세요

### 사용자 지정 고유 필드의 활용 사례

* **외부 ID**: 다른 시스템의 ID 저장(Salesforce ID, HubSpot ID)
* **비즈니스 식별자**: 사번, 고객 코드
* **대체 연락처 정보**: LinkedIn 프로필, 전화번호

<Note>필드 이름 `id`는 Twenty의 내부 ID로 예약되어 있습니다. 외부 식별자에는 `externalId` 또는 `legacyId`와 같은 다른 이름을 사용하세요.</Note>

## 가져오기 동작 방식

### 새 레코드 생성

고유 필드 값이 존재하지 않으면 새 레코드가 생성됩니다.

### 기존 레코드 업데이트

고유 필드 값이 기존 레코드와 일치하면 해당 레코드는 새 데이터로 **업데이트**됩니다.
<Warning>기존 레코드를 **업데이트**하려면 **하나의 고유 필드만** 매칭하는 것을 권장합니다.</Warning>

### 소프트 삭제된 레코드

<Warning>
  **삭제된 레코드도 고유성에 포함됩니다.**

  소프트 삭제된 레코드는(Command Menu → See deleted records에서 확인 가능) 고유성 검사에 포함됩니다. 삭제된 레코드와 동일한 고유 값을 가진 레코드를 가져오면, 삭제된 레코드는 새 데이터로 **복원**됩니다.
</Warning>

## 가져오기 중 중복 감지

유효성 검사 단계에서:

* 파일 내 중복 항목은 노란색으로 강조 표시됩니다
* 가져오기를 시작하기 전에 UI에서 중복 행을 편집하거나 제거할 수 있습니다

<VimeoEmbed videoId="1145246326" title="동영상 시연" />

## 모범 사례

1. 가져오기 전에 파일에서 **중복 항목을 제거**하세요
2. 가져오기 전에 Twenty에서 **기존 레코드가 있는지 확인**하세요
3. 다른 시스템에서 마이그레이션할 때 **외부 ID를 사용**하세요
4. 기존 레코드를 업데이트하려면 **고유 필드를 포함**하세요
