

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 개별적으로 사용자 가져오기
<a name="importing-users"></a>

 [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)을 완료하여 사용자 데이터세트를 생성한 후에는 한 명 이상의 새 사용자를 데이터세트로 개별적으로 가져올 수 있습니다. 사용자를 개별적으로 가져오면 카탈로그가 확장됨에 따라 소량의 배치 가져오기를 통해 사용자 데이터세트를 최신 상태로 유지할 수 있습니다. 한 번에 최대 10명까지 사용자를 가져올 수 있습니다. 신규 사용자가 많은 경우 먼저 데이터를 대량으로 가져온 다음 필요에 따라 사용자 데이터를 개별적으로 가져오는 것이 좋습니다. [데이터세트 가져오기 작업을 사용하여 대량 데이터를 Amazon Personalize로 가져오기](bulk-data-import-step.md)을(를) 참조하세요.

Personalize 콘솔, AWS Command Line Interface (AWS CLI) 또는 AWS SDKs를 사용하여 사용자를 가져올 수 있습니다. 사용자 데이터세트에 이미 있는 사용자와 동일한 `userId`를 가져오는 경우 Personalize는 새 사용자로 대체합니다. 한 번에 최대 10명까지 사용자를 가져올 수 있습니다.

Personalize가 새 레코드에 대한 필터를 업데이트하는 방법 및 새 레코드가 추천에 미치는 영향에 대한 자세한 내용은 [개별 레코드를 Amazon Personalize 데이터세트로 가져오기](incremental-data-updates.md)단원을 참조하세요.

