CS를 설치하였으면 이제 스크립트를 작성하고 테스트하기 위한 개발 및 테스트 환경을 만들어야 한다. 이 때 가장 중요한 요소가 CS로 한글을 입출력 할 수 있는 환경을 만드는 것이다. CS는 기본적으로 다국어를 지원하는데 이때의 문자세트는 UTF-8 형식이다. 문제는 MS-Windows의 콘솔(명령어를 입력하는 창)이 UTF-8 형식의 출력은 지원하는데 입력은 안된다는 점이다. 그래서 테스트할 때 약간 번거로움이 있다.

우선 아래와 같은 3가지의 준비가 필요하다. (이 파일들을 다운로드 받은 후 infra폴더에 보관해두면 관리하기에 용이하다.)

①    스크립트 작성을 위한 문서편집기 설치

②    CS를 실행하기 위한 대화창 설치(콘솔 설치)

③    통합테스트를 위한 웹서버 설치 및 PHP화일 준비

①    문서 편집기

문서 편지기는 실행이 빠르고 UTF-8 형식을 지원하는 편집기라면 무엇이든 상관없다. CS스크립트를 작성할 때는 서식 기능이 필요 없으므로 HWP나 MS-Word 등은 부적합하다. MS-Windows에서 기본으로 제공하는 메모장을 사용해도 상관없으나 저자는 Notepad++를 사용하고 있다.[1] 소스코드까지 공개된 무료 소프트웨어 이며 특히 대용량 파일을 매우 안정적으로 편집할 수 있는 장점이 있어서 이 편집툴을 사용하고 있다. 주메뉴의 다섯 번째 항목에 “인코딩”이 있는데 이곳에서 “UTF-8(BOM없음)로 변환”을 선택하고 저장을 누르면 UTF-8 형식으로 저장이 된다.

②    콘솔 설치

먼저 MS-Windows의 콘솔부터 바꾸기로 한다. MS-Windows에 내장되어 있는 명령어 실행기(cmd.exe)는UTF-8을 안정적으로 지원하지 못한다. UTF-8 문자열을 처리하는 과정에서 알 수 없는 에러를 반복적으로 발생시키기 때문에 룰 매칭이 안되었을 때 스크립트를 잘못 작성해서 발생한 에러인지 윈도우즈 콘솔이 문자열을 잘못 처리해서 발생한 에러인지 알 수가 없다. 저자는 ConEmu를 사용하고 있는데, 윈도우 콘솔 중에서는 가장 안정적이므로 가급적 이것으로 바꿀 것을 추천한다. 바꿔 설치하는 것은 무척 쉬워서 공식 사이트[2]에 접속한 후 포터블 포맷을 다운로드 받아, 적절한 곳(예를 들면 SoftBotProject 폴더 아래)에 압축을 풀면 된다. 포터블 포맷을 선택하면 윈도우의 레지스트리에 별도로 등록할 필요없이 사용할 수 있다.

ConEmu는 자주 사용하게 될 프로그램이므로 “ConEmu64.exe”파일을 “바로 가기 만들기”로 만들어 바탕화면에 꺼내 놓는 것이 편리할 것이다. 이제 ConEmu를 기동하여 첫째 문자세트를 UTF-8로 설정하고 둘째, Chatscript 폴더로 빠르게 이동하기 위한 Alias를 설정하는 법의 두 가지를 세팅하자.

“ConEmu64.exe” 또는 “ConEmu64.exe의 바로가기” 아이콘을 더블 클릭하여 ConEmu를 띄우자. 그리고 이때 사용자 폴더를 기억해 두어야 하는데, Users 다음에 나오는 단어가 MS-Windows의 사용자 계정이자 사용자 폴더이름이다.(아래 화면 참조)

ConEmu 프로그램 위쪽의 공백에 마우스를 올려놓고 오른쪽 버튼을 클릭하면 팝업 메뉴가 나타나는데 위에서 세번째 메뉴인 “Settings…”을 선택하자. 그러면 설정  창이 나타나는데(아래 화면 참조)이 화면에서 왼쪽 네비게이션바의 두번째 Startup에서 세번째 메뉴인 Environment를 선택하자.

