> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 스키마

> 모든 사용자 프로필의 기반이 되는 스키마: 기본 제공 필드, 정의하는 사용자 지정 속성, 그리고 속성이 Auto Groups 및 앱 매핑에 활용되는 방식입니다.

모든 사용자 프로필은 **스키마**, 즉 프로필이 보유할 수 있는 속성 집합에 의해 구성됩니다.
스키마는 모든 사용자에게 존재하는 기본 제공 필드로 시작하며, 조직에 맞춘
**사용자 지정 속성**으로 확장합니다. 스키마는 **Directory → Users → Schema**에서
편집합니다(Users 페이지의 스키마 컨트롤은 텍스트 레이블이 아닌 아이콘 버튼입니다).

속성은 단순한 저장소 이상입니다. 속성은
[Auto Groups](/ko/identity/directory/auto-groups)가 멤버십을 계산하고 애플리케이션이
수신하는 ID 정보에 매핑하는 원재료이므로, 여기에서 설계하는 스키마가 Iru Identity 전반의
액세스와 자동화를 형성합니다.

<Frame caption="User Schema 편집기: 슬러그, 유형 및 플래그가 있는 기본 제공 및 사용자 지정 속성이 카테고리별로 그룹화되어 있습니다.">
  <img src="https://mintcdn.com/iru/yv46VZ-WbN1GdStp/assets/media/images/user-schema.webp?fit=max&auto=format&n=yv46VZ-WbN1GdStp&q=85&s=374c27a7f249db7f8fa332ecb1964c26" alt="Domain, Username, Iru Role, Name, Email 등의 속성이 있는 Default 카테고리를 보여 주는 User Schema 페이지로, 각 속성에 슬러그, 유형 및 Unique, Required, Auto Group 열이 있습니다." width="2000" height="1137" data-path="assets/media/images/user-schema.webp" />
</Frame>

## 기본 제공 필드

모든 프로필에는 정의할 필요가 없는 기본 제공 항목 집합이 포함됩니다.

* 사용자의 표시 이름을 구성하는 데 사용되는 **이름**.
* **이메일**, **전화번호**, **주소**로, 각 항목에는 회사 또는 개인과 같은
  **레이블**이 있습니다.
* 함께 로그인 식별자를 구성하는 **사용자 이름**과 **도메인**.
* **역할**, **상태**, **소스**. **역할**은 Identity뿐 아니라 Iru 제품 전반에 적용됩니다.

이러한 항목은 프로필의 나머지 부분과 함께 [사용자](/ko/identity/directory/users)에서
설명합니다.

<Note>
  **둘 이상의 이메일 도메인 지원.** 사용자가 가질 수 있는 **도메인**은 기본 제공 도메인
  필드의 고정된 허용 값 목록에서 가져옵니다. 조직에서 여러 도메인(예: `example.com` 및
  `example.io`)을 사용하는 경우 스키마에서 각 도메인을 해당 목록에 추가하세요. 사용자를
  생성하거나 가져올 때는 여기에 정의된 도메인만 선택할 수 있습니다.
</Note>

## 사용자 지정 속성

사용자 지정 속성은 모든 사용자 프로필에 필드를 추가합니다. 속성을 생성할 때 다음을
지정합니다.

| 속성 | 기능 |
| - | - |
| **Display name** | 프로필에 표시되는 사람이 읽을 수 있는 레이블입니다. |
| **Slug** | 속성을 앱과 규칙에 매핑할 때 사용되는 안정적이고 기계 친화적인 식별자입니다. |
| **Type** | 보유하는 값의 종류로, 아래 **속성 유형**에서 선택합니다. |
| **설명** | 프로필을 편집하는 관리자에게 표시되는 선택적 안내입니다. |
| **범주** | 속성이 표시되는 프로필 섹션입니다(아래 참조). |
| **Required** | 켜면 이 속성에 대한 값 없이는 프로필을 저장할 수 없습니다. |
| **Unique** | 켜면 두 사용자가 이 속성에 대해 같은 값을 가질 수 없습니다. |

<Frame caption="사용자 지정 속성 추가.">
  <img src="https://mintcdn.com/iru/yv46VZ-WbN1GdStp/assets/media/images/schema-add-attribute.webp?fit=max&auto=format&n=yv46VZ-WbN1GdStp&q=85&s=d1cd709823941a74f2e097f8f386453f" alt="Display Name, Slug, Description 필드, Category 및 Type 선택기, Unique 및 Required 토글이 있는 Add Attribute 대화 상자." width="2000" height="1135" data-path="assets/media/images/schema-add-attribute.webp" />
</Frame>

