기술적 참조 가이드Technical Reference Guide

이 섹션에서는 Studio에서의 스크립팅에 관한 자세한 기술적 참조 정보를 제공합니다. 이 정보는 일반적으로 작업을 사용한 스크립팅과 사용자 지정 코드 스니펫에 적용됩니다. 정보가 스크립팅의 한 가지 메서드 또는 다른 한 가지 메서드에만 적용되는 경우도 있습니다.

이 페이지의 정보는 Studio을(를) 사용하여 스크립팅할 때 알아야 할 기본적인 스크립팅 개념을 요약하여 설명합니다. 더욱 자세한 정보는 이 섹션의 다른 페이지에서 확인할 수 있습니다.

스크립트 및 스니펫 구조

Studio 스크립트는 단일 파일에만 저장하거나, 여러 개별 파일들에 있는 주요 스크립트 하나와 한 가지 이상의 하위 스크립트로 구성할 수 있습니다. 각 스크립트는 다음과 같아야 합니다.

  • Begin 작업으로 시작합니다. 하위 스크립트 역시 Begin 작업으로 시작해야 합니다.
  • End 등의 종료 작업으로 종료합니다. 하위 스크립트는 스크립트의 흐름을 주요 흐름으로 반환하는 Return 작업으로 종료합니다.
  • 정의된 미디어 유형이 있어야 합니다.

스크립트 내에서 구조는 스크립트가 제공해야 하는 행동에 필요한 흐름을 따릅니다. 가장 적합한 방법으로 스크립트 내의 워크플로를 정리 및 정렬할 수 있습니다. 예를 들면 흐름이 오른쪽에서 왼쪽으로 이동하거나 왼쪽에서 오른쪽으로 이동하도록 설정할 수 있습니다. 이와 유사하게, 위에서 아래로도 이동할 수 있습니다.

스크립트 구조에 관한 참고 사항:

  • 브랜치 조건을 사용하여 스크립트 내에 브랜치를 생성합니다. 이렇게 하면 스크립트 중 어느 시점에서나 발생할 수 있는 다양한 결과, 변형, 또는 결과를 처리할 수 있습니다. 오류 처리를 위해, IVR닫힘 발신자가 음성 명령, 키 입력 또는 둘 다를 통해 상호작용하여 정보를 얻거나 인바운드 음성 통화를 라우팅 또는 둘 다를 할 수 있는 자동화된 전화 메뉴입니다. 메뉴의 옵션에, 또는 IF 작업에 따른 참/거짓 경로에 브랜치를 사용할 수 있습니다.
  • 일부 작업에는 여러 브랜치 조건이 있습니다. 매번 모든 작업을 연결할 필요는 없습니다. 하지만, 중요한 점은 항상 Default 브랜치를 연결해야 한다는 것입니다. 스크립트는 다른 조건 중 아무것도 적용되지 않을 때 이 브랜치를 적용합니다. 예상치 못한 상황이 발생했을 때 컨택이 스크립트의 해당 위치에서 막히는 경우를 방지할 수 있습니다.
  • 이벤트 작업은 이벤트를 트리거하는 작업에 연결되지 않습니다. 동일한 스크립트 파일에서 새 섹션을 시작합니다. 새로운 섹션은 스크립트 파일 내 어디에나 위치할 수 있습니다. 스크립트에 여러 개의 이벤트 작업이 있는 경우에는 나중에 더 쉽게 찾을 수 있도록 작업을 정리해 두는 것이 좋습니다.

문의 논리적 순서 한도를 제외하면 스니펫에는 아무런 구조 관련 요구사항이 없습니다. 단일 ASSIGN 문 또는 일련의 네스팅된 문 또는 블록에 의해 구성된 복잡한 스크립팅 로직을 가질 수 있습니다. 사용자 지정 함수를 생성해야 할 때는 스니펫을 사용해야 합니다.

사용자 지정 코드를 보유하는 것 이상으로 스니펫을 활용할 수 있습니다. 스니펫을 사용하여 변수 할당을 더 적은 위치로 통합할 수 있습니다. 변수를 추가해야 할 때마다 ASSIGN 작업을 사용하는 대신, 단일 Snippet 작업 안으로 여러 선언문을 배치할 수 있습니다.

스크립트를 더 쉽게 읽을 수 있게 하기 위해 할 수 있는 조치가 몇 가지 있습니다. 이는 나중에 스크립트를 사용하여 작업해야 하는 스크립터에게 도움이 될 수 있습니다. 다음을 수행할 수 있습니다.

  • 각 작업의 Caption 속성을 변경합니다. 이 속성의 개념은 스크립트의 캔버스 작업 영역에 표시됩니다. 각 작업이 하는 역할을 이해하는 데 도움이 되는 단어 하나 또는 짧은 문구를 추가할 수 있습니다. 예를 들어, 작업이 사용하는 스킬, 재생하는 음악, 또는 스니펫 코드가 수행하는 작업을 표시하고 싶은 경우가 있습니다.
  • AnnotationNote 작업을 사용하여 스크립트에 추가 문서를 추가합니다. Snippet 작업에서는 메모를 추가할 수 있습니다.
  • Studio에서의 스크립트에 관한 기타 모범 사례를 따릅니다.

