표현식

표현식은 스크립트 내에서 값을 비교하거나 값의 결과를 비교하는 모든 것입니다. 예를 들어, X = 5, Y = dog, Z = "{var1}"은(는) 값 또는 값의 결과를 비교하는 방식으로 사용할 경우 모두 표현식이 될 수 있습니다. 예를 들어 X = 5은(는) X 변수의 값을 5와 비교합니다. 이와 유사하게 Z = "{var1}"은(는) Z 변수의 값을 var1 변수의 현재 값과 비교합니다.

또한 앞의 예시 중 무엇이든 할당 문이 될 수 있습니다. 할당 문은 등호 기호의 오른쪽에 있는 값을 기호 왼쪽의 변수에 할당합니다. 변수 할당은 표현식이 아닙니다.

표현식은 다음에 사용할 수 있습니다.

  • 수학 또는 대수 계산을 수행합니다.
  • 두 값을 비교하고 비교의 결과에 따라 조치를 취합니다.
  • 표현식이 참 또는 거짓 중 무엇으로 평가되는지 여부에 따라 논리적인 의사결정을 내립니다.

표현식에서 비교하는 값은 문자, 숫자, 또는 두 가지의 조합으로 구성될 수 있습니다. 또한 변수도 포함될 수 있습니다. Studio에는 표현식이 세 가지 있는데, 숫자, 문자열, 부울입니다.

시도해 보기

표현식 예시 스크립트를 다운로드하고 이를 Studio가져오기합니다. 이 도움말 페이지의 예시는 예시 스크립트의 Snippet 작업에서 사용할 수 있습니다. Snippet Editor 창을 열고 디버거를 실행하여 각 예시가 작동하는 방식을 확인할 수 있습니다.

숫자 표현식

숫자 표현식에는 +, - 등 숫자 및 수학 또는 부울 연산자만 포함됩니다. 변수가 계산에서 사용되는 숫자 값을 보유하면 변수 참조 역시 포함할 수 있습니다.

숫자 표현식은 스니펫에서 사용되며, Studio 작업의 속성을 구성하는 데도 사용됩니다. 예를 들어 IF 작업에서는 작업의 의사결정 메커니즘으로 평가될 표현식으로 Expression 속성을 구성합니다. IF 키워드를 사용하여 스니펫 내에서 동일한 작업을 수행할 수 있습니다.

숫자 표현식 구문

숫자 표현식은 따옴표로 묶을 수 없습니다. 여기에는 수학 및 부울닫힘 참 및 거짓과 같은 두 가지의 가능한 값을 가진 데이터 유형. 표현식이 포함됩니다. 숫자 표현식을 따옴표로 묶으면 텍스트로 취급됩니다. 예를 들어, c1 = 123 + 456579(으)로 평가되지만, c2 = "123 + 456"의 결과는 123 + 456입니다.

숫자 표현식에서 사용되는 변수를 중괄호와 큰따옴표로 묶지 마십시오. 그러면 스크립트에서 오류가 발생합니다.

숫자 표현식 평가

숫자 표현식에서 스크립트가 숫자 값을 숫자로 평가할 수 있는 경우에는 이를 숫자로 평가합니다. 즉, 이는 다음과 같은 의미입니다.

  • 문자나 단어처럼 숫자 값으로 평가할 수 없는 모든 것은 변수 참조인 것으로 간주합니다.
  • 표현식 내에서 숫자가 아닌 문자가 문자열이 있는 스크립트 내의 변수인 경우, 스크립트는 숫자가 아닌 문자를 무시하고 원래 표현식의 숫자 부분을 평가합니다.
  • 표현식 내의 숫자가 아닌 문자가 숫자 값이 있는 변수인 경우, 스크립트는 표현식의 평가에 해당 값을 포함합니다.
  • 표현식 안에 있는 숫자가 아닌 문자가 스크립트의 변수가 아닌 경우, 스크립트는 원래 표현식에서 해당 문자를 무시합니다.