<Note>
  **필수** 및 **고유**는 신중하게 선택하세요. 필수 속성은 가져오기 또는 HR 동기화로
  생성된 사용자를 포함하여 모든 사용자에게 있어야 하므로, 해당 속성이 없는 레코드는
  저장에 실패합니다. 고유 속성은 직원 번호와 같은 식별자에 적합합니다.
</Note>

### 속성 유형

사용자 지정 속성을 추가할 때 보유할 값에 대해 다음 유형 중 하나를 선택합니다.

| 유형 | 보유하는 값 |
| - | - |
| **String** | 자유 형식 텍스트. |
| **Integer** | 정수. |
| **Decimal** | 소수 부분이 있을 수 있는 숫자. |
| **Boolean** | true 또는 false 값. |
| **Enumeration** | 정의한 고정 옵션 목록에서 선택한 값(아래 참조). |
| **Date** | 날짜 값. |
| **Binary** | base64로 인코딩된 값. |
| **JSON** | 중첩 또는 복합 데이터를 위한 구조화된 JSON 값. |

<Note>
  유형은 속성을 생성할 때 선택하며 **나중에 변경할 수 없습니다**.
  값이 사용자 간에 반복되도록 의도된 **Boolean** 또는 **Enumeration** 속성에는
  **Unique**를 사용할 수 없습니다. **Binary** 값은 base64로 저장되며 크기 제한이 없으므로
  대용량 파일이 아닌 토큰이나 키와 같은 **작은** 값에 사용하세요.
</Note>

### 고정 선택 항목이 있는 속성

일부 속성은 알려진 목록의 값만 허용해야 합니다(부서, 위치, 고용 형태 등). 이러한 속성에는
고정된 **허용 값** 목록(열거형 옵션)을 지정하세요. 각 옵션에는 고유한 표시 이름과
식별자가 있습니다.

고정 선택 속성은 [Auto Groups](/ko/identity/directory/auto-groups)와 자연스럽게
어울리므로 특히 유용합니다. 각 허용 값이 자동으로 계산된 멤버십을 가진 자체 그룹이 될 수
있습니다.

## 카테고리

속성은 "Employment" 또는 "Contact"와 같이 프로필이 그룹화되는 이름이 지정된 섹션인
**카테고리**로 구성됩니다. 각 카테고리에는 표시 이름, 아이콘, 프로필에서의 순서를
제어하는 위치가 있습니다. 관련 속성을 그룹화하면 긴 프로필을 읽기 쉽게 유지하고 스키마를
더 쉽게 관리할 수 있습니다.

<Frame caption="카테고리 추가.">
  <img src="https://mintcdn.com/iru/yv46VZ-WbN1GdStp/assets/media/images/schema-add-category.webp?fit=max&auto=format&n=yv46VZ-WbN1GdStp&q=85&s=7e0973bc1aa36406e83acf65a1f1c572" alt="Display Name, Slug, Icon, Description 필드가 있는 Add Category 대화 상자." width="2000" height="1126" data-path="assets/media/images/schema-add-category.webp" />
</Frame>

## 속성이 사용되는 방식

```mermaid theme={null}
flowchart LR
  attr["프로필 속성"]
  attr -->|"멤버십 계산"| dyn["Auto Groups"]
  attr -->|"매핑 대상"| apps["애플리케이션 로그인<br/>(어설션 및 토큰)"]
  attr -->|"조건으로 사용 가능"| pol["인증 정책"]
```

<CardGroup cols={2}>
  <Card title="Auto Groups 구동" icon="wand-magic-sparkles" href="/ko/identity/directory/auto-groups">
    속성에 플래그를 지정하여 **Auto Groups**를 구동하면 Iru가 해당 값을 프로필이 변경될
    때 멤버십이 업데이트되는 그룹으로 만듭니다.
  </Card>

  <Card title="애플리케이션에 매핑" icon="grip" href="/ko/identity/applications/provisioning">
    애플리케이션은 프로필 속성을 수신하는 어설션 또는 토큰에 매핑하므로 각 앱이
    예상하는 ID 정보를 받습니다.
  </Card>
</CardGroup>

<Tip>
  대규모로 사용자를 가져오기 전에 스키마를 설계하세요. 어떤 속성이 필수, 고유 및 고정
  선택인지 미리 결정하면 가져오기와 HR 동기화가 깔끔하게 반영되고 Auto Groups가 예상대로
  작동합니다.
</Tip>

## 다음 단계

<CardGroup cols={2}>
  <Card title="Auto Groups 구축" icon="wand-magic-sparkles" href="/ko/identity/directory/auto-groups">
    속성을 자동으로 유지되는 그룹으로 만듭니다.
  </Card>

  <Card title="사용자 관리" icon="user" href="/ko/identity/directory/users">
    개별 프로필에서 속성이 실제로 작동하는 모습을 확인합니다.
  </Card>
</CardGroup>
