Blockly
Blockly는 Google을 중심으로 개발되는 오픈 소스 블록 기반 시각적 프로그래밍 라이브러리다. 사용자는 텍스트 문법을 직접 입력하는 대신 기능과 자료를 나타내는 그래픽 블록을 작업 공간에 배치하고 연결하여 프로그램을 구성할 수 있다. Blockly 자체는 특정한 독립 실행형 언어...
| 분류 | 블록 기반 시각적 프로그래밍 라이브러리 |
|---|---|
| 개발 | Google 및 오픈 소스 공동체 |
| 주요 구현 언어 | JavaScript, TypeScript |
| 프로그램 표현 | 연결 가능한 그래픽 블록 |
| 실행 방식 | 대상 언어 소스 코드 생성 |
| 사용자 인터페이스 | workspace, toolbox, flyout |
| 확장성 | 사용자 정의 블록 및 코드 생성기 |
| 제공 코드 생성 | JavaScript, Python, Lua 등 |
| 주요 분야 | 프로그래밍 교육, 웹 앱 편집기 |
| 배포 형태 | 웹 기반 라이브러리 |
| 소스 공개 | 오픈 소스 |
| 실행 호스트 | 웹 브라우저와 호스트 애플리케이션 |
| 공식 문서 | Google Blockly |
Blockly는 Google을 중심으로 개발되는 오픈 소스 블록 기반 시각적 프로그래밍 라이브러리다. 사용자는 텍스트 문법을 직접 입력하는 대신 기능과 자료를 나타내는 그래픽 블록을 작업 공간에 배치하고 연결하여 프로그램을 구성할 수 있다. Blockly 자체는 특정한 독립 실행형 언어 또는 완성된 IDE 하나를 뜻하지 않으며, 다른 웹 애플리케이션에 시각적 편집과 코드 생성 기능을 삽입하기 위한 도구로 설계되었다.[1]
Blockly의 화면에는 블록을 배치하는 workspace, 선택 가능한 블록을 정리하는 toolbox, 블록 목록을 표시하는 flyout이 있다. 블록은 명령문 또는 값·표현식의 역할에 따라 연결할 수 있는 단자를 가지며, 호스트 애플리케이션은 블록의 종류와 색상, 입력 필드와 연결 규칙을 원하는 작업에 맞게 정의할 수 있다. 사용자가 작성한 그래프는 단순한 그림이 아니라 코드 생성이나 다른 데이터 처리로 변환할 수 있는 구조화된 프로그램 표현이다.
Blockly의 실행 흐름은 일반적으로 블록을 직접 CPU에서 실행하는 방식이 아니라 작업 공간의 블록 그래프를 순회해 JavaScript·Python·Lua·Dart·PHP 같은 대상 언어의 소스 코드로 바꾸는 것이다. 각 블록의 생성기는 연산자 우선순위와 문장 결합, 들여쓰기 등 대상 언어의 규칙을 고려해 출력을 구성한다. 개발자는 별도의 생성기를 작성해 다른 언어 또는 자체적인 도메인 특화 언어에도 연결할 수 있다.[2]
Blockly는 프로그래밍 입문 교육뿐 아니라 로봇 제어, 간단한 자동화, 데이터 흐름 구성과 웹 기반 편집기에서 사용된다. 텍스트의 문법 오류 대신 연결할 수 있는 블록의 형태로 일부 구조적 제약을 표현할 수 있는 것이 장점이며, Scratch 같은 완성된 교육용 개발 환경과는 구현·제품의 범위가 다르다. 시각적 편집과 코드 생성 라이브러리라는 정체성은 언어 자체보다 프로그래밍 환경을 제작하는 기술에 가깝다.