구문

모든 프로그램 언어처럼 Snippet에도 따라야 하는 구문이 있습니다. 참조 섹션의 각 도움말 페이지에는 언어의 구성요소 규칙을 처리하는 구문에 관한 섹션이 있습니다. 다음에 대한 구문에 관해 자세히 알아볼 수 있습니다.

구문 규칙은 구문 요약으로 설명합니다. 요약은 옵션과 필수 구성요소 간을 구분하기 위해 특정한 규칙을 사용합니다. 이러한 규칙에 관한 자세한 내용은 도움말 페이지를 참조하십시오.

데이터 유형

데이터 유형은 데이터가 표시되는 방식과 데이터로 수행할 수 있는 작업 종류를 설명합니다. 많은 프로그래밍 언어는 다양한 종류의 숫자 및 영숫자 표시 사이를 구분하는 많은 데이터 유형을 지원합니다. Studio은 이러한 구분을 하지 않습니다. Studio에서 값은 다음 유형 중 하나입니다.

  • 문자열: 변수의 값에 영숫자와 마침표, 쉼표 및 밑줄과 같은 특수 문자가 포함되어 있습니다. 문자열 값은 큰따옴표로 묶어야 합니다.
  • 숫자: 변수의 값이 숫자입니다. 숫자 값에는 큰따옴표가 필요 없습니다.
  • 날짜/시간: 변수의 값은 날짜, 시간, 또는 두 가지 모두입니다. 날짜/시간이 Studio에서 날짜/시간 함수와 함께 사용되는 경우, 값은 큰따옴표로 묶고 시작 큰따옴표 앞에는 우물 정자를 기재해야 합니다(예: var = #"11-23-2023").
  • 부울: 변수의 값은 true 또는 1, 또는 false 또는 0입니다. 부울 값은 따옴표로 묶으면 안 됩니다.

일부 프로그래밍 언어와는 달리 변수를 생성할 때 특정한 데이터 유형을 선언할 필요가 없습니다. Studio에서 변수는 암시적 유형입니다. 즉, 스크립트가 컴파일될 때 유형이 자동으로 결정됩니다.

데이터 유형은 스크립트에서 필수적인 부분입니다. 데이터 구조, 표현식, 변수에 관한 도움말 페이지에서 Studio 스크립트의 데이터 유형에 관해 자세히 알아볼 수 있습니다. 함수를 사용하는 경우에는 스크립트에서 사용하는 데이터 유형에 관해 알아야 합니다. 또한 사용하는 함수가 예상하는 것과 사용하는 유형에 따라 달라질 수 있는 결과도 알아야 합니다.

데이터 구조: 변수, 배열, 개체

데이터 구조를 사용하면 스크립트에 데이터를 저장할 수 있습니다. 필요할 때 데이터 구조에서 데이터를 검색하거나 다른 데이터로 대체할 수 있습니다. 다른 프로그래밍 언어에는 다양한 데이터 구조 유형이 존재할 수 있으며, 이러한 유형은 매우 복잡할 수 있습니다. Studio에서는 세 가지의 데이터 구조 유형만 있을 수 있습니다.

선언문으로 선언하면 이러한 데이터 구조 중 무엇이든 생성할 수 있습니다.

표현식

표현식은 스크립트 내에서 값을 비교하거나 값의 결과를 비교하는 모든 것입니다. 다음은 모두 표현식의 예입니다.

  • x = 3(5+10)

  • y = 123 North Street
  • x != 5

문자열, 숫자, 부울닫힘 참 및 거짓과 같은 두 가지의 가능한 값을 가진 데이터 유형. 등 다양한 표현식이 있습니다. 표현식은 Studio 스크립트에서 다양한 용도로 사용합니다. 용도는 다음과 같습니다.

  • Studio 작업 또는 스니펫에서 속성을 구성합니다.
  • 브랜치를 생성하고 의사결정을 시뮬레이션하는 스크립트에서 논리를 정의합니다.
  • 작업 속성에 대해, 또는 스니펫에 리터럴 값을 제공합니다.
  • 수학 또는 대수 계산을 제공합니다.

연산자

연산자는 숫자와 함께 발생하는 수학 또는 대수 연산을 나타내는 수학 기호입니다. Studio은(는) 모든 표준 수학 및 일부 대수 연산자를 지원합니다. 또한 부울닫힘 참 및 거짓과 같은 두 가지의 가능한 값을 가진 데이터 유형. 연산자를 지원하며, 이는 부울 표현식에 사용됩니다. 이는 참 또는 거짓으로 평가되는 표현식입니다. 일부 문에서 부울을 사용하여 스크립트에 의사결정 메커니즘을 생성할 수 있습니다.

진술

문은 실행될 때 스크립트가 수행하는 작업을 정의합니다. 여기에는 변수를 생성하고, 새 값을 할당하고, 계산을 수행하고, 주어진 조건에 따라 논리적인 선택을 하는 행동이 모두 포함됩니다. 일부 문은 변수에 값을 배정하는 것처럼 작업을 수행하기만 합니다. 기타 문은 스크립트의 흐름에 영향을 줍니다. 문은 논리적 순서로 실행되지만, 이러한 순서는 스크립트가 실행될 때마다 변경될 수 있습니다.

일반적으로 작업으로 스크립팅할 때는 문 측면에서 생각할 필요 없습니다. 스니펫 내에서는 다음과 같은 유형의 문을 사용할 수 있습니다.

  • 선언: 선언 문을 사용하면 새로운 변수, 개체, 함수를 선언 또는 생성합니다.
  • 의사결정: 의사결정 문을 사용하면 스니펫 코드가 지정하는 조건에 따라 수행할 작업을 선택할 수 있습니다. 이를 사용하면 스크립트에서 일어나는 일의 선형적인 흐름을 제어할 수 있습니다.
  • 루핑: 루핑 문을 사용하면 특정한 종료 조건이 충족될 때까지 스니펫이 작업 또는 작업 세트를 반복적으로 수행할 수 있습니다.
  • 기타: 이러한 을 사용하면 함수를 종료하고, 디버깅 중에 Snippet Editor 창에서 결과를 표시하고, 스니펫에 웹 서비스 프록시 DLL을 포함할 수 있습니다.

일부 문에는 같은 작업을 수행하는 Studio 작업이 있습니다. 예를 들어 ASSIGNIF 작업은 스니펫에서 사용할 수 있는 ASSIGN 및 IF 문과 동일한 작업을 합니다. 많은 문의 경우, 이를 사용하는 유일한 옵션은 스니펫에서 사용하는 옵션뿐입니다.

예약된 단어

Studio에는 예약된 단어가 있으며, 예약된 단어는 스크립트의 변수 및 기타 엔터티의 이름으로 사용할 수 없습니다. 예약된 단어에는 다음의 이름이 포함됩니다.

스크립트의 엔터티 이름으로 예약된 단어를 사용하면 오류가 발생합니다. 오류를 해결하려면 엔터티의 이름을 변경해야 합니다.

메모

메모를 사용하면 스크립트 또는 스니펫에 원하는 내용을 문서로 기재할 수 있습니다. 메모를 사용하여 자기 자신 또는 이후 스크립터를 위해 이 스크립트 내의 어떤 부분의 목적에 대한 설명을 남길 수 있습니다.

Studio 스크립트에서 메모 작업 또는 주석 작업으로 메모를 남길 수 있습니다. 두 작업 모두 스크립트에 일시 정지를 추가할 수 있습니다. 주석 작업은 캔버스에 메모를 눈에 보이도록 배치합니다. 메모 작업에서 메모를 읽으려면 작업을 두 번 클릭해야 합니다.

스니펫에서는 두 개의 정방향 슬래시( // )를 앞에 추가하면 메모를 추가할 수 있습니다. 메모는 문 마지막에 자체 줄로서 배치할 수 있습니다.

실행할 때 스크립트의 일부로 포함하기를 원하지 않는 코드의 줄을 숨기기 위해 스니펫에 코멘트를 사용할 수 있습니다. 문제 해결 시 유용합니다.

기능

함수는 재사용하려는 코드를 생성하는 방법입니다. 함수를 직접 생성한 다음 함수가 포함한 코드를 사용할 때 스크립트의 다른 위치에서 호출할 수 있습니다. 또한 Studio에는 스크립트에서 선언하지 않아도 사용할 수 있는 내장 함수가 몇 가지 있습니다.

문자열 처리

스니펫에서는 내장된 함수를 사용하여 다음과 같은 많은 작업을 문자열에 수행할 수 있습니다.

  • 문자열 연결
  • 문자열을 하위 문자열로 분할
  • 문자열 검색
  • 내용의 일부 교체
  • 문자열 비교
  • 대문자를 소문자로, 또는 소문자를 대문자로 변경

어떤 경우에는 날짜, 시간, 또는 숫자의 형식을 지정해야 할 수도 있습니다. 지정된 형식 지정자를 사용하여 스크립트가 사용하기를 원하는 형식을 정의할 수 있습니다. 내부 함수를 사용하여 여러 형식으로 문자열을 변환할 수 있습니다.

이스케이프 시퀀스를 사용하지 않으면 문자열에 포함할 수 없는 특정 문자가 있습니다. 문자열은 따옴표 또는 큰따옴표로 묶어야 하므로, 리터럴 따옴표 또는 큰따옴표를 문자열에 포함하면 스크립트는 이를 문자열의 시작 또는 종료로 해석합니다. 이스케이프 시퀀스는 문자가 기본값으로 지정되는 기호가 아니라 리터럴로 의도한다는 점을 스크립트에 알립니다. 이스케이프 시퀀스를 필요로 하는 기타 문자로는 Tab, 백스페이스, 열림 중괄호가 있습니다.