새로 바뀌는 화면의 중간 쯤에 입력박스가 있는데 그곳에 아래 내용을 직접 입력해 넣고 화면 맨 아래 맨 오른쪽의 Save settings를 누른다.(화면 참조)

l chcp 65001

l alias cs = cd c:\users\윈도우 사용자 계정\documents\SoftBotProject\chatscript\binaries

chcp란 change cord page의 줄임말로 문자세트를 바꾸는 명령어이다. 문자세트 65001이 UTF-8 이고 따라서 위의 명령어는 ConEmu가 실행될 때 자동으로 문자세트를 UTF-8로 바꾸라는 명령어가 된다. 그러나 이렇게 문자세트를 바꾸더라도 한글을 UTF-8로 입력할 수는 없다. 이는 MS-Windows의 한계라고 생각되는데 따라서 UTF-8 형태로 입력을 하려면 UTF-8로 저장한 파일로 대체하거나[3] 웹브라우저를 통해 입력을 해야 한다.

그 다음 줄에 입력한 alias는 직역하자면 가명, 별명 쯤이 될 수 있는데 긴 명령어를 간단하게 대체하는 방법이다. “cd”는 change directory의 줄임말로 폴더를 옮기라는 명령이며, 위의 입력문은 장차 “cs”라고 입력하면 폴더를 chatscript의 실행화일이 있는 binaries폴더로 옮기게 될 것이다. “윈도우 사용자 계정”에는 기억해 두었던 사용자 폴더를 입력하면 된다. 이 명령문은 ConEmu를 재기동할 때부터 유효하다.

이제 커서가 깜빡이는 상태에서 “exit”라고 입력해 보자. 그러면 콘솔이 사라질 것이고, 이제 다시 ConEmu를 더블클릭하여 가동시키면 조금 전에 입력한 두 개의 명령문이 작동하게 될 것이다. cs라고 입력하고 엔터키를 누르면 chatscript의 binaries폴더로 한 번에 이동하는 것을 확인할 수 있을 것이다.

이제 콘솔을 하나 더 띄우는 방법을 알아 보자. CS를 개발할 때는 작성한 스크립트를 컴파일 하는 화면과 그 컴파일한 내용으로 서비스하도록 CS를 서버 모드로 작동시키는 두 개의 창이 필요하다.

콘솔을 하나 더 띄우는 방법은 간단하여서, 앞서 “Settings”를 선택했을 때와 마찬가지로, ConEmu 창의 위쪽 빈 공간에 마우스를 놓고 오른쪽 버튼을 클릭하면 된다. 나타나는 팝업 메뉴에서 첫번째 메뉴 “New Console”을 선택하면 자동으로 두 번째 탭 메뉴가 나타나면서 새로운 콘솔이 시작된다. (아래 화면  참조) 이 콘솔에는 별도의 설정을 하지 않더라도 chcp와 alias 명령어가 적용된다. 그리고 이 둘 간의 전환은 탭을 눌러 왔다 갔다 할 수 있다.

 

③    웹서버 및 PHP 파일 설치

챗봇을 개발하면 실제 사용되는 환경은 웹브라우저 또는 모바일앱이다. 따라서 테스트 환경도 이와 동일해야 하는데 우선 웹브라우저에서 테스트할 수 있는 환경을 갖추기로 하자.[4]

먼저 웹서버를 다운로드 받아 설치를 해야 하는데, 웹서버는 무엇이든 관계없다. 저자는 설치가 손쉬운 APMSetup을 선택하였다.[5] 웹서버를 설치하면 이제 사용자 브라우저와 웹서버 그리고 CS서버를 연결해 줄 인터페이스 파일을 하나 더 설치해야 한다. 이 파일은 소스화일과 함께 오는 예제(= webinterface/simple폴더에 있는 index.php 화일)를 사용할 수도 있지만 말 그대로 정말 심플한 것으로, 대화 이력을 살펴가며 테스트하기에는 부적합하다. 이곳에 링크한 화일을 다운로드 받아 사용할 것을 추천한다.

 CS_Interface_PHP.zip

