[블록 코딩 개발] Blockly란?
* 공부한 내용을 기록한 일기장 같은 느낌으로 작성함
Blockly는 Google에서 개발한 블록 코딩을 위한 라이브러리이다.
즉, Scratch 등을 떠올리면 편하다. Blockly는 그래픽 기반의 코딩 라이브러리로서, 자바스크립트나 파이썬과 같은 프로그래밍 문법에 대한 이해나, 이외의 텍스트 기반 코딩의 환경(IDE)에 익숙하지 않은 사람들도 쉽게 코딩할 수 있다는 장점이 있다.
Blockly에는 재미있는 특징이 있는데, 그것은 바로 블록을 통해 다양한 프로그래밍 언어를 구현할 수 있다는 것이다.
이는 사용자가 블록 코딩을 하면, 다양한 언어로 변환할 수 있어서 프로그래밍 언어에 대한 장벽을 다소 낮출 수 있다. Blockly에서 변환을 지원하는 언어는 다음과 같다.
-Blockly에서 지원하는 언어-
- Javascript
- Python
- Lua
- Dart
- PHP
나도 파이썬과 자바스크립트만 어느 정도 아는 상태이고, 나머지 프로그래밍 언어는 사실 들어만 봤지 생소하다.
이외에도, Blockly는 순수 Javascript로 구현이 가능하며, 별도의 서버가 필요 없이 HTML에 Workspace만 잘 만들어두면 그것만 단독으로 활용할 수 있다! 즉, PC로도, 그리고 모바일에서도 동작한다!
간단히 데모를 구경해보자.
Blockly | Google Developers
A JavaScript library for building visual programming editors.
developers.google.com
상단의 링크는 Blockly의 홈페이지이다. 해당 페이지에서 간단히 데모를 열람할 수 있다.
보이는 바와 같이, 블록 코딩을 통해 좌측은 블록 코딩, 우측은 이에 대한 텍스트 코딩으로 변환시켜준다. 파이썬의 경우는 어떨지 살펴보자.
나는 파이썬 개발자로서, 상당히 익숙한 문법이 눈에 보인다.
Blockly는 상당히 잘 만들어진 블록 라이브러리로서, 생각보다 많이 들어봄직한 툴들이 이 Blockly를 기반으로 하고 있다.
상당히 유명한 App Inventor, Microbit 등의 블록형 프로그래밍 툴들이 Blockly 기반임을 확인할 수 있다. (여담인데, Scratch도 코드 베이스는 Blockly로 변환되었다고 한다. 우왕...)
사실 Blockly가 가진 고유의 블록들(조건문, 반복문 등의 기초 로직) 이외에 개발자들이 직접 블록을 커스터마이징해서 사용할 수 있다는 장점도 있다.
$('#btn_test').on('click', () => {
console.log("JQuery!")
})
이해를 돕기 위해서 JavaScript 개발 환경을 생각해보자. JavaScript에서는 활용할 수 있는 라이브러리가 무궁무진하다. 가장 기본적인 JQuery부터 Ajax라던가 기타 등등의 다양한 라이브러리들이 있는데, Blockly에 없는 블록이라면 개발자가 그냥 블록으로 만들어버리면 된다!
test_list = [i for i in range(0, 10)]
Python은 어떨까? Blockly에는 없는(없겠지?) List Comprehension과 같은 로직들을 블록으로 구현해버리면 된다.
그럼 이걸 누가 쓰냐고? 음... 프로그래밍 교육 목적으로 활용해도 좋고, 게임을 만들어봐도 좋고, 심심풀이로 토이 프로젝트를 만들어보아도 좋다. (Google Blockly Document에서는 단순한 장난감은 아니라고 한다, 다양한 구현을 통해 완전히 다른 앱으로 동작할 수도 있다는 의미이겠다.)
나는 음... 토이 프로젝트를 한 번 만들어보면 좋겠다... 심심하기도 하니..
그러면 다음 시간에는 간단하게 Blockly Document에 나온대로, 물론 약간의 첨가는 있겠지만 만들어볼 것이다! 만들기에 앞서, Getting Started Document를 간단히 정리하고, Blockly에서 제공하는 Codelabs (튜토리얼 같은 느낌이다.)를 통해서 직접 만들어볼 것이다.