Slack Bot 만들어본 후기...

Charlie·2021년 10월 4일
0

토이프로젝트

목록 보기
1/1
post-thumbnail

제목 그대로, 슬랙에서 사용할 수 있는 봇을 만들어보았다.
봇의 이름은 custom-gropu-mention(이하 cgm)인데...

자세한 내용은 글을 쓰며 작성해봐야겠다.

개요

봇을 만들게 된 계기는 생각보다 너무 단순하다.

최근 해보고 싶은 일들이 있었는데,
1. docker 이미지 만든 후, 다른 환경에서 다운받아 실행해보기
2. slack 봇 만들어보기

이렇게 두가지가 있었다.

그러던 중 회사 슬랙에서, 누군가 불편함을 느끼는 듯한 멘트를 보곤...
아...? 이거 한번 만들어보면 재밌겠다~ 싶었다.

CGM?

기본적으로 그룹 멘션의 역할을 해주는 봇이다.

어랏...? 이미 있는 사용자 그룹 기능을 사용하면 될텐데...? 라는 생각이 들 수 있지만,
그게 유저가 개인적으로 그룹핑을 할 수 있는지는 내가 확인을 안해봐서 잘 모른다..
개인적으로 원하는 사람들만 멘션하기 편하게, 나만의 그룹을 본다는 것... 그것만으로도 만들 이유는 충분했다고 생각한다.

각설하고, 나는 이런 역할을 하는 슬랙 봇을 만들어보고 싶었을 뿐이다.

기술 스택

기술 스택이라고 하기에도 좀 뭐하지만... 일단 정리를 해봤다.

  • node.js
    이 친구를 사용해서 슬랙 api 통신 처리를 했다.
    보통 찾아보니까 python을 많이 이용하던데, 나는 node.js가 더 편할 것 같았다.
  • firebase
    그룹을 저장하고 호출하는데 firebase의 realtime-db를 사용했다.
  • docker
    어거지로 끼워넣긴 했는데...
    작업은 mac 환경에서 하고, 작업한 내용을 rpi4에 넘겨서 24시간 켜놓는 용도로 사용했다.
  • 약간의 아주 아주 사소한 네트워크 지식...?
    slack에서 post 요청을 처리 할 host를 받는데, 나는 공유기에 rpi4가 연결된 형태라 포트포워딩과 ddns를 이용했다.

동작 원리

  1. /mentionc 이라는 요청을 받으면, group을 생성할 수 있는 Modal을 보내준다.
  2. /mentionc Modal의 응답을 받으면 해당 하는 내용을 firebase-realtime-db에 저장
  3. /mentionr 이라는 요청을 받으면, Modal 생성된 group을 db에서 조회해서 리스트를 뿌려준다.
  4. /mentionr Modal의 응답을 받으면 해당 하는 그룹의 사람들을 태그해준다.

후기

사실 정말 이미 있을지도 모르는 기능이고, 불필요할지도 모르지만,
회사에서 누군가 하나하나 태그하기엔 힘들고...
해당하는 사람들이 소속된 그룹을 다 태그하자니 민폐고...
내가 채널을 생성할 수 있는 권한도 없다면...

이게 있으면 어떨까? 하는 생각에 만들어보았다.
생각보다 재밌었고, 실제로 필요한 기능을 스스로 만들어 보았다는게 큰 기쁨이 되었다.

마치며..

혹시 제가 사용 한 기능들 중 궁금한 부분이 있다면, 댓글로 달아주세요!

profile
Dev Charlie

0개의 댓글