압축을 풀면 총 3개의 화일이 나올텐데 먼저 readme.txt를 읽은 후, 나머지 2개의 화일을 웹서버의 “htdocs” 폴더에 복사해 넣는다.[6] 그런 후 웹브라우저를 열어서 주소창에 다음과 같이 입력한다.

 

l  http://127.0.0.1/testbot.php

 

위에서 숫자 127.0.0.1은 자신의 컴퓨터를 가리키는 것으로 현재는 테스트를 위해 CS서버를 자신의 PC에 두고 있기 때문에 가능한 주소이다. 향후에 클라우드에 올려서 서비스를 한다면 누구나 접근할 수 있는 공인 주소를 이용하면 된다.

웹브라우저에 화면이 나타나면 이제 통합 테스트를 위한 설정이 끝났다. 향후 실제로 테스트를 하기 위해서는 먼저 CS서버를 기동 시키고(콘솔창에서 “chatscript port=1024 userlog”를 입력하면 됨), 이후 웹서버를 기동 시킨 후(웹서버 아이콘을 더블클릭), 브라우저에서 위와 같이 index.php를 부르면 된다.

이상의 내용을 정리해 보면 아래 표와 같다.

콘솔 1번에서 사용할 명령어 중에 :source명령어에 대해 추가 설명을 하자면, source 명령어는 파일을 읽어 들여 마치 사용자가 입력한 것처럼 CS서버에 차례차례 입력하도록 하는 명령어이다. 형식은

 

l  :source test.txt

 

source 명령어 뒤에 텍스트 파일의 이름을 적어주면 되는데, 이때 test.txt 파일에는 명령어가 한 줄씩 입력되어 있으면 된다.(아래 표 참조) 위치는 chatscript 루트 디렉토리에 있어야 한다. 즉 readme.txt 파일과 같은 위치에 있으면 된다. 이 source 명령어는 UTF-8 포맷으로 한글을 직접 입력할 수 없는 MS-Windows 환경에서 특히 유용하며 또한 여러 테스트를 한 번에 실행하고 그 결과를 비교해 볼 때도 유용하게 사용할 수 있다. test.txt에 한글을 포함시켰다면 반드시 UTF-8 형식으로 저장해야 한다.

이상의 개발 환경을 그림으로 도식화해 보면 다음과 같다. 스크립트를 수정하기 위한 편집기, 그리고 그것을 컴파일하기 위한 CS명령어 창, 의도한 대로 작동하는지 확인하기 위한 웹브라우저 연결 창, 이렇게 3개로 구성된다.

CS명령어 모드는 콘솔에서 “chatscript”라고 입력하고 엔터를 치면 되며, CS서버 모드는 콘솔에서 “chatscript port=1024 userlog”라고 입력하고 엔터를 치면 된다.

[1] https://notepad-plus-plus.org/ 접속해서 왼쪽 첫번째 메뉴인 download를 클릭하면 된다.

[2] http://conemu.github.io/

[3] CS에서 제공하는 :source 명령어를 이용하는 것인데, 이에 대해서는 뒷부분에서 설명하기로 한다.

[4] 모바일앱에서 서비스하기 위해서는 사전에 결정해야 할 것이 있다. 전용의 모바일앱을 개발하기로 한다면 전용 모바일앱을 개발한 후 테스트해야 하고, 기존의 카카오톡이나 라인 등에 연결하여 서비스한다면 이들 메신저의 API를 이용하여 테스트해야 하는데, 이는 현재 글의 수준을 넘어서는 내용이므로 향후 응용편에서 설명하기로 하겠다.

[5] http://www.apmsetup.com/download.php 이 파일을 설치하면 설정에 대해 고민할 것 없이 설치해 주는 장점이 있으나 사용하지 않을 확률이 높은 mySQL을 설치하는 단점이 있다.

[6] 아파치 서버는 기본 documents 폴더 이름이 “htdocs”이고 이 폴더는 웹서버를 설치한 폴더 바로 아래에 있다. 웹서버는 보통 c:\program files 또는 c:\program files(x86) 폴더 아래에 설치하게 되니 이곳을 찾아보면 될 것이다.