Workshop 변수와 의존 관계
변수는 모듈 안에서 데이터가 이동하는 방식을 정의합니다. 위젯에 입력할 객체 집합, 사용자가 선택한 값, 함수의 결과와 다른 변수에서 계산한 값을 연결하는 데 사용합니다.
왼쪽 Variables 패널에서 현재 변수를 확인하고 +로 새 변수를 만듭니다. 이름이나 고유 ID로 검색하고 정의 유형 또는 활성화한 설정으로 필터링할 수 있습니다. 위젯을 선택하면 그 위젯이 사용하는 변수를 별도로 모아 보여 주며, 선택한 위젯이 없으면 현재 페이지에서 사용하는 변수를 구분합니다.
이름과 편집
변수를 선택하면 목록 오른쪽에 구성이 열립니다. Variable name 또는 연필 아이콘을 선택하여 이름을 바꿉니다.
이름은 모듈 안에서 고유해야 합니다. 대소문자를 구분하지 않으므로 MyVar와 myvar는 같은 이름으로 취급하고 중복되면 숫자 접미사를 붙입니다. 이름을 지우면 이전 이름으로 복원합니다.
Variables 패널에는 폴더가 없습니다. 페이지나 탭별로 알파벳순 그룹을 만들려면 $page_Dashboard_filterState, $tab_Overview_selectedObject처럼 문맥을 이름 앞에 넣을 수 있습니다.
위젯이나 후속 변수가 사용하지 않는 변수는 휴지통 아이콘으로 삭제할 수 있습니다. 사용 중인 변수는 먼저 그 의존 관계를 확인합니다.
정의 방식
이름 옆 메뉴에서 값을 채우는 방식을 고릅니다. 선택 가능한 방식은 변수 자료형에 따라 달라집니다.
| 정의 방식 | 값의 출처 |
|---|---|
| Static | 직접 지정한 값 |
| Function | 함수 실행 결과 |
| Object set aggregation | 객체 집합의 집계 결과 |
| Object property | 한 객체에서 선택한 속성값 |
| Object set definition | 시작 객체 유형, 필터와 연결 객체 탐색 등으로 정의한 집합 |
| Variable transformation | 다른 변수를 참조할 수 있는 일련의 변환 결과 |
| SQL query | 모듈의 객체 집합과 다른 변수에 대한 Ontology SQL 질의 결과 |
Object property에서는 성능 제약이 있는 일부 복잡한 객체 속성을 사용할 수 없습니다. 정의 방식마다 화면에서 제공하는 입력에 따라 구성합니다.
객체 집합 변수에는 New variable from current가 있습니다. 복제 버튼 옆의 이 기능은 현재 집합을 입력으로 사용하는 새 객체 집합 변수를 만듭니다. 원래 변수의 정의를 참조하면서 필터나 탐색을 이어 구성하는 용도입니다.
Variable settings에서는 external ID를 지정하고 Module interface, Routing 및 State saving에 사용할지 정합니다. 이 기능들은 모듈 간 입력 전달, 주소를 통한 상태 지정과 저장 상태의 범위를 구성합니다.
자료형
| 자료형 | 값과 초기화 경로 |
|---|---|
| Array | Boolean, Date, Numeric, GeoPoint, GeoShape, String, Timestamp 또는 Struct 값의 배열을 받습니다. |
| Boolean | true 또는 false입니다. 정적 값, 함수, 집계 또는 객체 속성에서 초기화합니다. |
| Date | 날짜입니다. 정적 값, 함수, 집계 또는 객체 속성에서 초기화합니다. |
| GeoPoint | 지리 좌표입니다. 객체 속성에서 초기화합니다. |
| GeoShape | 지리 도형입니다. 객체 속성 또는 함수 출력에서 초기화합니다. |
| Numeric | 정수와 부동소수점 수를 받습니다. 정적 값, 함수, 집계 또는 객체 속성에서 초기화합니다. |
| Object set | 객체 집합입니다. 객체 유형, 온톨로지 인터페이스 또는 다른 객체 집합 변수를 출발점으로 정의합니다. |
| Object set filter | 객체 집합을 필터링할 속성 유형과 값의 조건을 저장합니다. 객체 유형과 필터 조건으로 초기화합니다. |
| String | 문자열입니다. 정적 값, 함수, 집계 또는 객체 속성에서 초기화합니다. |
| Struct | 문자열 fieldID를 값에 대응시키는 복합 자료형입니다. 정적 값, 객체의 Struct 속성, CustomType을 반환하는 함수 또는 SQL 질의로 초기화합니다. 중첩 Struct는 지원하지 않으며 그 외 Workshop 변수 자료형을 필드값으로 사용할 수 있습니다. SQL 초기화에는 추가 필드 제약이 적용됩니다. |
| Timestamp | 시각입니다. 정적 값, 함수, 집계 또는 객체 속성에서 초기화합니다. |
| Time series set | 한 객체의 시계열 속성을 저장하고 필요하면 시계열 변환을 적용합니다. |
객체 집합은 속성값이나 Object Set Filter로 좁히고 Search Around로 연결 객체를 탐색할 수 있습니다. 공유 속성 유형이나 객체 기반 링크 유형을 통해 다른 객체 유형으로 pivot하는 경로도 있습니다. 여러 유형의 공통 속성으로 구성하려면 온톨로지 인터페이스를 사용합니다.
지연 계산과 재계산
편집 및 보기 모드에서 Workshop은 화면에 보이는 위젯, 레이아웃이나 필요한 후속 변수에서 값을 요구할 때까지 계산을 미룰 수 있습니다. 삽입한 모듈에도 적용됩니다. 숨긴 탭에서만 사용하는 변수는 탭을 표시할 때 계산할 수 있습니다.
가시성 조건을 계산하는 변수처럼 화면이 숨겨져 있어도 필요한 값은 계산할 수 있습니다. 변수 평가 중에는 loading indicator를 표시합니다.
지원되는 정의에는 Recompute variable value를 설정할 수 있습니다. 자동으로 재계산하거나, 이벤트를 받았을 때만 계산하거나, 모듈 로드와 이벤트에서 계산하는 방식이 있습니다. 이벤트 실행 순서에 따라 이전 이벤트가 시작한 후속 계산이 다음 이벤트 전에 끝나는지는 별도로 고려합니다.
Variable lineage graph
Variables 패널 header의 Variable lineage graph를 열면 변수와 위젯이 어떻게 연결되는지 볼 수 있습니다. 값을 읽거나 쓰는 위젯과 재계산을 일으키는 의존 관계를 추적하는 데 사용합니다.
각 노드는 변수 또는 위젯입니다. 위와 아래의 화살표로 상위 의존 대상과 하위 소비 대상을 펼칩니다. Show all은 전체 앱 그래프를 펼치고 Clear는 표시된 노드를 비웁니다. Undo와 redo로 펼치기, 접기와 선택 변경을 앞뒤로 이동할 수 있습니다.
Show pages and overlays를 켜면 사용 위치와 범례를 표시합니다. 범례에는 현재 그래프에 보이는 노드가 참조하는 페이지와 overlay만 나타납니다.
Show computation time은 앱에서 해당 변수값을 마지막으로 계산한 시각을 표시합니다. 원천 데이터가 앱 밖에서 마지막으로 갱신된 시각과는 다릅니다. 재계산이 오래 걸리는 부분을 찾으면 함수 기반 변수를 나누거나 상위 변수의 재계산 방식을 조정할 수 있습니다.