이 문서에서는 NHN Cloud Foundry 콘솔에서 데이터 소스, 파이프라인, 분석(쿼리·차트·대시보드), 앱을 관리하는 방법을 설명합니다.
설정 항목 표의 필수 열은 다음을 의미합니다.
O: 반드시 입력해야 하는 항목X: 선택 항목O*: 다른 설정 값에 따라 필수 여부가 달라지는 항목콘솔 경로: Machine Learning > NHN Cloud Foundry > 현황 탭
현황 탭에서 서비스 활성화 상태와 테넌트 설정을 확인합니다. 서비스를 사용하려면 먼저 이 탭에서 활성화 상태를 확인하고, 활성화되어 있지 않다면 활성화를 신청해야 합니다.
서비스 활성화는 콘솔에서 직접 수행할 수 없습니다. 1:1 문의로 원하는 리소스 크기를 포함해서 문의하세요. 신청한 클러스터가 생성되면 데이터 소스 생성부터 순서대로 사용할 수 있습니다.
리소스 크기별로 사용할 수 있는 기능은 다음과 같습니다.
| 값 | 설명 |
|---|---|
| SMALL | 기본 리소스: 데이터 소스, 공통 기능, 차트 쿼리 사용 가능 |
| MEDIUM | 기본 + 데이터 파이프라인 추가 사용 가능 |
| LARGE | 기본 + AI 앱 사용 가능 |
| XLARGE | 모든 기능 사용 가능(데이터 파이프라인 + AI 앱) |
활성화된 후에는 현황 탭에서 다음 정보를 확인할 수 있습니다.
| 항목 | 설명 |
|---|---|
| 서비스 상태 | 현재 서비스의 활성화 상태 |
| 테넌트 도메인 | 서비스에 접근할 때 사용하는 도메인 |
주의
서비스를 비활성화하면 생성되었던 모든 리소스가 삭제되며, 이 작업은 되돌릴 수 없습니다.
콘솔 경로: Machine Learning > NHN Cloud Foundry > 데이터 소스 탭
데이터 소스는 NHN Cloud Foundry에서 분석할 데이터를 저장하는 단위입니다. 데이터 소스의 생성, 조회, 삭제는 콘솔에서 수행합니다.
주의
본 서비스 이용 시 개인정보가 포함된 정보를 입력하지 않도록 유의하세요. 본 서비스는 고객이 입력하는 개인정보에 대한 별도의 안전성 확보조치를 제공하지 않으므로, 개인정보가 포함된 정보의 입력과 저장을 삼가 주세요.
데이터 소스 목록 화면에서 다음 정보를 확인할 수 있습니다.
| 칼럼 | 설명 |
|---|---|
| 타입 | 데이터 소스의 종류 |
| 데이터 소스 이름 | 데이터 소스를 식별하는 이름 |
| 테이블 이름 | 데이터가 저장되는 테이블 이름 |
| 상태 | 데이터 소스의 현재 상태 |
| 데이터양 | 적재된 데이터의 행 수 |
| 생성일 | 데이터 소스가 생성된 일시 |
| 자세히 | 돋보기 아이콘 클릭 시 상세 정보 조회 |
타입:
| 값 | 설명 |
|---|---|
| 파일 | 업로드한 CSV 파일로 만든 데이터 소스 |
| 추천 | 추천 결과가 저장되는 데이터 소스 |
| 데이터셋 | 파이프라인이 생성한 데이터 소스 |
상태:
| 값 | 설명 |
|---|---|
| INITIALIZING | 데이터 소스 초기화 중 |
| PROCESSING | 데이터 처리 중 |
| INGESTING | 데이터 적재 중 |
| COMPLETED | 데이터 소스 처리 완료 |
| FAILED | 데이터 소스 처리 실패 |
| DELETING | 데이터 소스 삭제 중 |
타입이 파일인 데이터 소스는 최근 파일 업로드 결과가 상태 옆에 아이콘으로 함께 표시됩니다.
| 값 | 설명 |
|---|---|
| 반영 중 | 최근 업로드한 파일 반영 중 |
| 확인 권장 | 최근 업로드한 파일은 반영되었으나 확인할 항목 있음. 데이터 소스 상세에서 내용 확인 필요 |
| 확인 필요 | 데이터 소스는 사용 가능하나 최근 업로드한 파일은 미반영. 파일 확인 후 다시 업로드 필요 |
알아두기
타입이 추천, 데이터셋인 항목은 사용자가 직접 생성할 수 없습니다. 추천은 추천 시스템 앱을 생성할 때, 데이터셋은 파이프라인을 실행할 때 자동으로 생성됩니다.
데이터 소스 생성 버튼을 클릭하면 생성 모달이 열립니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 데이터 소스 이름 | O | 한글, 일본어, 영문, 숫자, 공백, -, _ 사용(1~64자) |
| 테이블 이름 | O | 영문 소문자, 숫자, _ 사용(1~64자). 숫자로 시작 불가, SQL 예약어 사용 불가 |
| 설명 | X | 데이터 소스 설명 |
이미 사용 중인 데이터 소스 이름과 테이블 이름은 사용할 수 없습니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| CSV 파일 | X | 파일 선택 버튼으로 업로드할 CSV 파일 선택(최대 100MB) |
| 헤더 설정 | X | 첫 번째 행이 헤더입니다 체크 시 CSV 첫 행을 칼럼 이름으로 사용 |
| 기본 키 필드 | X | 행을 구분하는 칼럼을 드롭다운으로 지정 |
| 스키마 | O | 데이터의 필드 이름과 타입 정의 |
기본 키 필드는 다음과 같이 지정합니다.
스키마는 다음 방법으로 입력합니다.
스키마 JSON 형식 예시:
[
{ "fieldName": "hostname", "fieldType": "string" },
{ "fieldName": "portName", "fieldType": "string" },
{ "fieldName": "trafficIn", "fieldType": "double" },
{ "fieldName": "eventTimestamp", "fieldType": "timestamp" }
]
지원하는 필드 타입:
| 값 | 설명 |
|---|---|
| boolean | 불리언 |
| int | 정수(32bit) |
| long | 정수(64bit) |
| float | 실수(32bit) |
| double | 실수(64bit) |
| string | 문자열 |
| timestamp | 타임스탬프 |
| datetime | 날짜시간(YYYY-MM-DD HH:MM:SS) |
| date | 날짜 |
| array | 배열(기본) |
| array<double> | double 배열 |
| array<int> | int 배열 |
| array<string> | string 배열(추천 모델용) |
| array<float> | float 배열(추천 모델용) |
주의
예약 필드 이름 system_eventTimestamp는 사용할 수 없습니다.
설정 완료 후 추가 버튼을 클릭하면 데이터 소스가 생성됩니다.
목록에서 삭제할 데이터 소스를 체크박스로 선택한 후 삭제 버튼을 클릭합니다.
자세히 보기는 다음 탭으로 구성됩니다.
| 탭 | 설명 |
|---|---|
| 연결 정보 | 데이터 소스 ID, 데이터 소스 이름, 테이블 이름, 타입, 설명, 상태 |
| 카탈로그 | 필드 이름과 자료형 목록 조회, 필드 추가 |
데이터 소스 이름과 테이블 이름은 생성 후 변경할 수 없습니다. 적재된 데이터는 새 CSV 파일로 갱신하며, 필드는 추가할 수 있습니다.
목록에서 타입이 파일인 데이터 소스 행의 더보기(⋯) 메뉴에서 CSV로 수정하기를 클릭합니다.
업로드가 제한되는 경우는 다음과 같습니다.
| 상황 | 안내 |
|---|---|
| 파일의 칼럼 수가 기존 칼럼 수보다 많음 | 카탈로그에 필드를 먼저 추가한 뒤 다시 업로드 |
| 카탈로그에 없는 칼럼이 포함됨 | 카탈로그에 필드를 먼저 추가한 뒤 다시 업로드 |
| 헤더 설정과 파일의 첫 행이 어긋남 | 칼럼 이름 행이 있는 파일로 올리거나 데이터 소스의 헤더 설정 변경 |
자세히 보기의 카탈로그 탭에서 필드 추가 버튼을 클릭합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 필드 이름 | O | 영문자 또는 _로 시작하고 영문자, 숫자, _만 사용 |
| 타입 | O | 스키마에서 지원하는 필드 타입 중 선택 |
| 설명 | X | 필드 설명 |
알아두기
콘솔뿐 아니라 API로도 데이터를 갱신할 수 있습니다. 사용 방법은 API 가이드의 'Ingest API'를 참고합니다.
콘솔 경로: Machine Learning > NHN Cloud Foundry > 파이프라인 탭
파이프라인은 데이터 소스의 데이터를 노드를 연결한 워크플로우로 처리하여 분석 가능한 데이터셋으로 변환하는 기능입니다.
파이프라인 메뉴에 진입하면 생성된 파이프라인 목록이 테이블 형태로 표시됩니다.
| 칼럼 | 설명 |
|---|---|
| 체크박스 | 파이프라인 선택 |
| 활성화 | 활성화 여부 아이콘 |
| 파이프라인 이름 | 파이프라인을 식별하는 이름 |
| 배치 스케줄 | 설정된 스케줄. 미설정 시 하이픈으로 표시 |
| 시작 일시 | 스케줄 시작 일시 |
| 종료 일시 | 스케줄 종료 일시 |
| 마지막 실행 일자 | 가장 최근 실행 일시 |
| 파이프라인 상태 | 파이프라인의 현재 상태 |
| 수동 실행 | 실행 버튼 |
툴바에서 파이프라인 생성, 수정, 삭제, 활성화, 비활성화를 수행할 수 있습니다. 활성화와 비활성화는 더보기(⋯) 메뉴에 있습니다.
우측 설정 패널에서 기본 정보를 입력합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 파이프라인 이름 | O | 파이프라인을 식별하는 이름(최대 30자). 한글, 일본어, 영문, 숫자, 공백, -, _ 사용 |
| 파이프라인 설명 | X | 파이프라인 부가 설명(최대 255자) |
| 태그 | X | 분류를 위한 태그(최대 10개, 각 50자) |
생성 버튼을 클릭하면 파이프라인이 초안 상태로 생성됩니다.
주의
활성화된 파이프라인의 설정을 저장하면 파이프라인이 비활성화됩니다. 실행 버튼을 눌러 빌드하면 자동으로 활성화됩니다.
파이프라인 생성/편집 시 진입하는 메인 편집 화면입니다.
상태 배지에 마우스를 올리면 툴팁으로 상세 설명을 확인할 수 있습니다.
| 값 | 설명 |
|---|---|
| 초안 | 파이프라인이 생성되고 노드가 없는 상태 |
| 수정됨 | 파이프라인 설정이 변경되어 다시 빌드(실행)가 필요한 상태 |
| 빌드 중 | 파이프라인 빌드 중 |
| 대기 | 파이프라인 빌드가 완료되어 실행 준비가 된 상태 |
| 실행 중 | 파이프라인 실행 중 |
| 완료 | 파이프라인 실행 정상 완료 |
| 실패 | 파이프라인 실행 중지 또는 오류 발생 |
| 종료됨 | 사용자가 파이프라인 실행을 중지한 상태 |
| 삭제 중 | 파이프라인 삭제 중 |
파이프라인은 아래 5종류의 노드를 조합하여 구성합니다.
| 노드 타입 | 역할 | 입력 | 출력 | 설명 |
|---|---|---|---|---|
| Source(소스 노드) | 데이터 원본 | 없음 | 데이터 | 외부 데이터 소스를 연결 |
| Transform(변환 노드) | 데이터 가공 | 데이터 | 변환된 데이터 | 필터, 파생 칼럼, 집계, 라벨 인코딩 등 |
| Join(조인 노드) | 테이블 결합 | 2개 데이터 | 결합된 데이터 | Inner/Left/Right/Full Outer/Semi/Anti 조인 |
| Union(유니온 노드) | 테이블 합치기 | 2개 데이터 | 합쳐진 데이터 | Full Merge/Intersect Merge/Left-First Merge |
| Dataset(출력 노드) | 출력 테이블 | 데이터 | 없음 | 테이블로 결과 저장(최종 노드) |
연결 제약 사항:
주의
저장할 때 파이프라인 구성을 검사합니다. 모든 노드는 하나의 흐름으로 연결되어야 하며(연결되지 않은 노드 불가), 흐름의 마지막 노드는 1개의 DATASET 노드여야 합니다.
| 값 | 설명 |
|---|---|
| FILE | CSV 파일 데이터 소스 |
| 추천 | 추천 결과 저장소 |
| 데이터셋 | 파이프라인의 데이터셋 노드가 생성한 데이터. 다른 파이프라인의 입력으로 재사용 가능 |
변환 작업마다 노드 이름(최대 30자, 한글·일본어·영문·숫자·공백·-·_)을 지정하며, 한 노드에 여러 변환 작업을 추가하면 순서대로 연결된 노드가 생성됩니다.
지원하는 변환 메서드는 다음과 같습니다.
| 분류 | 메서드 | 설명 |
|---|---|---|
| Row(행 단위 연산) | Filter | 조건에 맞는 행만 추출 |
| Row(행 단위 연산) | Explode | 구분자 문자열을 행으로 분해 |
| Row(행 단위 연산) | Derive | 화이트리스트 함수로 파생 칼럼 생성 |
| Aggregation(집계 연산) | Aggregate | 그룹화 및 집계 |
| Window(윈도우 연산) | Rank Top N | 글로벌 정렬 + 상위 N 건 |
| Column(칼럼 연산) | Label Encode FIT | 카테고리 → 정수 매핑 테이블 생성 |
| Column(칼럼 연산) | Label Encode Apply | 매핑 테이블로 인코딩 적용 |
| LLM(LLM 기반 연산) | Classify | LLM으로 텍스트를 카테고리로 분류 |
| 값 | 설명 | 예시 |
|---|---|---|
| = | 같음 | field = 'value' |
| ≠ | 같지 않음 | field ≠ 'value' |
| > | 초과 | field > 100 |
| ≥ | 이상 | field ≥ 100 |
| < | 미만 | field < 100 |
| ≤ | 이하 | field ≤ 100 |
| LIKE | 패턴 매칭 | field LIKE '%keyword%' |
| IN | 목록 포함 | field IN ('a', 'b', 'c') |
| IS NULL | NULL 여부 | field IS NULL |
| IS NOT NULL | NOT NULL 여부 | field IS NOT NULL |
선택한 칼럼의 타입에 따라 사용 가능한 연산자만 표시됩니다.
| 칼럼 타입 | 사용 가능한 연산자 |
|---|---|
| 문자열 | =, ≠, LIKE, IN, IS NULL, IS NOT NULL |
| 숫자 | =, ≠, >, ≥, <, ≤, IN, IS NULL, IS NOT NULL |
| 날짜/시간 | =, ≠, >, ≥, <, ≤, IS NULL, IS NOT NULL |
| 불리언 | =, ≠, IS NULL, IS NOT NULL |
비교할 값은 직접 입력, 시간(현재 기준), 다른 칼럼 중에서 선택합니다.
논리 연산자는 AND, OR를 지원하며, 그룹 추가 버튼으로 조건을 최대 3단계까지 묶을 수 있습니다.
구분자로 이어진 문자열 칼럼을 토큰마다 별도의 행으로 분해합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 분해할 칼럼 | O | 구분자로 이어진 문자열이 담긴 칼럼 |
| 출력 칼럼 이름 | O | 분해된 각 토큰을 담을 칼럼 이름 |
| 구분자 | O | 기본값은 쉼표(,) |
| 공백 제거 | X | ON이면 각 토큰의 앞뒤 공백을 제거 |
| 빈 토큰 제거 | X | ON이면 분해 후 빈 문자열 토큰을 행에서 제외 |
| 출력 타입 | X | STRING, BIGINT, INT, DOUBLE. 미지정 시 STRING |
| 유지할 원본 칼럼 | X | 결과에 포함할 원본 칼럼. 선택하지 않으면 모든 원본 칼럼이 유지 |
\., \|).제공되는 함수를 사용하여 기존 칼럼에서 새로운 칼럼을 만듭니다. 파생 칼럼 추가 버튼으로 정의를 여러 개 추가할 수 있으며, 각 정의마다 함수와 파생 칼럼 이름을 지정합니다.
| 값 | 설명 | 추가 설정 |
|---|---|---|
| DATE_BUCKET | 날짜 버킷(epoch ms → 지정 타임존 날짜) | 소스 칼럼, 타임존(예: Asia/Seoul) |
| JSON_ARRAY_LENGTH | JSON 배열 원소 개수 | 소스 칼럼, 원소 스키마 |
| CONCAT | 여러 칼럼을 구분자로 결합 | 소스 칼럼 2개 이상, 구분자, 기본값(선택) |
| RATIO | 분자/분모 비율 계산 | 분자, 분모, 배수(선택, 기본 1), 반올림 자릿수(선택) |
| COALESCE | 여러 칼럼 중 첫 non-null 값 | 소스 칼럼 2개 이상 |
| 값 | 설명 |
|---|---|
| COUNT | 개수 |
| COUNT_DISTINCT | 고유 값 개수 |
| SUM | 합계 |
| AVG | 평균 |
| MIN | 최솟값 |
| MAX | 최댓값 |
| FIRST | 첫 번째 값 |
| LAST | 마지막 값 |
| STDDEV | 표준편차 |
| VARIANCE | 분산 |
| ARRAY_AGG | 그룹 값을 배열로 수집 |
* (전체)를 선택할 수 있습니다.ARRAY_AGG를 선택하면 다음 설정이 추가됩니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 배열 원소 종류 | O | 단일 칼럼 또는 JSON 객체 |
| 수집할 칼럼 | O* | 배열 원소 종류가 단일 칼럼일 때 필수. 배열에 담을 칼럼 |
| JSON 객체 필드 정의 | O* | 배열 원소 종류가 JSON 객체일 때 필수. 키 이름과 칼럼의 조합 |
| 배열 원소 정렬 | X | 정렬 기준 칼럼과 방향. 미지정 시 정렬하지 않음 |
| 출력 형태 | O | STRUCT_ARRAY, JSON_STRING_ARRAY, JSON_STRING |
| 중복 제거(DISTINCT) | X | 정렬을 설정하면 무시됨 |
전체 데이터를 지정한 기준으로 정렬하여 상위 N개 행만 남깁니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 정렬 기준 | O | 정렬할 칼럼과 방향(DESC / ASC) |
| 상위 N 건 | O | 정렬 후 결과에 포함할 행 수 |
| 결과 순위 칼럼 이름 | O | 결과에 추가되는 1~N 순위 칼럼의 이름 |
범주형(카테고리) 데이터를 수치(정수)로 변환하는 기능입니다. FIT(학습)과 APPLY(적용) 2단계로 구성되며, 반드시 FIT 노드를 먼저 생성한 후 APPLY 노드에서 참조해야 합니다.
FIT 노드 설정:
| 항목 | 필수 | 설명 |
|---|---|---|
| 인코딩할 칼럼 선택 | O | 라벨 인코딩을 적용할 칼럼(1개 이상) |
| 시작 인덱스 | X | 인코딩 시작 값(기본값: 0) |
APPLY 노드 설정:
| 항목 | 필수 | 설명 |
|---|---|---|
| 매핑 테이블 노드 선택 | O | FIT 노드를 선택 |
| 원본 칼럼 덮어쓰기 | X | 체크 시 원본 칼럼을 인코딩된 값으로 대체(기본: 해제) |
| 결과 칼럼 접미사 | X | 원본 유지 시 새 칼럼 이름에 붙는 접미사(기본: _encoded) |
알아두기
매핑 테이블에 없는 값(OOV, Out-of-Vocabulary)은 -1로 인코딩합니다.
주의
FIT을 재실행하면 데이터 변경에 따라 인코딩 번호가 달라질 수 있습니다. 기존 모델과의 호환성에 주의하세요.
LLM을 사용하여 텍스트 칼럼의 값을 카테고리로 분류합니다. 분류 기준이 되는 카테고리 목록은 별도의 데이터 소스 노드로 준비해야 합니다.
파이프라인이 실행되면 입력 데이터의 행을 배치 크기만큼 묶어 배치당 1회 LLM을 호출합니다. 각 호출의 프롬프트에는 카테고리 목록과 해당 배치의 행들이 담기며, LLM이 행별로 적합한 카테고리 ID를 응답하면 그 결과가 분류 결과 칼럼으로 저장됩니다.
LLM 설정
| 항목 | 필수 | 설명 |
|---|---|---|
| LLM 공급자 | O | Claude |
| 모델 이름 | O | claude-haiku-4-5, claude-sonnet-4-6 |
| API 키 | O | 사용할 LLM의 API 키. 이 파이프라인에만 저장되며 저장 후 다시 표시되지 않음 |
| 배치 크기 | X | 한 번의 LLM 호출에 담을 행 수(1~30) |
| 최대 재시도 | X | 호출 실패 시 재시도 횟수(0~10) |
| 타임아웃(초) | X | 호출 대기 시간(1~600) |
| 증분 분류 | X | 변경된 행만 LLM으로 분류하고 변경 없는 행은 이전 실행 결과를 재사용 |
입력 칼럼
| 항목 | 필수 | 설명 |
|---|---|---|
| 입력 칼럼 | O | LLM에 전달할 칼럼. 여러 개 선택 가능 |
| 칼럼 결합 구분자 | X | 여러 입력 칼럼 값을 이어 붙일 때 사용할 구분자 |
| 사용자 프롬프트 템플릿 | X | 행별 입력 값 구성 템플릿. {{ 칼럼 이름 }} 패턴이 해당 칼럼 값으로 치환되며, 설정하면 결합 구분자보다 우선 적용. 입력 칼럼에서 선택한 칼럼만 참조 가능 |
축(카테고리 테이블)
분류 기준이 되는 카테고리 목록을 축으로 등록합니다. 축은 최대 5개까지 추가할 수 있습니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 카테고리 노드 | O | 카테고리 목록이 담긴 데이터 소스 노드 |
| 카테고리 ID 칼럼 | O | 카테고리를 식별하는 칼럼 |
| 카테고리 이름 칼럼 | O | 카테고리 이름 칼럼 |
| 카테고리 메타데이터 칼럼 | X | 카테고리 설명, 판정 기준 등 추가 칼럼. 프롬프트에 함께 전달되어 분류 정확도 향상 |
| 분류 결과 칼럼(배열) | O | 분류 결과를 담을 배열 칼럼 이름 |
| 대표 칼럼 | X | 가장 대표적인 분류 ID를 저장할 칼럼 이름. 비우면 생성하지 않음 |
출력
| 항목 | 필수 | 설명 |
|---|---|---|
| 출력 타입 | O | SINGLE_LABEL, MULTI_LABEL |
| 분류 근거 칼럼 | X | LLM이 제공한 분류 근거를 저장할 칼럼 이름. 비우면 근거를 요청하지 않아 토큰 비용 절감 |
| 콘텐츠 근거 칼럼 | X | 입력 콘텐츠에서 생성한 짧은 설명을 저장할 칼럼 이름 |
| 콘텐츠 근거 최대 길이 | X | 콘텐츠 근거 칼럼의 최대 글자 수(1~200) |
시스템 프롬프트(선택): LLM에 역할과 분류 기준을 지시합니다. 설정하지 않으면 기본 프롬프트가 사용됩니다.
주의
처리할 행 수가 많을수록 LLM 호출 횟수와 토큰 사용량이 비례하여 늘어나 비용이 증가합니다. 대규모 데이터는 먼저 소규모로 검증해 비용과 품질을 확인한 후 적용하세요.
두 개의 데이터 스트림을 결합합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 노드 이름 | O | 조인 결과 노드의 이름(최대 30자) |
| 조인 타입 | O | Inner Join / Left Join / Right Join / Full Outer Join / Semi Join(EXISTS) / Anti Join(NOT EXISTS) 중 선택 |
| 조인 테이블 | O | 왼쪽/오른쪽 테이블 노드 선택 |
| 조인 조건 | O | 왼쪽 필드 = 오른쪽 필드 매핑(다중 조건 가능) |
| 칼럼 선택 | X | 결과에 포함할 칼럼 선택, 접두사 설정 가능 |
알아두기
양쪽 테이블에 동일한 이름의 칼럼이 있을 경우 오른쪽 테이블에 접두사를 설정하여 칼럼 이름 충돌을 방지할 수 있습니다.
두 개의 데이터 스트림을 수직으로 합칩니다.
| 값 | 설명 |
|---|---|
| Full Merge | 양쪽 전체 칼럼 포함. 없는 쪽은 NULL |
| Intersect Merge | 양쪽 공통 칼럼만 포함 |
| Left-First Merge | 왼쪽 테이블 스키마 기준. 오른쪽에 없는 칼럼은 NULL |
파이프라인의 최종 출력 노드로, 처리된 데이터를 테이블로 저장합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 데이터셋 이름 | O | 테이블 이름으로 사용(최대 30자). 영문 소문자, 숫자, _만 사용 가능하며 숫자로 시작 불가 |
| 설명 | X | 데이터셋 설명(최대 500자) |
| 칼럼 선택 | O | 데이터셋에 포함할 칼럼 선택(최소 1개 이상) |
데이터셋 이름은 데이터 소스 이름과 테이블 이름으로 함께 사용되므로, 이미 사용 중인 데이터 소스 이름·테이블 이름과 중복될 수 없습니다. 중복 여부는 파이프라인을 저장할 때와 실행할 때 각각 확인합니다.
주의
실행된 데이터셋은 수정할 수 없습니다. 삭제 후 재생성하세요(데이터 소스는 유지됩니다).
우측 사이드 패널의 스케줄 아이콘을 클릭하여 배치 스케줄을 설정합니다.
| 주기 타입 | 설정 항목 | 예시 |
|---|---|---|
| 매분 | 간격(5/10/15/20/30분) | 10분마다 실행 |
| 매시간 | 간격(1/2/3/4/6/8/12시간), 분 | 2시간마다 30분에 실행 |
| 매일 | 시, 분 | 매일 09시 30분에 실행 |
| 매주 | 요일(다중 선택), 시, 분 | 매주 월, 수, 금 09시 00분에 실행 |
| 매월 | 일, 시, 분 | 매월 1일 09시 30분에 실행 |
날짜 범위 설정:
| 항목 | 필수 | 설명 |
|---|---|---|
| 시작 날짜 설정 | X | 체크 시 설정한 날짜 이후부터 스케줄 시작. 미설정 시 저장 시점부터 시작 |
| 종료 날짜 설정 | X | 체크 시 설정한 날짜 이후에는 스케줄이 실행되지 않음 |
스케줄을 저장하고 최초 1회 실행된 이후부터 설정한 주기에 따라 실행됩니다.
우측 사이드 패널의 컴퓨팅 리소스 아이콘을 클릭하여 파이프라인 실행 시 사용할 컴퓨팅 자원을 설정합니다.
| 타입 | Driver | Executor |
|---|---|---|
| Small(기본값) | 1 CPU, 1GB 메모리 | 1 CPU, 1GB 메모리 × 1개 |
| Medium | 1 CPU, 2GB 메모리 | 1 CPU, 2GB 메모리 × 2개 |
| Large | 2 CPU, 4GB 메모리 | 2 CPU, 4GB 메모리 × 4개 |
| XLarge | 4 CPU, 8GB 메모리 | 4 CPU, 8GB 메모리 × 8개 |
주의
리소스 설정을 변경하면 재빌드 후 적용됩니다. 파이프라인 생성 전에는 리소스를 변경할 수 없습니다.
최초 또는 설정 변경 후 첫 실행 시에는 빌드와 실행이 함께 진행됩니다.
실행은 마지막으로 저장한 구성으로 수행됩니다. 저장하지 않은 변경이 있으면 저장 전 구성으로 실행됨을 알리는 확인 모달이 먼저 표시되므로, 변경 사항을 포함해 실행하려면 먼저 저장하세요. 이미 빌드된 파이프라인은 빌드 과정 없이 바로 실행됩니다. 실행 중 중지 버튼을 클릭하면 종료됨 상태로 전환됩니다. 빌드가 완료되면 스케줄이 설정되어 있는 파이프라인은 자동으로 활성화됩니다.
탭 바에서 실행 이력 버튼을 클릭하면 실행 ID, 시작/종료 일시, 소요 시간, 실행 상태, 노드별 실행 상세를 확인할 수 있습니다.
콘솔 경로: Machine Learning > NHN Cloud Foundry > 분석 탭 > 쿼리 탭
SQL을 사용하여 데이터 소스의 데이터를 조회·분석합니다.
쿼리 실행 버튼을 클릭합니다.
실행 결과가 데이터 그리드 형식으로 표시됩니다. 칼럼 구조는 쿼리 결과에 따라 동적으로 생성되며, 페이지네이션을 지원합니다.
쿼리명_날짜_시간.csv).SELECT * FROM {테이블 이름}).쿼리 선택으로 불러온 쿼리의 내용을 수정한 뒤 쿼리 저장 버튼을 클릭하면 변경 사항이 저장됩니다. 불러온 쿼리가 없거나 내용을 바꾸지 않으면 버튼이 비활성화됩니다.
쿼리는 실행할 때마다 실행 이력으로 자동 기록되며, 반복해서 사용할 쿼리는 쿼리 목록에 직접 만들어 둘 수 있습니다. 쿼리 목록 버튼을 클릭하면 저장된 쿼리를 관리하는 모달이 열립니다.
| 칼럼 | 설명 |
|---|---|
| 쿼리 이름 | 저장할 때 지정한 이름 |
| 쿼리 구문 | 저장된 SQL |
| 저장 시각 | 쿼리를 마지막으로 저장한 일시 |
| 자세히 | 쿼리 전체 내용 조회 |
추가와 수정 시 입력하는 항목은 다음과 같습니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 쿼리 이름 | O | 쿼리를 식별하기 위한 이름 |
| 데이터 소스 | O | 쿼리를 실행할 데이터 소스 |
| 구문 | O | 실행할 SQL |
지금까지 실행한 쿼리를 조회하는 화면입니다. 시간 범위와 쿼리 내용으로 검색하며, 초기화 버튼으로 검색 조건을 지웁니다.
| 칼럼 | 설명 |
|---|---|
| 쿼리 이름 | 실행한 쿼리의 이름 |
| 쿼리 실행 날짜 | 쿼리를 실행한 일시 |
| 데이터 소스 이름 | 쿼리를 실행한 데이터 소스 |
| 쿼리/결과 | 실행한 SQL과 결과 |
목록에서 항목을 클릭하면 쿼리 상세가 표시되며, 쿼리 사용을 클릭하면 해당 쿼리를 실행 화면으로 불러옵니다.
콘솔 경로: Machine Learning > NHN Cloud Foundry > 분석 탭 > 차트 탭
차트 생성 버튼을 클릭하면 차트 에디터 화면으로 이동합니다. 에디터에서 다음 항목을 차례로 설정합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 차트 이름 | O | 차트를 식별하기 위한 이름(최대 30자) |
| 차트 타입 | O | 차트 용도 구분(현재는 기본만 제공) |
| 차트 시각화 타입 | O | Line Chart, Bar Chart, Pie Chart, Scatter Chart |
| 항목 | 필수 | 설명 |
|---|---|---|
| 데이터소스 타입 | O | FILE, DATASET, RECOMMENDATION SINK |
| 데이터 소스 이름 | O | 사용할 데이터 소스 선택 |
| 항목 | 필수 | 설명 |
|---|---|---|
| X축 | O* | 가로축에 사용할 필드. Pie 차트에서는 표시되지 않음 |
| 집계 간격 | O* | 5분, 15분, 30분, 45분, 1시간, 2시간, 6시간, 12시간, 1일, 3일, 7일. Line·Bar 차트에서만 표시 |
| 기준 시간 | O | 데이터의 시간 범위 지정 |
| 칼럼 | O | 집계 대상 칼럼과 집계함수 선택. 1개 이상 필요 |
| 그룹 키 | O* | 값별로 나누어 볼 칼럼. Pie 차트는 1개 이상 필요하고, 그 밖에는 선택 |
| 필터 | X | 데이터 필터링 조건 설정 |
| 정렬 | X | 정렬 칼럼과 방향. Pie·Bar 차트에서만 표시 |
| 행 제한 | O | 조회할 최대 행 수 |
차트 시각화 타입별로 필요한 설정은 다음과 같습니다.
| 차트 시각화 타입 | 필수 설정 |
|---|---|
| Line, Bar | X축(시간축), 집계 간격, 칼럼 1개 이상 |
| Pie | 기준 시간 칼럼, 칼럼 1개 이상, 그룹 키 1개 이상 |
| Scatter | 칼럼 1개 이상 |
Bar 차트에 정렬을 지정하면 시간축 대신 상위 N개 카테고리로 표시됩니다.
설정 완료 후 UPDATE CHART 버튼을 클릭하여 프리뷰를 확인합니다.
차트 목록에서 차트를 클릭하여 편집 화면으로 진입합니다.
주의
대시보드에서 사용 중인 차트를 삭제하면 해당 대시보드에서도 삭제됩니다.
콘솔 경로: Machine Learning > NHN Cloud Foundry > 분석 탭 > 대시보드 탭
대시보드 생성 버튼을 클릭하면 대시보드 에디터 화면으로 이동합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 대시보드 이름 | O | 대시보드를 식별하기 위한 이름 |
| 대시보드 설명 | X | 대시보드 설명 |
편집 패널은 두 개의 탭으로 구성됩니다.
| 탭 | 설명 |
|---|---|
| CHARTS | 대시보드에 추가할 수 있는 차트 목록. 차트 이름으로 검색 가능 |
| LAYOUT ELEMENTS | 캔버스에 추가할 레이아웃 요소 |
여러 차트를 탭으로 묶어 한 자리에서 전환하며 볼 수 있습니다. 편집 패널의 LAYOUT ELEMENTS 탭에서 Tab을 클릭하면 캔버스에 탭 그룹이 추가됩니다.
캔버스에 배치한 차트는 드래그하여 위치를 옮기고 모서리를 끌어 크기를 조정합니다. 차트 우측 상단의 휴지통 아이콘을 클릭하면 대시보드에서 삭제됩니다.
구성 완료 후 헤더의 저장 버튼을 클릭합니다.
대시보드 목록에서 대시보드를 클릭하여 상세 화면으로 진입합니다.
대시보드 상세 화면에서 편집 모드 토글을 클릭하여 편집 모드로 전환합니다.
편집 모드에서는 다음 조작이 가능합니다.
대시보드에 배치된 차트를 수정하려면 편집 모드를 끕니다. 편집 모드가 꺼져 있으면 각 차트에 더보기 메뉴가 표시되며, 차트 수정을 선택하면 차트 편집 페이지로 이동합니다. 탭 그룹 안의 차트도 같은 방법으로 이동하며, 차트 편집 후 저장하면 대시보드에 변경 사항이 반영됩니다.
콘솔 경로: Machine Learning > NHN Cloud Foundry > 앱 탭
AI 모델을 활용한 추천 시스템 서빙 파이프라인을 생성하고 관리합니다.
| 칼럼 | 설명 |
|---|---|
| 앱 유형 | 앱의 유형 |
| 앱 ID | 앱 고유 식별자 |
| 앱 이름 | 앱 식별 이름 |
| 앱 설명 | 앱 설명 |
| 상태 | 앱 상태 |
| 생성일 | 앱 생성 일시 |
앱 상태 배지에 마우스를 올리면 툴팁으로 상세 설명을 확인할 수 있습니다.
| 값 | 설명 |
|---|---|
| 초기화 중 | 앱 초기화 진행 중 |
| 학습 중 | AI 모델 학습 진행 중 |
| 배포 중 | 앱 배포 진행 중 |
| 활성화 중 | 앱 활성화 진행 중 |
| 활성 | 앱 활성 상태 |
| 삭제 중 | 앱 삭제 진행 중 |
| 실패 | 앱 처리 중 오류 발생 |
| 알 수 없음 | 상태 정보 확인 불가 |
알아두기
앱 생성 직후 진행되는 학습·배포는 앱을 준비하는 과정으로, 이 시점에는 추천 모델이 아직 학습되지 않은 상태입니다. 추천 API를 호출하면 응답은 반환되지만 학습된 모델의 추천 결과가 아닙니다. 첫 학습은 배치 스케줄에 지정한 시각에 실행되며(상태: 학습 중 → 배포 중 → 활성화 중 → 활성), 학습된 모델이 배포된 이후부터 유효한 추천 결과를 조회할 수 있습니다.
앱 생성 버튼을 클릭하면 앱 생성 화면으로 전환됩니다. 앱 생성은 3단계로 진행됩니다.
| 단계 | 설명 |
|---|---|
| 기본 설정 | 앱 이름, 설명, 유형 선택 |
| 상세 설정 | 모델 선택, 서빙 리소스·배치 스케줄, 데이터 연결, 추가 설정 |
| 최종 검토 | 입력 내용 확인 및 생성 |
| 항목 | 필수 | 설명 |
|---|---|---|
| 앱 이름 | O | 앱을 식별하기 위한 이름(최대 255자). 한글, 일본어, 영문, 숫자, 공백, -, _ 사용 |
| 앱 설명 | O | 앱 설명 |
| 앱 유형 | O | 추천 시스템 선택 |
모델 추가 버튼으로 모델 카드를 추가합니다. 한 앱에 여러 모델을 함께 구성할 수 있으며, 모델 카드마다 아래 섹션들을 설정합니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| 모델 이름 | O | 사용할 추천 모델 선택 |
| Longtail 모드 | X | 사용 시 인기도가 낮은 아이템도 추천에 포함 |
선택할 수 있는 모델은 다음과 같습니다.
| 이름 | 설명 |
|---|---|
| Cold User | 신규 유저 등 아직 활동 이력이 적은 유저에게 아이템 자체의 속성을 기반으로 추천 |
| Warm User(Transformer) | 유저가 최근 인터랙션한 아이템의 순서를 기반으로 다음 아이템 추천 |
같은 모델이라도 Longtail 모드가 다르면 별도 모델로 추가할 수 있습니다.
모델별 서빙 컨테이너에 할당할 리소스를 지정합니다. 입력하지 않으면 기본값이 적용됩니다.
| 항목 | 필수 | 설명 |
|---|---|---|
| CPU request / CPU limit | X | Core 단위. 기본값 2 / 4 |
| 메모리 request / 메모리 limit | X | Gi 단위. 기본값 4 / 4 |
request는 limit을 초과할 수 없습니다.
모델을 다시 학습하는 배치의 실행 주기를 설정합니다. 기본으로 활성화되어 있으며, 토글로 끌 수 있습니다. 모델의 첫 학습도 이 스케줄에 지정한 시각에 실행되며, 첫 학습이 완료되기 전의 추천 응답은 학습된 모델의 결과가 아닙니다.
| 주기 | 설정 항목 |
|---|---|
| 매일 | 시, 분 |
| 매주 | 요일, 시, 분 |
| 매시간 | 시간 간격, 분 |
설정한 시각은 접속한 브라우저의 시간대 기준으로 적용됩니다.
선택한 모델에 따라 필요한 데이터 소스를 연결합니다.
일반 추천 모델:
| 항목 | 필수 | 설명 |
|---|---|---|
| 사용자 데이터소스 | O | 사용자 정보 데이터 소스 |
| 사용자 ID 칼럼 | O | 사용자 식별 칼럼 |
| 사용자 Feature 칼럼 | X | 추가 사용자 특성 칼럼(여러 개 선택 가능) |
| 아이템 데이터소스 | O | 아이템 정보 데이터 소스 |
| 아이템 ID 칼럼 | O | 아이템 식별 칼럼 |
| 아이템 Feature 칼럼 | X | 추가 아이템 특성 칼럼(여러 개 선택 가능) |
| 히스토리 데이터소스 | O | 사용자-아이템 상호작용 데이터 소스 |
| 히스토리 사용자 ID 칼럼 | O | 히스토리에서 사용자를 식별하는 칼럼 |
| 히스토리 아이템 ID 칼럼 | O | 히스토리에서 아이템을 식별하는 칼럼 |
| 시간 칼럼 | X | 상호작용 시간 칼럼 |
| 히스토리 Feature 칼럼 | X | 추가 상호작용 특성 칼럼 |
태그 임베딩 모델:
| 항목 | 필수 | 설명 |
|---|---|---|
| 태그 데이터소스 | O | 태그 정보 데이터 소스 |
| 속성 칼럼 | O | 태그 값 칼럼 |
| 아이템 ID 칼럼 | O | 아이템 식별 칼럼 |
| 시간 칼럼 | X | 시간 칼럼 |
추천 사유(reason) 구성에 사용할 스킬·카테고리 데이터를 연결하는 선택 설정입니다. 필드 추가 버튼으로 추가합니다.
| 항목 | 설명 |
|---|---|
| 스킬 데이터소스 | 스킬 정보 테이블. 스킬 ID 칼럼과 스킬 칼럼 지정 |
| 기본 스킬 카테고리 / 공통 스킬 카테고리 | 스킬 분류 테이블. 스킬 ID 칼럼과 스킬 라벨 칼럼 지정 |
| 사용자 그룹 데이터소스 | 추천 대상 사용자를 묶는 단위(예: 부서, 학년, 관심사 그룹). 사용자 그룹 ID 칼럼과 스킬 칼럼 지정 |
| 사용자별 관심 스킬 데이터소스 | 사용자별 관심 스킬 테이블. 추천 API에 관심 스킬이 전달되지 않았을 때 이 테이블을 조회해 관심 기반 추천 사유 생성 |
| 사용자 속성 매핑 | 추천 API의 userAttributes에서 각 항목을 전달할 키 이름 지정 |
| 추천 사유 템플릿 데이터소스 | 추천 사유 문구 템플릿 테이블. 미선택 시 추천 결과에 사유 미포함 |
| 콜드스타트 데이터소스 | 이 테이블에 있는 사용자 ID만 콜드스타터로 판정. 데이터소스와 사용자 ID 칼럼 함께 선택 필요 |
| 검토 항목 | 설명 |
|---|---|
| 기본 설정 | 앱 이름, 설명, 유형 |
| 모델 설정 | 선택한 모델, 서빙 리소스, 배치 스케줄, 데이터 연결 정보 |
| 추가 설정 | 스킬 테이블 등 추가 설정 |
저장 버튼을 클릭하면 앱이 생성됩니다. 성공 시 완료 모달이 표시되고 목록으로 이동하며, 실패 시 오류 메시지가 표시됩니다.
주의
삭제된 앱은 복구할 수 없습니다. 연결된 서빙 파이프라인도 함께 삭제됩니다.
앱 목록에서 앱을 클릭하면 상세 화면으로 이동합니다. 상세 화면은 추천 API 호출과 앱 정보 두 개의 탭으로 구성됩니다.
추천 요청 파라미터를 입력해 추천 API를 직접 호출하고 결과를 확인할 수 있습니다. 화면은 입력 폼, 요청 미리보기, 추천 결과 세 영역으로 구성됩니다.
입력 폼:
| 항목 | 설명 |
|---|---|
| 추천 앱 ID | 호출 대상 앱 ID. 현재 앱으로 자동 입력 |
| 사용자 ID | 추천 대상 사용자 선택 |
| 추천 모드 | Sequential(이력 기반), Cold Start(속성 기반) 중 선택 |
| 최대 추천 수 | 응답에 포함할 최대 아이템 수(1~100, 기본값 10) |
| Longtail 모드 | 인기 없는 항목까지 포함해 추천 다양성 향상. Cold Start 모드에서는 사용 불가 |
| context | 추천 요청의 맥락 정보(현재·최근 본 아이템 등)를 필드 단위로 추가 |
| userAttributes | 사용자 속성 정보(그룹, 나이, 관심사 등)를 필드 단위로 추가 |
| options | 추천 요청 옵션을 필드 단위로 추가 |
알아두기
추천 API 호출은 앱이 활성 상태일 때만 가능합니다.
앱 ID, 앱 이름, 상태, 앱 유형, 설명, 생성일, 수정일, 버전과 입력·출력 데이터 소스를 확인할 수 있습니다.