다음 예시에서 스크립트는 nextNum을(를) 숫자(c1 = 123 + 456 + nextNum)로 평가할 수 없으므로 이를 변수로 평가하려고 시도합니다. 다음 예시에서는 nextNum이(가) 변수인지의 여부와 그 값이 무엇인지에 따라 세 가지 시나리오의 결과를 보여줍니다.

nextNum이(가) 문자열 값이 있는 변수인 경우 결과는 c1 = 579입니다.

ASSIGN nextNum = "my string"
ASSIGN c2 = 123 + 456 + nextNum

nextNum이(가) 숫자 값이 있는 변수인 경우 결과는 c2 = 1368입니다.

ASSIGN nextNum = 789
ASSIGN c3 = 123 + 456 + nextNum 

nextNum이(가) 변수가 아닌 경우 결과는 c3 = 579입니다.

ASSIGN c3 = 123 + 456 + nextNum

두 가지 모두 문자열 값으로 간주되는 숫자를 보유한 두 변수가 포함된 평가식을 평가할 때는 스크립트가 값을 숫자로 변환하고 이에 따라 평가합니다. 다음 예시의 결과는 c4 = 50입니다.

ASSIGN nextNum = "20"
ASSIGN otherNum = "30"
ASSIGN c4 = nextNum + otherNum

표현식을 중괄호로 묶으면 문자열 값에 숫자 표현식을 포함할 수 있습니다. 예:

ASSIGN nextNum = 6
ASSIGN otherNum = 7
ASSIGN c5 = "There are {nextNum + otherNum} fish in the aquarium."

앞에 0이 붙는 숫자

Studio이(가) 숫자가 문자열로 간주될 때 숫자를 처리하는 방법과 숫자가 숫자로 간주될 때 숫자를 처리하는 방법에는 차이가 있습니다. 숫자가 문자열로 처리될 때는 앞에 0이 붙을 수 있습니다. 앞에 0이 붙는 숫자 문자열 값을 보유한 두 변수를 함께 추가하면 앞의 0이 제거됩니다. 예를 들어, 다음 평가식의 결과는 c6=59입니다.

ASSIGN nextNum = "00020"
ASSIGN otherNum = "000039"
ASSIGN c6 = nextNum+otherNum

결과 값의 앞에 0이 붙어야 하는 경우에는 format() 함수0 자리표시자를 사용하여 값에 0을 다시 붙일 수 있습니다.

문자열 표현식

문자열 표현식에는 #, @ 등 영숫자와 특수 문자가 포함될 수 있습니다. 문자열 표현식에 대한 구문은 문자열 값을 변수로 할당하기 위한 구문과 유사합니다.

  • 스니펫에서 표현식에 대한 문자열 값은 항상 큰따옴표나 작은따옴표로 묶어야 합니다. 이는 문자열 값과 동일합니다.
  • 문자열 표현식으로 변수 대체를 수행하려면 변수 이름을 중괄호로 묶습니다.
  • 큰따옴표 등 일부 문자는 코드로 간주됩니다. 문자열 값에 이러한 문자를 포함하려면 이스케이프 시퀀스를 사용해야 합니다.

문자열 비교

문자열은 부울 표현식의 값으로 평가할 수 있습니다. 예를 들어 다음 표현식은 IF 구문에 사용할 수 있습니다.

customer = "Grendel Cainson"

customer에 정확한 값인 Grendel Cainson이(가) 포함되어 있는 경우 결과는 true입니다. 다른 값을 가진다면 결과는 false입니다.

문자열 비교에는 greater-than 및 less-than 연산자를 사용할 수 있습니다. 이러한 비교에서 각 문자에는 값이 할당됩니다(A = 1 및 Z = 26). 스크립트는 첫 문자를 비교하는 것으로 시작합니다. 이들이 다른 경우에는 알파벳에서 더 뒤 문자에 해당하는 문자로 시작하는 문자열이 더 큰 것으로 간주됩니다. 예를 들어 비교가 apple > banana인 경우, 결과는 false입니다. banana이(가) apple보다 크기 때문이며, 이는 b이(가) 알파벳에서 더 뒤 문자에 해당하기 때문입니다.

