시작하기
8부

블록 코딩

블록 코딩은 수학 계산, 날짜·시간 연산, 텍스트 처리, 단위 변환 등을 블록 조합으로 구현하는 도구입니다.

일반

로직의 모든 값 입력 항목에서 블록 코딩을 사용할 수 있습니다. 값 입력 항목의 우측 버튼을 클릭하면 네 가지 입력 방식을 선택할 수 있습니다.

  • 직접 입력: 값을 그대로 입력합니다.
  • 변수의 값: 다른 변수의 현재 값을 사용합니다.
  • 블록 편집기: 블록을 조합하여 계산한 결과를 사용합니다.
  • Lua 스크립트: Lua 코드를 작성하여 return 값을 사용합니다.

네 방식 모두 해당 입력 항목의 타입과 일치하는 값을 반환해야 합니다. 타입이 일치하지 않으면 실행 시 오류가 발생합니다.

블록 편집기

블록 편집기를 선택하고 블록 편집을 클릭하면 편집기가 열립니다. 편집기는 기능별 블록을 카테고리로 구분한 툴박스와 블록을 연결하여 구성하는 워크스페이스로 이루어져 있습니다.

툴박스와 워크스페이스, 반환 블록이 있는 블록 편집 창
블록 편집 창입니다. 왼쪽이 툴박스, 오른쪽이 워크스페이스이며 계산 결과는 반환 블록에 연결합니다.

블록 사용 규칙

  • 반환 블록은 워크스페이스에 미리 놓여 있으며, 계산 결과를 블록 편집기 밖으로 내보내는 유일한 경로입니다. 반환 블록에 연결한 값의 타입은 해당 값 입력 항목의 타입과 일치해야 합니다.
  • 대부분의 블록은 입력 또는 출력을 가지며(둘 다 없는 블록도 있습니다), 출력이 있는 블록은 드래그하여 다른 블록의 입력에 연결합니다.
  • 입력과 출력에는 데이터 타입이 있으며 같은 타입끼리만 연결됩니다. 데이터 타입의 종류는 변수 타입과 동일합니다.
  • 블록 위에 마우스를 올리면 설명이 툴팁으로 표시되고, 우클릭하면 사용 가능한 명령이 표시됩니다.
  • 입력 개수가 정해지지 않은 블록(조건, 텍스트 합치기, 리스트 만들기, 지역 함수의 매개변수 등)은 블록의 톱니바퀴 버튼으로 항목을 추가·삭제하거나 순서를 변경합니다.
  • 이미 블록이 연결된 입력에 새 블록을 연결하면 기존 블록은 밖으로 분리됩니다.
  • 쉐도우 블록은 편의를 위해 미리 채워진 블록으로, 다른 블록으로 대체하면 자동으로 삭제됩니다.
  • 완성된 블록은 모두 연결된 상태여야 하며, 비어 있는 입력이나 출력이 있으면 실행 시 오류가 발생합니다.
  • 여러 블록을 상하로 연결하면 위에서부터 순차적으로 실행되며, 조건문과 반복문으로 복잡한 계산도 구성할 수 있습니다.
  • 반복 중단 블록은 반복 블록 안에서만, 지역 함수의 다음을 반환 블록은 지역 함수 안에서만 사용할 수 있습니다.
알아두기 위치와 인덱스의 시작 번호는 카테고리마다 다릅니다. 텍스트와 리스트는 1부터 세며 찾지 못하면 0을 반환하고, 바이트 배열과 비트/바이트, JSON, XML 은 0부터 셉니다 (JSON 은 찾지 못하면 -1을 반환합니다).
알아두기 각도의 단위는 삼각함수(sin, cos, tan)의 입력만 도(degree)이며, 역삼각함수의 출력과 쌍곡함수, 좌표 변환, 벡터 각도, 복소수 편각은 모두 라디안(rad)입니다. 단위 변환 카테고리의 각도 변환 블록으로 맞춥니다.

블록

툴박스는 18개의 기능 카테고리로 구성됩니다. 편집기 상단의 검색창에 이름이나 설명을 입력하면 해당하는 블록만 추려서 표시하며, 각 블록의 상세 설명은 블록 위에 마우스를 올려 툴팁으로 확인할 수 있습니다.

카테고리포함 블록
변수프로젝트 변수를 읽고 쓰는 블록입니다.
논리조건문(if), 비교 연산, 불리언 연산입니다.
반복횟수, 조건, 증감, 리스트 반복과 반복 중단입니다.
수학사칙연산과 수학 함수입니다.
날짜/시간날짜·시간 계산과 변환입니다.
텍스트문자열 조작입니다.
바이트 배열이진 데이터 조작입니다.
리스트리스트 생성, 조회, 조작입니다.
타입 변환변수 타입 간 변환입니다.
단위 변환길이, 압력, 에너지, 속도, 온도, 천문 거리, 각도, 좌표(도·분·초), 방위 변환입니다.
자연/과학태양과 달의 출몰 시각·방위·고도, 습공기 특성, 표준 대기압 계산입니다.
비트/바이트비트 연산입니다.
복소수/벡터복소수와 벡터 연산입니다.
JSONJSON 파싱과 생성입니다.
XMLXML 파싱과 생성입니다.
색상색상 값 조작과 변환입니다.
지역 변수해당 블록 편집기 안에서만 사용하는 임시 변수입니다.
지역 함수해당 블록 편집기 안에서 정의하여 호출하는 함수입니다.

지역 변수와 지역 함수

지역 변수는 해당 블록 편집기 안에서만 사용하는 변수로, 계산 중간값의 임시 저장에 사용합니다. 프로젝트 변수와는 별개이므로 다른 로직이나 대시보드에서는 보이지 않습니다. 변수 만들기, 값 쓰기, 값 읽기, 숫자 더하기 블록을 제공하며, 반복 카테고리의 증감 반복과 리스트 반복은 인덱스와 항목을 지역 변수에 저장하는 방식으로 동작합니다.

지역 함수는 같은 계산을 여러 곳에서 반복해야 할 때 사용합니다. 반환값이 없는 함수와 반환값이 있는 함수 두 가지를 정의할 수 있고, 블록의 톱니바퀴 버튼으로 입력 매개변수를 추가합니다. 정의한 함수는 같은 편집기 안의 다른 블록에서 호출 블록으로 실행하며, 호출 블록도 반환값 유무에 따라 두 가지입니다. 함수 도중에 값을 돌려주려면 다음을 반환 블록을 사용합니다.

주의 지역 변수와 지역 함수는 정의한 블록 편집기 안에서만 유효합니다. 다른 값 입력 항목의 블록 편집기에서는 사용할 수 없으므로, 여러 곳에서 공유할 값은 프로젝트 변수로 만듭니다 (6부).