Skill Builder::개요

페이지 이동경로

Skill Builder

Skill Builder(스킬 빌더)는 카카오 i 커넥트 톡(카카오톡 채널에서 동작하는 AI 기반의 챗봇) 고객이 [Builder 사이트] 카카오 i 오픈빌더에서 챗봇을 생성하거나 운영할 때, 필요한 시스템 간의 상호 인터페이스를 연결해주는 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: 687 MB (openjdk:11/627MB + source code/60MB)
- Database: 544MB (MySQL:latest)
최소 권장 하드웨어 - CPU: 4 Core
- RAM: 4 GB
- HDD: 30 GB

관련 문서

개요 Skill Builder 사전 작업 및 설정 Skill Builder 운영 프로세스 Skill Builder

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

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