Slack 대나무숲 오픈소스 앱 적용기
[kt cloud Cloud운영혁신팀 김재승 님]
Slack 대나무숲 오픈소스 앱 적용기
Slack API를 활용한 신규 앱 개발이 회사의 Slack 활용도를 높이고, 업무 효율을 개선할 수 있다고 생각합니다.
이를 위해 Slack 대나무숲 앱을 도입한 사례를 블로그로 정리해 보려고 합니다.
해당 프로젝트는 오픈소스로 아래 블로그 및 github 참고했습니다.
* 임금님 귀는 당나귀 귀! 대나무숲 슬랙 앱 만들기 - 재그지그의 개발 블로그
* GitHub - wormwlrm/bamboo-forest: 🎋 대나무숲 슬랙 앱 - Echo your message as anonymous on Slack!
슬랙 대나무숲이란 ?
슬랙 채널에서 익명으로 메시지를 공유할 수 있도록 해주는 오픈소스 기반 앱 입니다. 사용자는 익명으로 의견이나 질문을 게시할 수 있어 팀 내에서 자유롭게 소통할 수 있도록 지원하며, 대나무숲처럼 자유로운 대화 공간을 제공합니다.
바로 시작하겠습니다.
1. 슬랙 앱 등록
먼저 슬랙 앱을 등록해야 합니다. (https://api.slack.com/)
2. 서버 설정
bamboo-forest를 git에서 클론하여 가져옵니다:
$ git clone https://github.com/wormwlrm/bamboo-forest.git $ cd bamboo-forest |
.env 파일 추가
# 앱 토큰 # basic inforamtion → Signing Secret SLACK_SIGNING_SECRET= # 슬랙 봇 토큰 # OAuth & Permissions → Bot User OAuth Token SLACK_BOT_TOKEN= # 대나무숲 채널 코드 # slack 채널 → 채널 세부 정보 하단 채널 ID SLACK_BAMBOO_CHANNEL= |
배포
# 타입스크립트 컴파일 $ yarn build:watch # ngrok으로 터널링 $ ngrok http 3000 # 애플리케이션을 백그라운드 실행 $ pm2 start npm --name bamboo -- start |
Event Subscription과 Interactivity & Shortcuts 의 Request URL을 로컬 개발 환경으로 터널링하는 과정이 필요합니다. 이를 위해 별도의 터미널에서 ngrok를 이용합니다. ngrok에서 출력하는 URL에 /slack/events를 덧붙여 Request URL에 입력합니다.
ngrok http 3000
만약 ngrok 주소가 아래와 같다면 Connections: https://f111-222-333-444-55.jp.ngrok.io Request URL에는 다음과 같이 입력 https://f111-222-333-444-55.jp.ngrok.io/slack/events |
3. Slack 앱, 서버 연동
Interactivity Request URL은 앱과 사용자가 직접 상호작용(버튼 클릭 등)할 때 발생하는 요청을 처리하기 위한 URL이며,
Event Subscriptions Request URL은 Slack 워크스페이스 내에서 발생하는 다양한 이벤트(메시지 전송, 반응 추가 등)를 앱이 수신할 수 있도록 하는 URL입니다.
4. 테스트
마무리
지그재그 블로그에 슬랙 앱을 개발하는 과정이 정말 자세하게 나와있어서 Slack 앱, API, 타입스크립트 같은 언어에 대한 이해가 부족해도 새로운 앱 개발이 가능할 것 같습니다.
Bamboo Forest 오픈소스는 코드가 간결하고 모든 기능이 함수화되어 있어 이해하기 매우 쉬웠습니다. 다른 앱 개발에 참고하시면 좋을 것 같습니다.
*개발 환경
OS: Rocky Linux 8.10 배포: Nginx, ngrok, PM2, serverless(로컬 테스트용) 언어: TypeScript, Node.js |