노드 (Node)

CLOSER 챗봇의 기능 동작 단위인 노드에 대해서 알아봅니다.

노드는 CLOSER에서 챗봇이 동작하기 위해 사용되는 가장 기본적이고 필수적인 요소입니다. 이 페이지에서는 편집기 내에서 노드를 생성하고 연결하여 챗봇의 동작을 디자인하는 방법에 대해 알아보겠습니다.

노드 생성하기

캔버스에 노드를 추가하는 모습

노드 팔레트에서 원하는 노드를 캔버스 위에 끌어다 놓으면(drag&drop) 지정한 위치에 노드가 추가 됩니다. (삭제하는 방법이 궁금하세요? Delete 키를 눌러보시거나 노드 위에서 마우스 오른쪽 버튼을 클릭해 보세요!)

노드 편집하기

노드 편집 창을 활성화하는 모습

노드는 종종 기능을 수행하기 위해 설정 값(data)을 필요로 하고, 이 값은 노드 편집 창을 통해 설정할 수 있습니다.

노드 편집 창은 캔버스에 있는 노드를 빠르게 더블클릭하여 접근할 수 있으며, 편집창 상단의 X 버튼이나 빈 캔버스 위를 클릭하여 창을 닫을 수 있습니다.

노드 연결하기

각 노드의 수행 순서를 설정하기 위해서는 노드와 노드를 순서에 맞게 연결해주셔야 합니다. 각 노드를 연결하는 것도 노드를 생성하는 것처럼 아주 쉽게 이루어집니다.

연결 생성하기

노드와 노드를 연결하는 모습

노드에 마우스 커서를 가져다 대시면 해당 노드 오른쪽에 하늘색 삼각형 도형이 표시됩니다. 이 때 해당 도형 위에서 마우스 왼쪽 버튼을 누르시면 새로운 연결 선(Edge)이 생성 되고, 이 선을 끌어다 연결할 노드 위에 가져다 놓으시면(Drag&Drop) 두 노드에 연결이 생성됩니다.

선택지형(빠른 답장 형) 입력 노드는 사용자 편의를 위해 더 특별한 기능을 제공합니다. 자세한 내용은 아래를 확인해주세요.

선택지형 입력 노드에서 선택지와 노드를 연결하는 모습

선택지형 입력 노드에서는 선택지 위에 마우스 커서를 올리면 앞서 보였던 것보다 더 작은 하늘색 삼각형 도형이 표시됩니다. 노드를 연결할 때 처럼 해당 도형에서 마우스 왼쪽 버튼을 눌러 연결 선을 연결할 노드에 가져다 놓으시면 해당 선택지를 선택한 조건이 자동으로 작성되어 연결이 생성됩니다.

선택지형 입력 노드에서 선택지 조건 없이 노드를 연결하는 모습

만일 선택지 입력 외의 다른 입력에 대한 노드를 연결하려는 경우, 선택지 영역 밖 (그러나 노드 영역 내부) 으로 마우스 커서를 이동하시면 다시 기존에 보았던 크기가 다른 삼각형 도형을 확인하실 수 있습니다. 이를 이용하여 선택지 외의 입력에 대한 노드를 지정할 수 있습니다.

연결 수정하기

기존 연결을 다른 노드로 이동하는 모습

챗봇 시나리오를 변경하려는 경우 기존 연결을 새로운 노드로 이동하여야 하는 상황이 발생합니다. 이 경우 연결과 연결 사이에 있는 연결점(Joint)을 끌어서 이동하는 방식으로 연결을 손쉽게 수정할 수 있습니다.

  • 연결점을 새로운 노드로 끌어다 놓는 경우: 해당 연결이 다른 노드로 연결됩니다.

  • 연결점을 노드가 아닌 캔버스 위로 끌어다 놓는 경우: 해당 연결이 제거됩니다.

실수로 연결을 제거하셨나요? 걱정하지 마세요! 실행 취소 (Ctrl + Z) 기능을 사용해 언제든 작업을 되돌릴 수 있답니다.

