# 컴포넌트와 하위 워크플로

> 노드 묶음을 재사용할 수 있는 노드 하나로 만드세요. 그 자리에서 편집하는 하위 워크플로나, 입력, 설정, 가격을 갖춘 게시된 컴포넌트로 만들 수 있습니다.

Source: https://nodaro.ai/ko/docs/concepts/components-and-sub-workflows

**하위 워크플로**는 다른 워크플로 안에 노드 하나로 넣은 워크플로입니다. **컴포넌트**는 버전이 있는 게시된 워크플로로, 누구나 같은 방식으로 자신의 워크플로에 넣을 수 있습니다. 둘 다 노드 묶음을 이름 있는 입력과 출력을 가진 노드 하나로 바꿉니다. “배경 제거 후 업스케일”처럼 검증된 체인을 재사용하고, 큰 워크플로를 읽기 쉽게 유지하는 데 사용하세요.

## 하위 워크플로 또는 컴포넌트
| | 하위 워크플로 | 컴포넌트 |
| --- | --- | --- |
| **노드** | [하위 워크플로](https://nodaro.ai/docs/nodes/automate/sub-workflow) | [컴포넌트](https://nodaro.ai/docs/nodes/automate/component) |
| **담는 것** | 내 워크플로 하나 | 다른 사람이 컴포넌트로 게시한 워크플로, 또는 내가 게시한 워크플로 |
| **안을 보고 편집할 수 있나요?** | 네. 노드에서 그 자리에 엽니다. | 아니요. 만든 사람이 공개한 입력과 설정만 정할 수 있습니다. |
| **입력과 출력** | [하위 워크플로 입력](https://nodaro.ai/docs/nodes/automate/sub-workflow-input)과 [하위 워크플로 출력](https://nodaro.ai/docs/nodes/automate/sub-workflow-output) 노드로 선언한 포트 | 만든 사람이 게시할 때 고른 입력과 출력 |
| **변경 사항** | 가리키는 워크플로를 따릅니다. 포트를 바꾼 뒤에는 **새로 고침**을 클릭하세요. | 새로 고칠 때까지 추가할 때의 버전을 유지합니다 |
| **가격** | 안의 노드가 평소 가격을 청구합니다 | 예상 가격. 만든 사람의 추가 요금이 포함될 수 있습니다 |
| **알맞은 용도** | 내 큰 워크플로의 구조 정리 | 완성된 단계를 다른 사람과 공유 |

## 하위 워크플로 만들기
### 하위 워크플로 노드 추가
먼저 워크플로를 저장하세요. 그런 다음 **노드 추가** 메뉴를 열고 **자동화 › 워크플로 › 하위 워크플로**를 선택하세요.

### 내부 워크플로 만들기 또는 선택
설정 패널에서 **빈 하위 워크플로 만들기**를 클릭하세요. Nodaro가 입력 노드 하나와 출력 노드 하나가 있는 새 내부 워크플로를 만들고, 편집할 수 있게 엽니다. 이미 있는 워크플로를 재사용하려면 대신 **워크플로** 목록에서 고르세요. 다른 프로젝트의 워크플로를 보려면 **모든 프로젝트**를 켜세요.

### 입력과 출력 선언
내부 워크플로 안에서 **하위 워크플로 입력** 노드는 상위 워크플로가 값을 넣을 수 있는 포트를 나열합니다. 각 포트에는 이름과 미디어 유형이 있습니다. 유형은 텍스트, 이미지, 동영상, 오디오, 모든 유형 중 하나입니다. **하위 워크플로 출력** 노드는 결과를 돌려주는 포트를 나열합니다. 출력 노드의 **표시할 출력**에서, 상위 워크플로가 노드의 미리 보기로 보여 줄 포트를 고르세요.

### 상위 워크플로에 연결
편집기 상단의 이동 경로로 상위 워크플로에 돌아가세요. 이제 하위 워크플로 노드에는 포트마다 입력과 출력이 하나씩 있습니다. 다른 노드처럼 연결하고 상위 워크플로를 실행하세요.

Workflow: 두 단계의 정리 체인이 하위 워크플로 노드 하나 안에 들어 있어, 상위 캔버스가 짧게 유지됩니다.

- 이미지 업로드 → 하위 워크플로 (이미지)
- 하위 워크플로 → 이미지 생성 (레퍼런스)
- 이미지 생성 → 동영상 생성 (시작 프레임)

### 열기, 보기, 이동
- 노드의 **펼치기**는 내부 워크플로를 편집할 수 있게 엽니다. 편집기 상단의 이동 경로에는 내 워크플로 › 하위 워크플로 › 그 안에 중첩된 워크플로 같은 경로가 표시됩니다. 경로의 아무 부분이나 클릭하면 그곳으로 이동합니다.
- **워크플로 보기**는 상위 워크플로를 떠나지 않고 내부 워크플로를 읽기 전용 창에서 엽니다.
- 노드를 펼칠 때 저장하지 않은 변경 사항이 있으면, 편집기가 먼저 저장할지 버릴지 묻습니다.

**빈 하위 워크플로 만들기**로 만든 하위 워크플로는 상위 워크플로에 속합니다. 프로젝트의 워크플로 목록에는 나타나지 않으며, 그 노드에서만 들어갈 수 있습니다. **워크플로** 목록에서 고른 워크플로는 다른 상위 워크플로도 사용할 수 있는 일반 워크플로로 남습니다.

## 경로: 한 워크플로의 여러 진입점
**경로**는 하위 워크플로 입력 노드 하나와 하위 워크플로 출력 노드 하나로 이루어진 짝입니다. 워크플로에는 경로가 여러 개 있을 수 있으며, 각 경로는 워크플로를 지나는 별개의 길입니다. 하위 워크플로 노드의 **경로**에서 경로를 고르세요. **인터페이스**에 그 경로의 입력과 출력이 표시됩니다.

선택한 경로가 닿는 노드만 실행됩니다. 내부 워크플로의 나머지 부분은 실행되지 않습니다.

## 규칙과 제한
- **최대 5단계.** 하위 워크플로 안에 하위 워크플로를 최대 5단계 깊이까지 넣을 수 있습니다. 깊은 체인은 디버그하기 어려우므로 중첩은 얕게 유지하세요.
- **순환 금지.** 워크플로는 직접이든 다른 워크플로를 거쳐서든 자기 자신을 호출할 수 없습니다. 그래도 같은 워크플로를 서로 다른 두 경로로 두 번 사용할 수는 있습니다.
- **모든 경로가 완전해야 합니다.** 저장할 때 Nodaro는 세 가지를 확인합니다. 각 입력 노드에 짝이 되는 출력 노드가 있어야 합니다. 각 출력 노드에 포트가 하나 이상 있어야 합니다. 두 입력 노드끼리, 또는 두 출력 노드끼리 같은 경로를 공유하면 안 됩니다.
- **변경 후에는 새로 고침.** 다른 워크플로가 사용하는 워크플로의 포트를 바꾸면, 그 워크플로를 사용하는 각 하위 워크플로 노드에서 **새로 고침**을 클릭하세요.

## 컴포넌트 사용
### 컴포넌트 노드 추가
**노드 추가** 메뉴를 열고 **자동화 › 워크플로 › 컴포넌트**를 선택하세요. 빈 노드 대신 컴포넌트 브라우저가 열리며, **둘러보기**, **내 컴포넌트**, **즐겨찾기** 탭 세 개가 있습니다. 이름으로 검색하고 **인기순**, **최신순**, **즐겨찾기 많은 순**으로 정렬할 수 있습니다.

### 컴포넌트 선택
컴포넌트 카드를 클릭하세요. 노드가 컴포넌트의 입력과 출력을 갖추고 이미 설정된 상태로 캔버스에 놓입니다.

### 입력과 설정 정하기
설정 패널은 세 부분으로 되어 있습니다.

- **입력**: 연결된 입력에는 앞 노드에서 값을 받는다는 표시가 있습니다. 연결되지 않은 텍스트 입력은 그 자리에서 입력할 수 있습니다. 이미지, 동영상, 오디오 입력은 연결이 필요합니다.
- **설정**: 품질이나 화면 비율처럼 만든 사람이 조정할 수 있게 해 둔 옵션입니다.
- **출력**: 각 출력의 이름과 유형으로, 다음 노드를 연결할 때 도움이 됩니다.

### 가격 확인 후 실행
설정 패널에 예상 크레딧 가격이 표시되며, 설정을 바꾸면 갱신됩니다. 평소처럼 노드나 워크플로 전체를 실행하세요.

컴포넌트 노드는 추가할 때의 버전을 유지하므로, 만든 사람이 새 버전을 내도 내 워크플로가 갑자기 바뀌지 않습니다. 설정 패널의 새로 고침 아이콘을 클릭하면 최신 버전과 새 예상 가격으로 옮겨 갑니다.

## 내 컴포넌트 게시
컴포넌트는 일반 워크플로로 시작합니다. 편집기의 **프레젠테이션** 탭에서 게시하세요.

1. **프레젠테이션** 탭에서 컴포넌트의 입력과 출력이 될 노드를 추가하세요.
2. **게시**를 클릭하고 **컴포넌트**를 선택하세요. **컴포넌트 이름**과 설명을 입력하세요.
3. **컴포넌트 커넥터**에서 각 입력과 출력에 이름을 붙이세요. 필수 입력을 표시하고, 노드가 캔버스에 보여 줄 **미리 보기**로 출력 하나를 고르세요.
4. 컴포넌트 브라우저에 등록할지 정한 다음 게시하세요.

Nodaro Cloud에서는 다른 사람이 내 컴포넌트를 사용할 때 추가 요금을 받을 수 있습니다. 크레딧 단위의 고정 요금, 비율 또는 둘 다를 정할 수 있습니다. 설정에 기본 비용과 사용자가 낼 금액이 표시됩니다. 내 컴포넌트는 **내 컴포넌트**에 나타나며, 여기서 편집, 등록, 등록 해제, 보관할 수 있습니다.

워크플로 하나를 컴포넌트와 [미니앱](https://nodaro.ai/docs/concepts/apps)으로 동시에 게시할 수 있습니다. 미니앱은 사람들에게 채울 양식을 주고, 컴포넌트는 연결할 노드를 줍니다.

## 자주 묻는 질문

### 하위 워크플로와 컴포넌트는 어떻게 다른가요?

하위 워크플로는 내 워크플로 하나를 다른 워크플로 안에 노드로 넣은 것으로, 그 자리에서 열어 편집할 수 있습니다. 컴포넌트는 컴포넌트 브라우저에서 가져온, 버전이 있는 게시된 워크플로입니다. 만든 사람이 고른 입력, 설정, 출력만 보이는 닫힌 노드로 사용합니다.

### 하위 워크플로는 몇 단계까지 중첩할 수 있나요?

최대 5단계까지입니다. Nodaro는 워크플로가 직접 또는 다른 워크플로를 거쳐 자기 자신을 호출하는 순환 구조도 허용하지 않습니다.

### 하위 워크플로 노드나 컴포넌트 노드에 크레딧이 드나요?

노드 자체에는 비용이 들지 않습니다. 안에 있는 노드가 실행될 때 평소 가격을 청구합니다. 컴포넌트는 설정 패널에 예상 가격을 표시하며, 여기에는 만든 사람이 정한 추가 요금이 포함될 수 있습니다.

### 만든 사람이 새 버전을 게시하면 컴포넌트도 업데이트되나요?

아니요. 컴포넌트 노드는 추가할 때의 버전을 유지합니다. 최신 버전을 쓰려면 설정 패널의 새로 고침 아이콘을 클릭하세요.
