# 입력 데이터소스 연결

> 센서 및 공정 데이터를 Xisom 런타임으로 스트리밍합니다 — OPC-UA, MQTT 또는 CSV 소스를 추가하고, 태그를 매핑하고, 모델을 페어링하고, 활성화한 뒤 추론을 시작합니다.

**입력 데이터소스**는 하나의 논리적 센서 데이터 소스입니다 — OPC-UA 엔드포인트, MQTT
토픽 그룹, CSV 재생 파일 등. 각 소스는 자체 연결 설정과 태그 목록을 가진 유형화된
어댑터입니다. 해당 태그를 모델의 입력 채널에 매핑한 뒤 활성화하여 추론을 시작합니다.

## 지원되는 입력 소스

- **OPC-UA** — 호환 서버의 태그를 구독합니다.
- **MQTT** — 직접 운영하는 브로커, TLS 지원.
- **CSV** — 파일에서 기록된 데이터를 재생합니다(테스트에 적합).
- **PLC** — Modbus TCP 및 기타 산업용 프로토콜.

**한 번에 하나의 입력만 활성화**

어느 순간에도 **하나**의 입력 데이터소스만 활성화할 수 있습니다. 새 소스를 활성화하면
이전 소스가 자동으로 비활성화됩니다. 이는 런타임을 단일하고 예측 가능한 스트림에 묶어
둡니다.

## 워크스루: 소스 추가 및 추론 시작

1. ### 데이터소스 페이지 열기

   대시보드에서 **Datasources → Input**으로 이동한 뒤 **+ Create**를 클릭합니다.

2. ### 어댑터 유형 선택 및 연결 정보 입력

   소스 유형을 선택합니다. 폼은 선택한 프로토콜에 맞춰 변경됩니다 — 엔드포인트,
   자격 증명, 프로토콜별 필드를 입력하세요. 시크릿 필드(비밀번호, 토큰)는 저장 후 `***`로
   마스킹됩니다.

   
     
**OPC-UA**

     | 필드 | 예시 |
     |-------|---------|
     | Endpoint | `opc.tcp://your-opcua-host:4840/factory/line1` |
     | Security policy | `None` (또는 인증서를 갖춘 `Basic256Sha256` 프로필) |
     | Authentication | `Anonymous` (또는 사용자 이름/비밀번호) |

     태그는 **NodeId**로 참조됩니다. 예: `ns=2;i=2`(숫자형) 또는
     `ns=2;s=Temperature`(문자열형).

     
     
**MQTT**

     | 필드 | 예시 |
     |-------|---------|
     | Broker URL | `mqtt://your-broker-host:1883` (TLS는 `mqtts://`) |
     | Topic | `factory/line1/temp` |
     | JSON path | `value` (메시지에서 숫자 측정값을 추출) |
     | Username / password | 선택 사항 (저장 시 마스킹) |

     
     
**CSV**

     | 필드 | 예시 |
     |-------|---------|
     | File | 재생할 기록된 데이터셋 |
     | Columns | 채널로 공급할 센서 컬럼 |

     CSV는 재생 전용입니다 — 실제 공장 연결 없이 모델을 테스트하는 데 유용합니다.

     
   

3. ### 태그를 모델 채널에 매핑

   스트리밍할 태그를 나열하고 각각을 번호가 매겨진 **입력 채널**(`0`, `1`, `2`, …)에
   할당합니다. 각 채널은 하나의 모델 입력을 공급합니다. **윈도우 크기** — 모델이 예측당
   소비하는 연속 샘플 수 — 를 페어링할 모델에 맞게 설정하세요.

   
**채널 매핑은 완전해야 합니다**

   채널당 정확히 하나의 태그를 빠짐없이 제공하세요. 채널이 매핑되지 않았거나 과도하게
   채워진 경우 검증에서 활성화가 거부됩니다. 문자열 태그(예: `RUN`/`STOP` 상태)는 숫자
   피처로 사용할 수 없습니다 — 채널 정의 시 제외하세요.
   

4. ### 저장 및 모델 페어링

   데이터소스를 저장합니다. 그런 다음 **Models**에서 업로드한 모델과 페어링합니다.
   플랫폼이 호환성 검사를 실행하며 — `윈도우 크기 × 피처 개수`가 양쪽에서 일치해야 하고 —
   다르면 페어링을 거부합니다.

5. ### 활성화 후 시작

   행에서 **Enable**을 토글합니다. 이는 구성을 검증하고, 페어링된 모델을 로드하며,
   어댑터를 연결합니다. 연결 핸드셰이크(OPC-UA / MQTT / Modbus)가 여기서 일어나므로,
   네트워크나 자격 증명 문제가 지금 드러나 행을 오류 메시지와 함께 **Disabled**로
   되돌립니다.

   활성화는 스트리밍을 자동으로 시작하지 **않습니다** — 추론을 시작하려면 **Start**를
   클릭하세요.

## 먼저 연결 테스트

활성화 전에 소스에서 **Test Connection**을 사용하세요. 실시간 폼 값이 엔드포인트에
도달하는지 검증하므로, 태그를 연결하기 전에 잘못된 호스트나 자격 증명을 잡아낼 수
있습니다.

## 속도 제한 및 버퍼링

각 데이터소스에는 독립적인 속도 제한과 제한된 버퍼가 있습니다. 소스가 런타임이 소비하는
속도보다 빠르게 생성하면, 백프레셔가 대시보드에 보고되어 포화를 알아챌 수 있습니다.

## 문제가 발생하면

| 증상 | 가능한 원인 |
|---------|--------------|
| `model_not_paired`로 활성화 실패 | 먼저 데이터소스에 모델을 페어링하세요. |
| 연결 시 활성화가 롤백됨 | 엔드포인트에 도달할 수 없거나, 자격 증명이 잘못되었거나, 방화벽 문제입니다 — **Test Connection**으로 확인하세요. |
| Enabled로 표시되나 예측값 없음 | 설계상 그렇습니다 — 스트리밍을 시작하려면 **Start**를 누르세요. |
| 페어링 거부 | 모델과 데이터소스 간 `윈도우 크기 × 피처 개수` 불일치. |

자세한 내용은 [문제 해결](/ko/troubleshooting/) 런북을 참조하세요.

## 다음 단계

  - [결과 내보내기](/ko/configure/output-datasources/) — 예측값을 PLC, 브로커, 파일로 라이트백합니다.
  - [모델 배포](/configure/models/) — 모델을 업로드, 페어링, 활성화합니다.