연결에 조건 설정하기

상황별로 주어진 조건에 따라 다양한 노드로 시나리오가 분기되어야 하는 경우 있습니다. 이 때, 노드와 노드 사이의 연결에 필요한 조건과 그 우선순위를 설정하여 흐름을 다양하게 제어할 수 있습니다.

조건

노드 연결에 조건을 설정하는 모습

조건 설정 화면은 연결된 선(Edge)을 더블클릭하여 확인할 수 있습니다. 조건에 사용되는 속성으로는 주로 사용자 메시지(message.text) **값을 이용하며, 나아가 파라미터(Parameter)컨텍스트(Context) 값도 활용할 수 있습니다.

아래는 사용자의 나이를 age에 입력받았다고 가정하였을 때, 특정 플로우에 진입 시 19세 미만은 이용할 수 없다는 안내 메시지를 출력하는 조건을 설정한 예제입니다다.

연결에 params.age에 대한 조건을 설정하는 모습
연결에 params.age에 대한 조건이 설정된 모습

연결 조건에는 그리고(AND)또는(OR) 결합 조건을 통해 하나 이상의 속성으로 조건을 설정할 수도 있습니다. 각 조건 항목 위에 마우스 커서를 가져다 대시면 우측에 +그리고 버튼과 +또는 버튼을 확인할 수 있는데, 이 버튼들을 클릭하여 결합 조건을 추가하거나 휴지통 버튼을 눌러 조건을 제거하실 수 있습니다.

그리고 / 또는 결합 조건을 설정하는 모습
그리고 / 또는 결합 조건이 설정된 모습

이용 가능한 조건

  • 다음과 일치: 지정한 값과 검사할 값이 같을 때 만족하는 조건

  • 일치하지 않음: 지정한 값과 검사할 값이 다를 때 만족하는 조건

  • 다음을 포함: 지정한 값에 검사할 값이 포함되었을 때 만족하는 조건

  • 존재함: 지정한 값이 존재할 때 만족하는 조건

  • 존재하지 않음: 지정한 값이 존재하지 않을 때 만족하는 조건

  • 보다 큼: 지정한 값이 숫자이고, 설정한 숫자보다 클 경우 만족하는 조건 (초과)

  • 보다 크거나 같음: 지정한 값이 숫자이고, 설정한 숫자보다 크거나 같은 경우 만족하는 조건 (이상)

  • 보다 작음: 지정한 값이 숫자이고, 설정한 숫자보다 작을 경우 만족하는 조건 (미만)

  • 보다 거나 같음: 지정한 값이 숫자이고, 설정한 숫자보다 작거나 같을 경우에 만족하는 조건 (이하)

  • 정규표현식: 지정한 값이 설정된 정규표현식에 부합하는 경우 만족하는 조건

정규표현식은 문자열의 패턴을 검사하기 위한 효율적인 도구로서, 이에 대한 설명은 다음 문서를 참고해 주세요.

우선순위

노드에는 여러가지 조건을 설정할 수 있지만, 최종적으로 챗봇은 단 하나의 노드로만 진행됩니다. 만약 특정 노드에 연결된 노드가 2개 이상이고, 2개 이상의 연결 조건들을 동시에 만족하는 경우에 다음 노드 선택에 사용할 우선순위 값을 설정할 수 있습니다.

만일 조건을 만족하는 연결들이 모두 같은 우선순위를 갖는 경우, 결합 조건이 더 많이 설정된 연결이 우선되어 선택됩니다.

우선순위와 조건의 수가 모두 같은 경우에는 동작의 일관성을 보장할 수 없습니다. 챗봇이 예상되지 않은 동작을 하는 경우에 우선순위 설정을 잘 확인해주세요.

노드별 기능 안내

CLOSER가 제공하는 각 노드별 기능과 설정 방법에 대한 내용은 하위 페이지에 위치한 각 노드별 설명을 참고해주세요.