> ## 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.

# 속성 매핑

> 연결된 디렉터리 소스의 필드를 Iru Identity 프로필 속성에 매핑하고, 값이 사용자 프로필에 도달하기 전에 IQL 표현식을 사용하여 변환합니다.

Iru가 연결된 소스에서 사용자를 읽을 때는 어떤 수신 필드가 어떤 Iru 프로필 속성을
채우는지, 그리고 경우에 따라 그 과정에서 값을 어떻게 변형할지 알아야 합니다. 이는
**속성 매핑**으로 설명합니다. 각 Iru 프로필 속성에 대해 소스 필드에서 값을 생성하는
**표현식**을 작성합니다.

<Note>
  **속성 매핑이 적용되는 위치.** 속성 매핑은 **소스 시스템을 연결**할 때
  작성합니다([Workday](/ko/identity/directory/hris-workday)
  및 [BambooHR](/ko/identity/directory/hris-bamboohr) 커넥터는 매핑할 자체 필드를
  제공합니다). [CSV 가져오기](/ko/identity/directory/importing-users)에는 적용되지
  **않습니다**. CSV는 미리 정의된 고정 열 집합을 사용하므로 작성할 표현식이 없습니다.
</Note>

<Info>
  매핑 표현식은 Iru가 [애플리케이션 클레임 및 속성
  매핑](/ko/identity/getting-started/iql-expressions), Auto Group 규칙 및 목록 필터에
  사용하는 것과 동일한 표현식 언어인 **IQL**로 작성합니다. 여기서는 연결된
  **소스 시스템**의 필드를 디렉터리의 [프로필 속성](/ko/identity/directory/schema)에
  매핑합니다. 전체 구문은 [IQL 표현식](/ko/identity/getting-started/iql-expressions)을
  참조하세요.
</Info>

## 매핑 작동 방식

매핑의 각 행은 하나의 **대상**(Iru 프로필 속성)과 **소스** 필드에서 값을 가져오는
**표현식**을 짝지어 줍니다.

```mermaid theme={null}
flowchart LR
  subgraph source["소스 필드"]
    a["first_name"]
    b["email_work"]
  end
  expr["IQL 표현식"] --> target["Iru 프로필 속성"]
  a --> expr
  b --> expr
```

<Steps>
  <Step title="소스 필드 검색">
    Iru는 소스에서 사용할 수 있는 필드 집합을 읽습니다. 이 필드 이름이 표현식에서
    참조할 수 있는 **식별자**가 됩니다. 검색이 설정에 어떻게 포함되는지는
    [Directory Sync](/ko/identity/directory/directory-sync)를 참조하세요.
  </Step>

  <Step title="속성별 표현식 작성">
    채우려는 각 Iru 속성에 대해 IQL 표현식을 작성합니다. 유효한 필드 이름은
    단독으로 사용할 수 있습니다. 다른 이름은 `__source`에서 조회합니다.
    더 긴 표현식은 이러한 값을 결합하거나 변환합니다.
  </Step>

  <Step title="Iru가 유효성 검사">
    표현식은 입력하는 동안과 저장할 때 다시 검사되므로, 실수(알 수 없는 필드,
    유형 오류)가 동기화에 도달하기 전에 드러납니다.
  </Step>

  <Step title="모든 동기화에서 실행">
    동기화가 실행되면 Iru는 수신 행에 대해 각 표현식을 평가하고 결과를 속성에
    기록합니다.
  </Step>
</Steps>

<Tip>
  소스 레코드를 Iru 사용자와 연결하는 식별자로 안정적이고 고유한 소스 필드 하나를
  선택하여 각 동기화가 정확히 한 명의 사용자로 확인되도록 하세요.
</Tip>

## 표현식 작성

표현식은 소스 필드를 참조하고 이를 변환할 수 있습니다. 대/소문자 변환, 분할,
연결, 목록 항목 선택 등이 가능합니다. 전체 참조(객체, 함수, 연산자 및 예제)는
동일한 언어가 디렉터리 매핑과 애플리케이션 매핑 모두에 사용되므로
[IQL 표현식](/ko/identity/getting-started/iql-expressions) 페이지에 있습니다.

필드 이름이 유효한 IQL 식별자이면 단독으로 사용할 수 있습니다. 유효한 식별자는
ASCII 문자 또는 밑줄로 시작하고 나머지는 ASCII 문자, 숫자, 밑줄로 구성됩니다.
`prénom`과 같은 이름은 이 범위를 벗어나므로 `__source`에서 읽습니다.

```
// Use a field as-is
work_email

// Combine fields into a display name
first_name + " " + last_name

// The local part of an email, before the @
work_email.split("@")[0]
```

이름에 공백, 하이픈, 콜론 또는 기타 기호가 있거나 `in`, `null`, `true`, `if`와 같은
IQL 키워드인 경우 `__source`에서 정확한 이름으로 조회하세요. `__source`는 소스의 모든
필드에 대한 맵입니다. 유효한 이름 사이의 점은 `name.givenName`처럼 중첩된 값에
접근합니다. 점이 포함된 필드 이름은 여전히 하나의 키입니다: `__source["name.givenName"]`.
그대로 작성하면 `Email - Work`는 뺄셈이 되고 `in`은 멤버십 연산자가 됩니다.

```
__source["Email - Work"]
__source["Email - Work"].lowerAscii()
```

매핑 편집기는 이러한 필드를 선택하거나 입력할 때 `__source["…"]`로 다시 작성합니다.
유효한 이름은 그대로 유지됩니다. 유효한 이름에도 `__source["…"]`를 사용할 수
있습니다. 이름에 `"` 또는 `\`가 포함된 경우 `__source["Title \"Legal\""]`처럼 괄호 안에서
각 문자 앞에 백슬래시를 넣으세요. 편집기는 필드를 다시 작성할 때 해당 이스케이프를
추가합니다. Mapping 탭에서 이것이 어떻게 작동하는지는
[IQL로 값 변환](/ko/identity/directory/directory-sync#transform-values-with-iql)을
참조하세요.

## 비어 있는 매핑 값

비어 있거나 null인 매핑 값은 해당 사용자 지정 속성의 기존 값을 지웁니다.
동기화는 계속됩니다.

**Boolean**, **Date**, **Integer** 또는 **Decimal** 사용자 지정 속성의 경우 비어 있거나
null인 매핑 값으로 인해 동기화가 실패하지 않습니다. 이메일 분할처럼 비어 있을 수 있는
텍스트 필드를 변환할 때는
[Mapping 탭](/ko/identity/directory/directory-sync#transform-values-with-iql)에서 값을
보호하세요.

## 다음 단계

<CardGroup cols={2}>
  <Card title="IQL 표현식" icon="brackets-curly" href="/ko/identity/getting-started/iql-expressions">
    전체 IQL 참조: 객체, 함수, 연산자 및 예제.
  </Card>

  <Card title="디렉터리 동기화" icon="building-user" href="/ko/identity/directory/directory-sync">
    HR 시스템을 연결하고 이러한 표현식이 사용되는 매핑을 설정합니다.
  </Card>

  <Card title="프로필 속성" icon="table-list" href="/ko/identity/directory/schema">
    표현식이 기록하는 대상입니다.
  </Card>

  <Card title="자동 그룹" icon="wand-magic-sparkles" href="/ko/identity/directory/auto-groups">
    디렉터리에서 속성이 자동화를 구동하는 또 다른 곳입니다.
  </Card>
</CardGroup>