**Topics**
+ [개별적으로 사용자 가져오기(콘솔)](#importing-users-console)
+ [개별적으로 사용자 가져오기(AWS CLI)](#importing-users-cli)
+ [사용자를 개별적으로 가져오기(AWS SDKs)](#importing-users-sdk)

## 개별적으로 사용자 가져오기(콘솔)
<a name="importing-users-console"></a>

한 번에 최대 10명까지 사용자를 가져올 수 있습니다. 이 절차에서는 사용자 데이터세트를 이미 생성했다고 가정합니다. 데이터세트 생성에 대한 정보는 [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)단원을 참조하세요.

**사용자를 개별적으로 가져오려면(콘솔)**

1. [https://console.aws.amazon.com/acm-pca/home](https://console.aws.amazon.com/personalize/home)에서 Personalize 콘솔을 열고 계정에 로그인합니다.

1. **데이터세트 그룹** 페이지에서 사용자를 가져오려는 사용자 데이터세트가 포함된 데이터세트 그룹을 선택합니다.

1. 탐색 창에서 **데이터세트**를 선택합니다.

1. **데이터세트** 페이지에서, 사용자 데이터세트를 선택합니다.

1. 데이터세트 세부 정보 페이지의 오른쪽 상단에서 **데이터세트 수정**을 선택하고 **레코드 생성**을 선택합니다.

1. **사용자 레코드 생성** 페이지에서 레코드 입력을 위해 사용자 세부 정보를 JSON 형식으로 입력합니다. 사용자의 필드 이름과 값은 사용자 데이터세트를 생성할 때 사용한 스키마와 일치해야 합니다. Personalize는 이 스키마의 필드 이름 및 데이터 유형이 포함된 JSON 템플릿을 제공합니다.

1. **레코드 생성**을 선택합니다. **응답**에서 가져오기 결과가 나열되고 성공 또는 실패 메시지가 표시됩니다.

## 개별적으로 사용자 가져오기(AWS CLI)
<a name="importing-users-cli"></a>

[PutUsers](API_UBS_PutUsers.md) 작업을 사용하여 사용자 데이터세트에 사용자를 한 명 이상 추가합니다. 한 번의 `PutUsers`호출로 최대 10명까지 사용자를 가져올 수 있습니다. 이 단원에서는 사용자 데이터세트를 이미 생성했다고 가정합니다. 데이터세트 생성에 대한 정보는 [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)단원을 참조하세요.

다음 `put-users`명령을 사용하여 AWS CLI로 사용자를 한 명 이상 추가할 수 있습니다. `dataset arn`을 데이터세트의 리소스 이름(ARN)으로 그리고 `user Id`를 사용자 ID로 바꿉니다. 동일한 `userId`가 이미 사용자 데이터세트에 있는 경우 Personalize는 새 사용자로 대체합니다.

예를 들어 `properties`의 경우 사용자 데이터세트의 각 필드에 대해 `propertyName`를 스키마의 필드 이름(낙타 대문자 형식)으로 바꿉니다. 예를 들어 GENDER는 `gender`이 되고, MEMBERSHIP\$1TYPE은 `membershipType`가 될 것입니다. `user data`을 해당 사용자에 대한 데이터로 바꿉니다. 범주형 문자열 데이터의 경우 단일 속성에 여러 범주를 포함시키려면 파이프(`|`)로 각 범주를 구분합니다. 예: `\"Premium Class|Legacy Member\"`.

```
aws personalize-events put-users \
  --dataset-arn dataset arn \
  --users '[{
      "userId": "user Id", 
      "properties": "{\"propertyName\": "\user data\"}" 
    }, 
    {
      "userId": "user Id", 
      "properties": "{\"propertyName\": "\user data\"}" 
    }]'
```

## 사용자를 개별적으로 가져오기(AWS SDKs)
<a name="importing-users-sdk"></a>

[PutUsers](API_UBS_PutUsers.md) 작업을 사용하여 사용자 데이터세트에 사용자를 한 명 이상 추가합니다. 동일한 `userId`가 이미 사용자 데이터세트에 있는 경우 Personalize는 새 사용자로 대체합니다. 한 번의 `PutUsers`호출로 최대 10명까지 사용자를 가져올 수 있습니다. 이 단원에서는 사용자 데이터세트를 이미 생성했다고 가정합니다. 데이터세트 생성에 대한 정보는 [스키마 및 데이터세트 생성](data-prep-creating-datasets.md)단원을 참조하세요.

 다음 코드는 사용자 데이터세트에 사용자를 한 명 이상 추가하는 방법을 보여줍니다. 각 속성 이름 파라미터에 대해 스키마의 필드 이름을 낙타 대문자로 표기하여 전달합니다. 예를 들어 GENDER는 `gender`이 되고, MEMBERSHIP\$1TYPE은 `membershipType`가 될 것입니다. 각 속성 값 파라미터에 대해 해당 사용자에 대한 데이터를 전달합니다.

범주형 문자열 데이터의 경우 단일 속성에 여러 범주를 포함시키려면 파이프(`|`)로 각 범주를 구분합니다. 예: `"Premium class|Legacy Member"`.

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize_events = boto3.client(service_name='personalize-events')

personalize_events.put_users(
    datasetArn = 'dataset arn',
    users = [{
      'userId': 'user ID',
      'properties': "{\"propertyName\": \"user data\"}"   
      },
      {
      'userId': 'user ID',
      'properties': "{\"propertyName\": \"user data\"}"   
      }]
)
```

------
#### [ SDK for Java 2.x ]

```
public static int putUsers(PersonalizeEventsClient personalizeEventsClient,
                         String datasetArn,
                         String user1Id,
                         String user1PropertyName,
                         String user1PropertyValue,
                         String user2Id,
                         String user2PropertyName,
                         String user2PropertyValue) {

    int responseCode = 0;
    ArrayList<User> users = new ArrayList<>();

    try {
        User user1 = User.builder()
          .userId(user1Id)
          .properties(String.format("{\"%1$s\": \"%2$s\"}", user1PropertyName, user1PropertyValue))
          .build();

        users.add(user1);

        User user2 = User.builder()
          .userId(user2Id)
          .properties(String.format("{\"%1$s\": \"%2$s\"}", user2PropertyName, user2PropertyValue))
          .build();

        users.add(user2);

        PutUsersRequest putUsersRequest = PutUsersRequest.builder()
          .datasetArn(datasetArn)
          .build();

        responseCode = personalizeEventsClient.putUsers(putUsersRequest).sdkHttpResponse().statusCode();
        System.out.println("Response code: " + responseCode);
        return responseCode;

    } catch (PersonalizeEventsException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
    return responseCode;
}
```

------
#### [ SDK for JavaScript v3 ]

```
import {
  PutUsersCommand,
  PersonalizeEventsClient,
} from "@aws-sdk/client-personalize-events";

const personalizeEventsClient = new PersonalizeEventsClient({
  region: "REGION",
});

// set the put users parameters
var putUsersParam = {
  datasetArn:
    "DATASET ARN",
  users: [
    {
      userId: "userId",
      properties: '{"column1Name": "value", "column2Name": "value"}',
    },
    {
      userId: "userId",
      properties: '{"column1Name": "value", "column2Name": "value"}',
    },
  ],
};
export const run = async () => {
  try {
    const response = await personalizeEventsClient.send(
      new PutUsersCommand(putUsersParam)
    );
    console.log("Success!", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------