첫 문자가 동일하면 스크립트는 두 번째 문자를 비교합니다. 이들이 다르면 비교가 중단됩니다. 두 번째 문자가 동일하면 스크립트는 서로 다른 쌍에 도달할 때까지 문자를 계속 비교합니다. 예를 들어 grapes > grapey과(와) 비교할 때 스크립트는 마지막에 도달할 때까지 각 문자를 비교하기 때문입니다. 결과는 거짓입니다. grapey이(가) grapes보다 크기 때문이며, 이는 y이(가) 알파벳에서 s보다 더 뒤 문자에 해당하기 때문입니다.

greater-than-or-equal-to 또는 less-than-or-equal to 비교에서는 동일한 규칙이 적용됩니다. 스크립트가 연산자의 왼쪽 문자열과 오른쪽 문자열이 동일한 것을 확인하면 평가식은 으로 평가됩니다.

문자열 비교는 대소문자를 구분합니다.

문자열의 이스케이프 시퀀스

Studio은(는) 문자열 상수 내에서 이스케이프 시퀀스를 지원합니다. 이스케이프 시퀀스를 사용하면 문자열에 특정한 특수 문자를 포함할 수 있습니다. 큰따옴표 또는 열림 중괄호 등의 문자는 코드로 인식됩니다. 문자열에 포함되면 컴파일러가 리터럴 값 대신 비 리터럴 코드 의미로 이를 해석합니다. 이스케이프 시퀀스를 사용하면 문자열에 이러한 문자를 포함할 수 있습니다. 이스케이프 시퀀스 없이 이러한 문자를 문자열에 포함하면, 예상과 다른 결과가 출력되며, 오류가 발생할 수 있습니다.

변환된 XML 또는 JSON이 포함된 문자열에 이스케이프 시퀀스를 추가할 필요가 없습니다. 이스케이프 시퀀스는 이를 필요로 하는 문자에 자동으로 추가됩니다.

이스케이프 시퀀스를 사용하는 모든 문자열의 접두사로 달러 기호($)를 사용하십시오: $"...". 큰따옴표 안에 다음과 같은 이스케이프 시퀀스 중 아무것이나 사용할 수 있습니다.

시퀀스 세부 정보
\" 큰따옴표를 포함합니다.
\' 작은따옴표를 포함합니다.
\t 탭을 포함합니다(ASCII 9).
\r 캐리지 리턴을 포함합니다(ASCII 13).
\n 줄 바꿈을 포함합니다(ASCII 10).
\b 백스페이스를 포함합니다(ASCII 8).
\{ 열린 중괄호를 포함합니다. 앞의 텍스트에 이스케이프된 열림 중괄호가 없는 경우에는 닫힘 중괄호를 이스케이프할 필요가 없습니다. 닫힘 중괄호를 이스케이프해야 하는 경우에는 '\}'과(와) 같습니다.
\0 null을 포함합니다(0은 영입니다).

다음 예시에서는 \n 이스케이프를 사용하여 문자열에 라인 피드를 추가합니다. 줄의 시작 부분으로 돌아갈 필요 없이 다음 줄로 커서를 이동합니다.

x = $"A phrase\nAnd a new line"

문자열이 출력되면 출력 결과는 다음과 같습니다.

A phrase

And a new line ]

앞의 예시에서 닫힘 대괄호는 커서를 의미합니다.

다음 예시에서는 \" 이스케이프 시퀀스를 사용하여 문자열에 큰따옴표를 추가합니다.

y = $"Embedding \"double quotes\" in a string."

문자열이 출력되면 출력 결과는 다음과 같습니다: Embedding "double quotes" in a string. 이스케이프 시퀀스가 없으면 스크립트는 단어 double 앞에 있는 따옴표까지의 문자열만을 인식합니다.

