Skill Builder
스킬 빌더(Skill Builder)는 카카오 i 커넥트 톡(카카오톡 채널에서 동작하는 AI 기반의 챗봇) 고객이 [Builder 사이트] 챗봇 관리자센터에서 챗봇을 생성하거나 운영할 때, 필요한 시스템 간의 상호 인터페이스를 연결해주는 Skill을 직관적으로 개발할 수 있도록 도와주는 플랫폼이자 REST API 작성 도구입니다. Skill Builder에서 Skill이란 챗봇을 개발할 때 블록에 종속되어 호출에 따른 응답을 반환하는 기능 단위로, Skill Builder 내 블록들을 이용하여 만든 REST API라는 의미로도 사용됩니다.
그림카카오 i Connect Talk와 고객사 레거시 시스템의 연결
Skill 개발자는 [Builder 사이트] Skill Builder를 통해 Skill 생성에 필요한 다양한 블록들을 드래그 앤 드롭(Drag & Drop) 방식으로 캔버스에 추가함으로써 직관적으로 Skill을 개발하고 운영할 수 있습니다.
주의
[Builder 사이트] Skill Builder는 현재는 특정 사용자에게만 제공하고 있으며, 추후에 공개될 예정입니다.
- Skill Builder 사용을 원하시면 sol.platform@kakaoenterprise.com으로 문의하시기 바랍니다.
- Browser 버전은 시스템 사양을 참고하시기 바랍니다.
Skill Builder는 Apache Camel(아파치 카멜) 엔진으로 구성되어 있으며, 다양한 환경에서 시스템 간 연결을 지원하는 Enterprise Service Bus(ESB) 및 통합 프레임워크의 기능을 제공합니다. 즉, Skill Builder를 통해 신규 API 또는 기존 API를 가공하고 통합한 API를 생성할 수 있으며, 개발 중인 챗봇과 레거시 시스템(Legacy System)을 연결하는 것도 가능합니다.
안내
Skill Builder와 비슷한 기능을 하는 솔루션으로 Salesforce 사의 Mule ESB가 있습니다.
아키텍처 구성
Skill Builder는 프론트엔드(Front-end), 백엔드(Back-end), 데이터베이스(Database)가 각각 경량 컨테이너인 Docker(도커)로 구성되어 있습니다. Docker 사용을 원치 않을 경우에는 네이티브 환경으로도 구성할 수 있습니다.
표Skill Builder 아키텍처속성 | 구성 | 설명 |
---|---|---|
Builder Server | 프론트엔드 (Front-end) |
JavaScript 기반으로 Quasar, VueJS, NodeJS를 이용하여 반응형으로 개발 - 사용자가 드래그 앤 드롭으로 블록들을 추가하여 편집 작업을 할 수 있는 화면 제공 - Skill 내부 데이터에 대한 디버그 및 트랙킹을 할 수 있는 모니터링 웹 제공 |
백엔드 (Back-end) |
Skill Builder에서 만든 Skill 관련 Configuration 데이터 관리 - Spring Boot Framework와 사용자 보안을 위한 Spring Security 사용 - Skill Builder 사용자 정보 관리 - Skill, 환경 변수, 스테이지, 설정 데이터 관리 |
|
데이터베이스 (Database) |
MySQL을 사용하며 Skill 생성에 사용되는 Configuration 데이터를 저장 - 비즈니스 데이터는 비적재 |
|
Skill Server | 백엔드 (Back-end) |
Skill Builder에서 만든 Skill을 배포 및 실행 - 솔루션 핵심 라이브러리로 오픈소스인 Apache Camel을 사용 - Apatch Camel 모니터링에 특화된 툴인 Hawtio를 사용 - Scale Out 대상 |
Builder Server
표Builder Server 구성서버 | 구분 | 설명 |
---|---|---|
Builder Server | - | Skill을 편집할 수 있는 서버 - Web, Back-end, Database 서버로 구성 |
그림Builder Server 아키텍처
Skill Server
Skill Builder의 엔진으로 사용된 Apache Camel(아파치 카멜)은 데이터를 송/수신하는 다양한 시스템을 빠르고 쉽게 통합하기 위해 Enterprise Integration Patterns(EIP) 기반의 라우팅 API를 구성할 수 있는 메시지 지향 미들웨어를 위한 오픈소스 통합 프레임워크입니다. Apache Camel은 Red Hat Fuse의 엔진으로 사용되고 있으며, ETL Tool Talend에서 정식 지원하는 만큼 성능, 보안 및 사용성 측면에서 충분히 검증된 라이브러리입니다.
표Skill Server 구성서버 | 구분 | 설명 |
---|---|---|
Skill Server | 배포 | Skill이 배포되어 실행되는 서버 - Back-end로 구성 - API 호출이 수행되는 서버이며, Scale out 대상 |
운영 | 배포된 Skill을 실제 운영하며 무중단 운영을 위해 이중화로 구성되는 서버 - 운영으로 묶인 Deploy Server들은 서로 API 상태 동기화가 수행됨 - 웹 페이지와 데이터베이스가 제공되지 않고 메모리상에서 Skill이 실행됨 - Reverse Proxy Server를 통해 로드 밸런싱(Load Balancing)이 구현되며, 하나의 Skill 호출 주소를 갖게 됨 |
그림Skill Server 아키텍처
시스템 구성
Skill Builder의 고가용성(High Availability, HA) 달성을 위해, Builder Server와 Skill Server를 컨테이너 단위로 분리했습니다.
서버 인프라 구성에 대한 자세한 설명은 인프라 환경 구축 및 설치 문서를 참고하시기 바랍니다.
그림Skill Builder 고가용성 구성
시스템 사양
Skill Builder를 설치 후 사용하는데 필요한 장비 및 네트워크 권장 구성은 다음과 같습니다.
항목 | 사양 |
---|---|
Browser Version | - IE: 11 이상 - Edge: 14 이상 - Firefox: 54 이상 - Chrome: 51 이상 - Safari: 10 이상 - Opera: 38 이상 |
OS(Docker 구동 환경) | - CentOS: 7 - Debian(64bit): Buster 10, Stretch 9, Raspbian Stretch - Fedora(64bit): 30, 31 - Ubuntu(64bit): Focal 20.04, Bionic 18.04, Xenial 16.04 - Windows(64bit): Pro, Enterprise, Education(Build 16299 이상), Hyper-V와 Containers 설정 가능 - Hardware: 64 bit processor with SLAT, 4GB RAM, BIOS-level hardware virtualization support - Mac: 2010 모델 이상, 10.13버전 이상 |
용량(Docker Image) | - WEB: 29.9MB (nginx:stable-alpine/21.5MB + source code/8.4MB) - Builder Server: 708MB (openjdk:11/627MB + source code/81MB) - Skill Server: 687MB (openjdk:11/627MB + source code/60MB) - Database: 544MB (MySQL:latest) |
최소 권장 하드웨어 | - CPU: 4 Core - RAM: 4GB - HDD: 30GB |
관련 문서
개요 Skill Builder 사전 작업 및 설정 Skill Builder 운영 프로세스 Skill Builder