Workshop 변수 변환 참조
변수 변환은 자주 쓰는 연산을 연결하여 값을 계산하는 기능입니다. 앞 연산의 결과를 뒤 연산에서 참조할 수 있습니다. 변환은 브라우저에서 실행하며 문자열, 숫자, 날짜와 Boolean 같은 원시값의 연산에는 Foundry 서비스로 왕복 요청을 보낼 필요가 없습니다.
계산할 시점은 재계산 설정, 사용자가 입력한 값의 즉시 변경은 이벤트와 함께 구성합니다.
일반 연산
| 연산 | 동작 |
|---|---|
| String concatenation | 고정 텍스트와 변수값을 문자열로 결합합니다. 배열을 입력하면 원소를 문자열로 바꾸어 이어 붙이며 원소 사이의 구분 값을 선택적으로 지정할 수 있습니다. |
| If/else statement | 조건에 따라 미리 정한 값이나 변수를 반환합니다. |
| Cast operation | 지원되는 원시 자료형 사이에서 값을 변환합니다. |
Cast operation
| 변환 | 입력과 설정 |
|---|---|
| String에서 Numeric으로 | 숫자를 나타내는 문자열을 입력합니다. |
| String에서 Date로 | 날짜 문자열과 그 형식에 맞는 Parser를 지정합니다. 예를 들어 06/26/2024에는 M/dd/yyyy를 사용합니다. |
| String에서 Timestamp로 | 시각 문자열과 Parser를 지정합니다. 예를 들어 2024 06 26 12:50 AM에는 yyyy M dd hh:mm aa를 사용합니다. 시간대는 사용자 로컬, 고정 선택 또는 문자열 참조/변수로 지정합니다. |
| String에서 GeoPoint로 | 위도, 경도 순서의 문자열을 사용합니다. 예는 40.782142,-73.96596입니다. |
| String에서 GeoShape로 | 도형 유형과 좌표 배열을 가진 JSON 문자열을 사용합니다. |
| Timestamp에서 Date로 | 지정한 시간대에서 해당 절대 시각이 속한 날짜를 구합니다. 시간대는 사용자 로컬, 고정 선택 또는 문자열 참조/변수로 지정합니다. |
| Date에서 Timestamp로 | 지정한 시간대의 해당 날짜가 시작하는 시각으로 바꿉니다. 시간대의 세 가지 선택 방식은 위와 같습니다. |
| 원시값에서 String으로 | String concatenation을 사용합니다. |
GeoShape의 Polygon 입력 예입니다. GeoPoint 문자열의 위도/경도 표현과 달리 이 GeoJSON 좌표는 경도/위도 순서입니다.
{
"type": "Polygon",
"coordinates": [
[
[-73.9580917968885, 40.80044406792189],
[-73.98186087075722, 40.76811683550534],
[-73.97304465743831, 40.76434392565562],
[-73.94930767833077, 40.79687062648023],
[-73.9580917968885, 40.80044406792189]
]
]
}
객체 집합 연산
| 연산 | 동작 |
|---|---|
| Is empty | 집합에 객체가 없는지 확인합니다. |
| Is not empty | 집합에 객체가 있는지 확인합니다. |
| Object property | 하나의 객체에서 지정한 속성값을 가져옵니다. |
| Object set aggregation | 지정한 속성을 min, max, sum, average 또는 cardinality로 집계합니다. |
| Object RID | 지정한 객체의 RID를 반환합니다. |
원시값을 계산하는 연산과 객체 데이터에서 값을 얻는 연산을 구분하여 입력과 의존 관계를 설정합니다.
숫자 연산
| 연산 | 반환값 |
|---|---|
| Add | 숫자값 또는 변수들의 합 |
| Subtract | 입력 숫자들의 차 |
| Multiply | 입력 숫자들의 곱 |
| Divide | 입력 숫자들의 몫 |
| Absolute | 절댓값 |
| Negate | 부호를 반대로 바꾼 값 |
| Round Up (Ceil) | 지정한 정밀도로 올린 값 |
| Round Down (Floor) | 지정한 정밀도로 내린 값 |
| Round Nearest | 지정한 정밀도로 가장 가까운 값으로 반올림한 결과 |
| Max | Numeric, Date 또는 Timestamp 값들의 최댓값 |
| Min | Numeric, Date 또는 Timestamp 값들의 최솟값 |
날짜와 시간 계산
| 연산 | 입력과 단위 |
|---|---|
| Relative date | 기준 날짜에 지정한 일, 주, 월 또는 연 단위 수량을 더하거나 뺍니다. |
| Relative time | 기준 시각에 지정한 초, 분, 시간, 일, 주, 월 또는 연 단위 수량을 더하거나 뺍니다. |
| Between dates | 두 날짜의 차이를 일, 주, 월 또는 연 단위로 구합니다. |
| Between times | 두 시각의 차이를 초, 분, 시간, 일, 주, 월 또는 연 단위로 구합니다. |
| Current date | 현재 날짜를 반환합니다. |
날짜 비교와 시각 비교에는 각각 다음 연산이 있습니다. 첫 번째 입력을 두 번째 입력과 비교하여 Boolean을 반환합니다.
| 연산 | 조건 |
|---|---|
| Is on or after | 같거나 이후입니다. |
| Is after | 이후입니다. |
| Is on or before | 같거나 이전입니다. |
| Is before | 이전입니다. |
| Is equal | 같습니다. |
숫자 비교
Equal to, Not equal to, Less than, Less than or equal to, Greater than과 Greater than or equal to로 비교합니다. 각각 같음, 다름, 미만, 이하, 초과와 이상의 조건이며 결과는 Boolean입니다.
문자열 비교
| 연산 | 조건 |
|---|---|
| Is | 문자열이 같습니다. |
| Is not | 문자열이 다릅니다. |
| Contains | 두 번째 입력이 첫 번째 문자열의 부분 문자열입니다. |
| Does not contain | 두 번째 입력이 첫 번째 문자열에 포함되지 않습니다. |
| Starts with | 두 번째 입력이 첫 번째 문자열의 접두어입니다. |
| Ends with | 두 번째 입력이 첫 번째 문자열의 접미어입니다. |
이 Contains는 객체 집합 필터의 접두어 기반 CONTAIN 조건과 다른 연산입니다.
Boolean과 null 확인
Is true는 Boolean이 true인지, Is false (NOT)는 false인지 확인합니다. Is null과 Is not null은 지정한 변수값의 null 여부를 확인합니다.
지리 정보
| 연산 | 반환값 |
|---|---|
| Geohash from geopoint | GeoPoint의 geohash 문자열 |
| Latitude from geopoint | 숫자 위도 |
| Longitude from geopoint | 숫자 경도 |
| MGRS from geopoint | GeoPoint의 MGRS 문자열 |
배열 연산
| 연산 | 동작 |
|---|---|
| Compose | 입력 배열들의 값을 한 배열로 묶습니다. |
| Intersection | 입력 배열들의 공통 값을 가진 배열을 반환합니다. |
| Update element at | 지정한 인덱스의 원소를 바꾼 배열을 반환합니다. |
| Get element at | 지정한 인덱스의 원소를 배열의 원소 자료형에 맞춰 반환합니다. |
| Length | 원소 수를 숫자로 반환합니다. |
배열 확인에는 Contains, Does not contain과 Is subset of가 있습니다. 값의 포함 또는 제외, 다른 배열의 부분집합 여부를 확인합니다.
Is null과 Is not null도 사용할 수 있습니다. 값으로 배열 변수의 참조를 선택하면 각각 is empty와 is not empty로 표시되고 그 의미로 평가합니다. 배열 참조를 선택했을 때의 빈 배열 검사와 일반 값의 null 검사를 구분합니다.
Struct 필드
Extract struct field는 Struct와 field ID를 받아 해당 필드값을 반환합니다. Struct 변수에서 위젯 입력이나 다른 변환에 필요한 개별 필드를 꺼내는 절차를 설명합니다.