크로키닷컴이 CoffeeScript 기반인 Hubot 대신 Botkit 으로 슬랙 봇을 다시 만든 기록이다. Botkit 이 여러 팀을 다루는 솔루션이라 문서가 방대한데, 사내용으로 필요한 최소 설정만 추려 TypeScript 로 구성한 과정을 보여준다.
핵심 포인트- ChatOps 시도는 HipChat + Hubot 에서 시작해 2014년 Slack 으로 옮겼지만, 점심 메뉴 뽑기 수준을 넘지 못했다.
- 2019년 개발팀이 커지며 제대로 만들자는 얘기가 나왔고, 익숙한 Hubot 은 소스 기반이 CoffeeScript 라는 점이 걸려 Botkit 을 택했다.
- Hubot 은 전용 슬랙 앱이 있어 설정이 쉬웠지만 Botkit 은 슬랙 앱을 직접 만들어야 한다.
- Botkit Starter Kit 도 사내 용도에는 너무 복잡해 처음부터 만들었고, 필요한 패키지는 botkit 하나뿐이다.
- 봇 동작 스크립트를 '스킬' 이라 부르고, 파일을 추가하기만 하면 스킬이 늘어나는 구조로 짰다.
상세 정리- 슬랙 앱 생성 절차: 앱을 새로 만들고 → Bot Users 메뉴에서 Bot User 를 추가하고 → Install App 에서 'Install App to Workspace' 후 Authorize 하면 Bot User Access Token 을 얻는다.
- Botkit 이 AI 봇을 여러 업체에 제공하기 위한 솔루션이라 여러 팀을 다루도록 구성돼 있고 설정 문서도 방대하지만, 내부용에는 그만큼 필요 없다는 판단을 명시한다.
- 언어 선택: TypeScript 로 만들기 위해 typescript 와 ts-node 를 추가하고 컴파일 설정을 만든다.
- 토큰 관리: Access Token 은 소스 관리에 포함되지 않는 `.env` 파일에 기록한다.
- 구동 확인: 실행하면 봇이 뜨고 지정한 채널에 "봇이 배포되었습니다" 메시지가 표시된다. 실패 시 메시지도 함께 정의해 둔다.
- 스킬 예시는 Botkit Starter Kit for Slack Bots 에서 가져왔으며, 봇에게 특정 단어를 포함해 1:1 메시지(`direct_message`)를 보내거나 멘션하면 동작한다.
- 회고: 원래 의도했던 ChatOps 는 아직 시작하지 못했고 회사 행정에 도움 되는 기능부터 스킬을 늘려 가고 있다고 솔직히 적는다.
- 다음 글에서 인터랙티브 메시지 만드는 방법을 다룬다고 예고한다.
왜 읽나사내 슬랙 봇을 새로 만들려는데 Botkit 문서가 너무 방대해 막힌 개발자에게 최소 구성만 추린 경로를 준다.