---
title: "서비스 주기 학습 요청"
slug: "ai-application-service-aitems-service-intervallearning"
updated: 2026-04-23T08:55:41Z
published: 2026-04-23T09:02:17Z
canonical: "api.ncloud-docs.com/ai-application-service-aitems-service-intervallearning"
---

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

# 서비스 주기 학습 요청

<p class="platform-info type-classic-vpc">Classic/VPC 환경에서 이용 가능합니다.</p>

서비스 타입이 `interval`인 서비스가 데이터셋 학습을 주기적으로 진행하도록 요청합니다.

## 요청<a name="요청"></a>
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

| 메서드 | URI |
| :--- | :--- |
| PUT | /services/{serviceId}/schedule |

### 요청 헤더<a name="요청헤더"></a>
AiTEMS API에서 공통으로 사용하는 헤더에 대한 정보는 [AiTEMS 요청 헤더](/docs/aitems-overview#요청헤더)를 참조해 주십시오.

### 요청 경로 파라미터<a name="요청경로파라미터"></a>
요청 경로 파라미터에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| :---- | :---- | :---- | :---- |
| `serviceId` | String | Required | 서비스 ID<ul><li>[서비스 목록 조회](/docs/ai-application-service-aitems-service-list) 참조</li><li>`type`이 `interval`인 서비스의 ID만 입력 가능</li></ul> |

### 요청 쿼리 파라미터<a name="요청쿼리파라미터"></a>
요청 쿼리 파라미터에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| :---- | :---- | :---- | :---- |
| `action` | String | Required | 주기 학습 실행 여부<ul><li>`start` \| `stop`<ul><li>`start`: 주기 학습 실행</li><li>`stop`: 주기 학습 정지</li></ul></li></ul> |

### 요청 바디<a name="요청바디"></a>
요청 바디에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| :---- | :---- | :---- | :---- |
| `trainTypes` | Array | Required | 학습 요청 타입<ul><li>`personalRecommend` \| `relatedItem` \| `pop`<ul><li>`personalRecommend`: 고객 서비스 이용자의 과거 이력을 바탕으로 개인별 추천</li><li>`relatedItem`: 아이템의 연관 이력을 바탕으로 개인별 추천</li><li>`pop`: 순위별 인기 아이템 추천</li></ul></li></ul> |
| `description` | String | Optional | 학습에 대한 설명 |
| `hpConfig` | Object | Required | HPO (Hyperparameter Optimization) 설정 정보 |
| `hpConfig.is_enabled` | Boolean | Required | HPO 설정 여부<ul><li>`true` \| `false`<ul><li>`true`: HPO 설정. 최적의 훈련 모델 구현 가능.</li><li>`false`: HPO 설정 안 함. AiTEMS 내부의 자체 알고리즘으로 학습.</li></ul></li></ul> |
| `hpConfig.{option}` | String, Long, Boolean | Optional | 설정된 HPO 값<ul><li>HPO 값 정보는 [HPO](#HPO) 참조</li></ul> |

#### HPO<a name="HPO"></a>
설정 가능한 HPO 값에 대한 설명은 다음과 같습니다.

| 옵션명 | 타입 | 필수 여부 | 학습 타입 | 설명 |
| :--- | :--- | :--- | :--- | :--- |
| `session_max_timestamp` | Long | Optional | 개인화 추천, 연관 항목 추천 | 동일 세션으로 간주할 액션 간의 최대 유휴 시간(초)<ul><li>10~86,400 (기본값: 1,800)</li><li>1,800 이상으로 설정할 것을 권장</li></ul> |
| `item_top_n` | Long | Optional | 개인화 추천, 연관 항목 추천 | 추천에 활용할 최대 상품 개수<ul><li>인기순으로 활용</li><li>1,000~500,000 (기본값: 20,000)</li></ul> |
| `min_item_cut` | Long | Optional | 개인화 추천, 연관 항목 추천 | 상품 최소 등장 조건 횟수<ul><li>1~1,000 (기본값: 5)</li></ul> |
| `min_session_length` | Long | Optional | 개인화 추천, 연관 항목 추천 | 세션 내 최소 액션 횟수<ul><li>2~1,000 (기본값: 2)</li></ul> |
| `max_user_recommend_top` | Long | Optional | 개인화 추천 | 유저당 최대 추천 상품 개수<ul><li>1~1,000 (기본값: 100)</li></ul> |
| `max_relate_recommend_top` | Long | Optional | 연관 항목 추천 | 상품당 최대 연관 항목 추천 상품 개수<ul><li>1~1,000 (기본값: 100)</li></ul> |
| `remove_history_item` | Boolean | Optional | 개인화 추천, 연관 항목 추천 | 이전에 추천된 상품을 개인화 추천 목록에서 제거할지 여부<ul><li>`true` \| `false` (기본값)<ul><li>`true`: 이전에 추천된 상품을 추천 목록에서 제거</li><li>`false`: 이전에 추천된 상품도 개인화 추천 목록에 포함</li></ul></li></ul> |
| `group_column` | Array<String> | Required | 인기 항목 추천 | 인기 추출 그룹 컬럼 목록<ul><li>USER_ID, ITEM_ID, TIMESTAMP 선택 불가</li></ul> |
| `target_column` | String | Optional | 인기 항목 추천 | 인기 추출 대상 컬럼<ul><li>USER_ID, ITEM_ID, TIMESTAMP 입력 불가</li><li>최대 100개까지 입력 가능</li></ul> |
| `max_group_recommend_top` | Long | Optional | 인기 항목 추천 | 그룹당 최대 인기 상품 개수<ul><li>1~1,000 (기본값: 100)</li></ul> |

### 요청 예시<a name="요청예시"></a>
요청 예시는 다음과 같습니다.

```shell
curl --location --request PUT 'https://aitems.apigw.ntruss.com/api/v1/services/6wxgu******/schedule?action=start' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--data '{
    "trainTypes": [
        "pop"
    ],
    "hpConfig": {
        "is_enabled": false
    }
}'
```

## 응답<a name="응답"></a>
응답 형식을 설명합니다.

### 응답 바디<a name="응답바디"></a>
응답 바디에 대한 설명은 다음과 같습니다. 

| 필드 | 타입 | 필수 여부 | 설명 |
| :---- | :---- | :---- | :---- |
| `serviceId` | String | - | 서비스 ID |
| `name` | String | - | 서비스 이름 |
| `description` | String  | - | 서비스에 대한 설명 |
| `status` | String | - | 서비스 상태<ul><li>`scheduled` \| `scheduledLearning` \| `learnable` \| `learning` \| `deleting` \| `deleted` \| `disable` \| `drafted` \| `requestLearning` \| `datasetRequired`<ul><li>`scheduled`: 예약됨</li><li>`scheduledLearning`: 예약된 학습 중</li><li>`learnable`: 학습 가능</li><li>`learning`: 학습 진행 중</li><li>`deleting`: 삭제 중</li><li>`deleted`: 삭제됨</li><li>`disable`: 학습 불가</li><li>`drafted`: 임시 저장 상태</li><li>`requestLearning`: 학습 요청 상태</li><li>`datasetRequired`: 서비스 생성 후 데이터셋을 지정하지 않은 상태</li></ul></li></ul> |
| `datasets` | Array | - | 서비스에 설정된 데이터셋 정보: [datasets](#datasets) |
| `hpConfig` | Object | - | HPO (Hyperparameter Optimization) 설정 정보 |
| `hpConfig.is_enabled` | Boolean | - | HPO 설정 여부<ul><li>`true` \| `false`<ul><li>`true`: HPO 설정. 최적의 훈련 모델 구현 가능.</li><li>`false`: HPO 설정 안함. AiTEMS 내부의 자체 알고리즘으로 학습.</li></ul></li></ul> |
| `hpConfig.{option}` | String, Long, Boolean | - | 설정된 HPO 값<ul><li>값에 대한 세부 정보는 [HPO](#HPO) 참조</li></ul> |
| `infers` | Array | - | 학습 결과 정보: [infers](#infers)<ul><li>`type`이 `interval`인 경우에만 표시</li></ul> |
| `createdDate` | String | - | 서비스 생성 일시 |
| `updatedDate` | String | - | 서비스 최종 업데이트 일시 |
| `type` | String | - | 서비스 타입<ul><li>`batch` \| `interval`<ul><li>`batch`: 학습 진행 시 1회 학습</li><li>`interval`: 학습 진행 후 일정 주기로 재학습</li></ul></li></ul> |
| `learningInterval` | String | - | 데이터셋 업데이트 주기 |
| `scheduledDate` | String | - | 데이터셋 업데이트 예약 시간 |

#### `datasets` <a name="datasets"></a>
`datasets`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| :---- | :---- | :---- | :---- |
| `datasetId` | String | - | 서비스에 설정된 데이터셋 ID |
| `type` | String | - | 서비스에 설정된 데이터셋 타입<ul><li>`user` \| `item` \| `interaction`<ul><li>`user`: 사용자 정보(연령, 성별 등)를 담은 데이터</li><li>`item`: 상품 관련 정보(가격, 출시일, 카테고리 등)를 담은 데이터</li><li>`interaction`: 사용자와 상품 간 상호작용으로 얻은 기록을 담은 데이터</li></ul></li></ul> |
| `name` | String | - | 서비스에 설정된 데이터셋 이름 |
| `schemaName` | String | - | 서비스에 설정된 데이터셋 스키마 이름 |
| `status` | String | - | 서비스에 설정된 데이터셋 상태<ul><li>`learnable` \| `disable` \| `uploading` \| `updateRequired`<ul><li>`learnable`: 학습 가능</li><li>`disable`: 학습 불가</li><li>`uploading`: 업로드 중</li><li>`updatedRequired`: 업데이트된 데이터셋 등록 필요(학습 시 자동으로 등록됨)</li></ul></li></ul> |
| `createdDate` | String | - | 서비스에 설정된 데이터셋 생성 일시 |
| `updatedDate` | String | - | 서비스에 설정된 데이터셋 최종 업데이트 일시 |

#### `infers` <a name="infers"></a>
`infers`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| :---- | :---- | :---- | :---- |
| `dataType` | String | - | 학습 결과 데이터셋 타입<ul><li>`user` \| `item` \| `interaction`<ul><li>`user`: 사용자 정보(연령, 성별 등)를 담은 데이터</li><li>`item`: 상품 관련 정보(가격, 출시일, 카테고리 등)를 담은 데이터</li><li>`interaction`: 사용자와 상품 간 상호작용으로 얻은 기록을 담은 데이터</li></ul></li></ul> |
| `trainVersion` | String | - | 학습 결과 버전 |
| `status` | String | - | 학습 결과 상태<ul><li>`enable` \| `waiting` \| `pending` \| `processing` \| `updateFailed` \| `disable`<ul><li>`enable`: 업데이트 가능</li><li>`waiting`: 업데이트 대기 중</li><li>`pending`: 업데이트 대기 중</li><li>`processing`: 업데이트 중</li><li>`updateFailed`: 업데이트 실패</li><li>`disable`: 업데이트 불가</li></ul></li></ul> |
| `rowCount` | String | - | 결과 데이터 개수 |
| `createdDate` | String | - | 데이터 생성 일시 |
| `updatedDate` | String | - | 데이터 최종 업데이트 일시 |

### 응답 상태 코드<a name="응답상태코드"></a>
AiTEMS API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [AiTEMS 응답 상태 코드](/docs/aitems-overview#응답상태코드)를 참조해 주십시오.

### 응답 예시 <a name="응답예시"></a>
응답 예시는 다음과 같습니다.

```json
{
    "serviceId": "6wxgu******",
    "name": "service2",
    "description": "",
    "status": "scheduled",
    "datasets": [
        {
            "datasetId": "bu457******",
            "type": "interaction",
            "name": "interaction_dataset",
            "schemaName": "interaction_schema",
            "status": "learnable",
            "createdDate": "2024-07-30T09:49:19.254",
            "updatedDate": "2024-07-30T09:49:35.364"
        },
        {
            "datasetId": "g8rf6******",
            "type": "item",
            "name": "item_dataset",
            "schemaName": "item_schema",
            "status": "learnable",
            "createdDate": "2024-07-29T16:46:35.968",
            "updatedDate": "2024-07-30T08:57:35.209"
        },
        {
            "datasetId": "oeq4i******",
            "type": "user",
            "name": "user_dataset",
            "schemaName": "user_schema",
            "status": "learnable",
            "createdDate": "2024-07-30T08:58:00.662",
            "updatedDate": "2024-07-30T08:58:35.205"
        }
    ],
    "hpConfig": {
        "is_enabled": false
    },
    "infers": [],
    "createdDate": "2024-07-30T10:28:57.825",
    "updatedDate": "2024-07-30T10:29:21.550",
    "type": "interval",
    "learningInterval": "hour1",
    "scheduledDate": "2024-07-30T11:25:36.558"
}
```