다음 예시에서는 \{ 이스케이프 시퀀스를 사용하여 문자열 내의 리터럴 중괄호를 포함합니다.

z = $"Using \{curly} braces."

문자열이 출력되면 출력 결과는 다음과 같습니다: Using {curly} braces. 이스케이프 시퀀스가 없으면 스크립트는 {curly}을(를) 변수로 해석합니다. 변수 중괄호에 대한 값을 찾지 못하면 스크립트는 이를 아무것으로도 대체하지 않으며, 따라서 변수의 값은 Using braces.입니다.

부울 표현식

Studio은(는) 부울닫힘 참 및 거짓과 같은 두 가지의 가능한 값을 가진 데이터 유형. 표현식 사용을 지원합니다. 스크립트에서 의사결정 로직을 생성하는 데 사용할 수 있습니다. 부울 표현식은 참 또는 거짓 중 하나로 평가되므로, 이를 사용하여 선택할 경로를 결정하기 위해 충족해야 하는 조건을 생성할 수 있습니다. 조건이 충족되면 스크립트가 해당 브랜치를 선택하지만, 충족되지 않으면 다른 브랜치를 선택합니다.

부울 표현식에서 사용할 수 있는 연산자는 다양합니다. 스크립트의 필요에 부합하는 논리적인 조건문을 정의할 수 있습니다. 예를 들어, 등호 기호(=)를 사용하여 값 하나가 다른 값과 동일한지 확인할 수 있으며, 초과(greater than) 연산자(>)를 사용하여 값 하나가 다른 값보다 큰지 확인할 수 있습니다.

부울 표현식을 IfSnippet 등의 작업과 함께 사용할 수 있습니다(CXone Studio의 도움말 페이지: If 및 Snippet). 스니펫에서 사용할 수 있는 여러 가지는 부울 표현식을 의사결정 메커니즘으로 사용하며, 여기에는 다음이 포함됩니다.

  • IF
  • IF ... ELSE
  • SELECT

다음 예시에서는 스니펫에서 IF...ELSE 문에 부울 표현식을 사용하는 경우를 보여줍니다.

ASSIGN var1 = "Cat"
IF var1 = "Dog"
{
	ASSIGN dogWasFound = true
}
ELSE
{
	ASSIGN dogWasFound = false
}

또한 부울 표현식은 작업을 사용한 스크립팅에도 사용할 수 있습니다. 다음 이미지에서는 Studio 작업을 사용하는 동일한 IF...ELSE 문을 볼 수 있습니다. 표현식 샘플 스크립트에서 이 예시를 테스트할 수 있습니다.

페이지의 이 섹션에서 제공하는 부울 예시의 스크립트 버전입니다.

설정을 활성화 또는 비활성화하는 부울 값

부울 값은 가끔 CXone에서 스크립트를 활성화 또는 비활성화하는 데 사용합니다. 이 경우에는 부울 값을 변수로 할당할 수 있습니다. 설정을 활성화하려면 값을 또는 1로 할당합니다. 설정을 비활성화하려면 값을 거짓 또는 0으로 할당합니다.

단어와 숫자는 모두 유효한 부울 값입니다. 하지만, 작업의 속성에 대해 선호하는 값이 있는 경우에는 사용하는 Studio 작업에 관한 온라인 도움말을 확인하십시오. 어떤 경우는 사용하는 값은 따옴표로 묶으면 안 됩니다. 값을 따옴표로 묶으면 스크립트는 이를 부울 값 대신 리터럴 스트링으로 간주합니다.

연산자

연산자는 수학적 연산 또는 비교를 의미하는 기호입니다. +, -, = 등의 기호는 연산자입니다. 부울 연산자는 두 표현식을 비교하고 결과로 참/거짓 응답을 표시합니다. 스니펫은 수학적 연산자와 부울 연산자를 모두 지원합니다.

곱하기, 나누기, 더하기, 빼기 등의 일반적인 수학 연산뿐만 아니라 다음과 같은 연산도 수행할 수 있습니다.

  • 모듈러 연산자(%)
  • 제곱/지수(^)
  • 정수 나누기(\)
  • 배타적 논리합(~)

일반적인 연산의 수학적 순서는 모든 표현식에 적용됩니다. 괄호 안의 모든 것은 첫 번째 하위 단위로 평가됩니다. 지수/제곱 연산자는 두 번째 하위 단위로 평가됩니다. 다음에는 곱하기 및 나누기가 평가되고, 그다음은 더하기 및 빼기입니다. 모든 수학 연산자의 평가가 완료된 이후 마지막으로는 비교 연산자가 평가됩니다.

부울 연산자

다음 부울 연산자를 스니펫에서 사용할 수 있습니다. 이 모든 연산자는 숫자 또는 문자열숫자 또는 문자열 비교에 사용할 수 있습니다. 문자열 비교는 알파벳 순서를 사용하여 더 크거나 보다 작은 것을 결정합니다. 비교 시에는 A = 1이고 Z = 26입니다. 문자열 비교는 대소문자를 구분합니다.

연산자 기호 연산자 이름 세부 정보
= Equal 표현식의 양쪽이 상응하면, 표현식의 결과는 true (1)이며, 이외의 경우에는 표현식의 결과가 false (0)입니다.
!= Not equal 표현식의 양쪽이 상응하지 않으면, 표현식이 true (1)(으)로 평가되며, 이외의 경우에는 표현식의 결과가 0 false (0)입니다.
> Greater-than

표현식의 오른쪽왼쪽보다 낮으면 표현식의 결과가 true (1)이며, 이외의 경우에는 false (0)입니다.

>= Greater-than-or-equal

표현식의 오른쪽왼쪽보다 낮거나 왼쪽과 동일하면 표현식의 결과가 true (1)이며, 이외의 경우에는 false (0)입니다.

< Less-than

표현식의 왼쪽오른쪽보다 낮으면 표현식의 결과가 true (1)이며, 이외의 경우에는 false (0)입니다.

<= Less-than-or-equal

표현식의 왼쪽오른쪽보다 낮거나 오른쪽과 동일하면 표현식의 결과가 true (1)이며, 이외의 경우에는 false (0)입니다.

& And 모든 하위 표현식이 참으로 평가되면 전체 표현식의 결과가 true (1)이고 이외의 경우에는 false (0)입니다.
| Or 하위 표현식 중 하나가 참으로 평가되면 표현식의 결과가 true (1)이며, 이외의 경우에는 false (0)입니다.

표현식의 등호 기호

등호 연산자(=)는 작업하는 표현식의 종류에 따라 의미가 달라집니다.

할당 문에 사용되는 표현식은 표현식이 변수의 값이 되도록 할당합니다. 이 문에 사용되는 등호 기호는 표현식 오른쪽에 있는 값이 왼쪽의 변수에 할당된다는 의미입니다.

다른 표현식에서 등호 기호는 동일한 것으로 평가되었음을 나타냅니다. 예를 들어 대수 표현식 x = 3 * (5 + 10)에서, 등호 기호는 x가 대수 표현식 3 * (5 + 10)의 결과로 나온 값을 의미합니다. 이 경우에는 x = 45입니다. 할당의 대수 표현식을 사용하여 표현식의 값을 x 변수로 할당할 수 있습니다. 하지만, 동일한 표현식이 부울로 사용된 경우에는 x의 값에 따라 참 또는 거짓으로 평가됩니다.

부울 표현식은 Studio 스크립트에서 흔히 사용됩니다. 등호를 이 표현식의 연산자로 사용할 때는 등호 기호의 왼쪽에 있는 값을 오른쪽의 값과 비교하여 동일한지 결정합니다. 부울 표현식에서 사용된 변수의 값을 변경해야 하는 경우에는 ASSIGN 작업을 사용하거나 Snippet 작업에서 ASSIGN 문을 사용합니다.