Skill Builder::개요

페이지 이동경로

Skill Builder

스킬 빌더(Skill Builder)는 카카오 i 커넥트 톡(카카오톡 채널에서 동작하는 AI 기반의 챗봇) 고객이 [Builder 사이트] 챗봇 관리자센터에서 챗봇을 생성하거나 운영할 때, 필요한 시스템 간의 상호 인터페이스를 연결해주는 Skill을 직관적으로 개발할 수 있도록 도와주는 플랫폼이자 REST API 작성 도구입니다. Skill Builder에서 Skill이란 챗봇을 개발할 때 블록에 종속되어 호출에 따른 응답을 반환하는 기능 단위로, Skill Builder 내 블록들을 이용하여 만든 REST API라는 의미로도 사용됩니다.

Kakao i Connect Talk와 고객사 레거시 시스템의 연결 그림카카오 i Connect Talk와 고객사 레거시 시스템의 연결

Skill 개발자는 [Builder 사이트] Skill Builder를 통해 Skill 생성에 필요한 다양한 블록들을 드래그 앤 드롭(Drag & Drop) 방식으로 캔버스에 추가함으로써 직관적으로 Skill을 개발하고 운영할 수 있습니다.

주의
[Builder 사이트] Skill Builder는 현재는 특정 사용자에게만 제공하고 있으며, 추후에 공개될 예정입니다.

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 아키텍처 그림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 Server 아키텍처

시스템 구성

Skill Builder의 고가용성(High Availability, HA) 달성을 위해, Builder Server와 Skill Server를 컨테이너 단위로 분리했습니다.
서버 인프라 구성에 대한 자세한 설명은 인프라 환경 구축 및 설치 문서를 참고하시기 바랍니다.

Skill Builder 고가용성 구성 그림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

이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 documentation@kakaoenterprise.com 으로 제보해주세요.