> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ko/developer-guide/developer-guide.md).

# 개발자 가이드

이 섹션은 다음과 같은 사람들을 위한 것입니다 **확장하는** Roboflow Workflows를 단순히 사용하는 데 그치지 않고 확장하는 사람들: 블록 작성자, 플러그인 유지 관리자, 그리고 Workflows Execution Engine을 자신의 애플리케이션에 통합하는 모든 사람.

브라우저에서 Workflow를 만들고 실행하기만 원한다면, 대신 다음부터 시작하세요 [워크플로 생성](/workflows/ko/build/create-a-workflow.md) 및 [Workflow 만들기](/workflows/ko/build/build-a-workflow.md) 대신.

## Workflows의 핵심 요소

여러 구성 요소가 함께 작동하여 Workflow를 구동합니다. 일부는 매일 직접 다루고, 다른 일부는 보이지 않는 곳에서 실행됩니다.

* **Workflows UI** — Workflows를 설계하고 관리하는 시각적 편집기입니다. 반드시 필요한 것은 아니지만, 아이디어를 작동하는 Workflow로 가장 빠르게 만드는 방법입니다. 설계 과정이 끝나면 Compiler와 Execution Engine이 사용하는 Workflow Definition을 생성합니다.
* **Workflow Definition** — Workflows 언어로 작성된 프로그램처럼 동작하는 교체 가능한 JSON 문서입니다. Workflow의 설계와 실행을 분리합니다: 한 번 작성한 뒤 어떤 환경에서든 실행할 수 있습니다. 이것은 다음을 선언합니다 **inputs** (이미지 또는 구성 매개변수), **steps** (입력이나 다른 단계의 출력에 연결된 블록 인스턴스), 그리고 **outputs** (단계 출력을 참조하는 이름 있는 필드).
* **Workflow 블록** — 특정 작업을 수행하는 모듈형 구성 요소입니다. Workflow 작성자에게는 선언된 입력, 구성 속성, 출력이 있는 블랙박스입니다. 블록은 다음으로 그룹화됩니다 **플러그인** , 일반적인 Python 라이브러리입니다. Roboflow는 자체 플러그인을 제공하며 커뮤니티도 자신의 플러그인을 배포할 수 있습니다.
* **Compiler 및 Execution Engine** — Definition을 계산 그래프로 변환한 다음 실행하는 시스템입니다. 전통적인 언어의 컴파일러처럼, 먼저 올바름을 검사한 뒤 런타임에서 무거운 작업을 처리합니다. 이들은 다음과 함께 제공됩니다 [추론 서버](https://docs.roboflow.com/deployment/self-hosted/self-hosted) 그리고 [`inference` Python 패키지](https://pypi.org/project/inference/).

<figure><img src="https://media.roboflow.com/inference/add-output.gif" alt="Building a Workflow in the Roboflow editor"><figcaption></figcaption></figure>

## 핵심 개념

* [Workflow Definition 문법](/workflows/ko/developer-guide/developer-guide/definitions.md) — JSON 언어: 버전 표시, 입력, 단계, 선택자, 출력
* [워크플로 실행](/workflows/ko/developer-guide/developer-guide/workflow-execution.md) — 배치 중심 데이터, 스칼라, 차원 수준, 조건부 실행, 그리고 출력이 구성되는 방식
* [Kinds](/workflows/ko/developer-guide/developer-guide/kinds.md) — 블록 간 연결을 컴파일 시 검증 가능하게 만드는 Workflows 타입 시스템
* [데이터 표현](/workflows/ko/developer-guide/developer-guide/data-representations.md) — 블록이 실제로 받는 Python 타입: `배치`, `WorkflowImageData`, `VideoMetadata`

## 내부 구조

* [Workflows Compiler](/workflows/ko/developer-guide/developer-guide/compiler.md) — 블록 로딩, 파싱, 그래프 구성, 데이터 계보 추적, 단계 초기화
* [실행 엔진](/workflows/ko/developer-guide/developer-guide/execution-engine.md) — 런타임 입력 검증, 실행 순서, 단계 입력 조립, 흐름 제어
* [내부 Workflow](/workflows/ko/developer-guide/developer-guide/inner-workflows.md) — 하나의 Workflow Definition을 다른 Workflow 안에 포함시키기
* [Execution Engine 변경 로그](/workflows/ko/developer-guide/developer-guide/execution-engine-changelog.md) — 각 Execution Engine 버전에서 무엇이 변경되었는지
* [버전 관리](/workflows/ko/developer-guide/developer-guide/versioning.md) — Definition, 블록, Engine 간의 호환성 약속

## 빌딩 블록

* [Workflow 블록 만들기](/workflows/ko/developer-guide/developer-guide/create-a-block.md) — 전체 가이드: 매니페스트, 입력, 출력, 배치 처리, 흐름 제어, 차원성
* [블록을 플러그인으로 묶기](/workflows/ko/developer-guide/developer-guide/block-bundling.md) — 플러그인 구조, 필수 인터페이스, 종류, 초기화기, 직렬화기
* [동적 Python 블록](/workflows/ko/developer-guide/developer-guide/dynamic-python-blocks.md) — Workflow Definition 안에서 블록을 그 자리에서 정의하기
* [블록 테스트](/workflows/ko/developer-guide/developer-guide/testing.md) — 단위 및 통합 테스트 접근 방식
* [커뮤니티 플러그인](/workflows/ko/developer-guide/developer-guide/community-plugins.md) — 커뮤니티가 게시한 플러그인

## Workflows 운영

* [Workflows Schema API](/workflows/ko/developer-guide/developer-guide/schema-api.md) — Workflow의 입력, 출력, 타입 힌트를 프로그래밍 방식으로 설명하기
* [Workflow 프로파일링](/workflows/ko/developer-guide/developer-guide/profiling.md) — 단계 소요 시간을 측정하고 병목 지점 찾기
* [벤치마크](/workflows/ko/developer-guide/developer-guide/benchmarks.md) — 직접 모델 추론과 비교한 Workflow 오버헤드
* [비디오 처리](/workflows/ko/deploy/video-processing.md) — 비디오 프레임과 스트림에서 Workflows 실행
