자동화까지 가보시죠
어? 이 아이디어 대박인데?
가끔씩 좋은 아이디어가 떠오르면 이다음 생각은 "어떻게 하면 이 아이디어를 가장 빠르고 효과적으로 검증할 수 있을까?"였습니다. 그리고 이번 아이디어의 해답으로 슬랙봇이 눈에 들어왔습니다.
최근 회사에서 자동화 관련 슬랙봇 제작 요청을 진행했던 경험이 떠올랐습니다. 당시 제가 직접 만들지는 않았지만, 그 과정을 지켜보며 슬랙봇의 잠재력과 활용도에 깊은 인상을 받았죠. 이제 제 아이디어를 실현할 기회가 왔다고 생각했습니다.
사내에서 먼저 테스트해보고 괜찮으면 더 디벨롭해 보자는 생각이 들었고, 슬랙봇 관련해서도 계속 관심이 있는 상태였습니다.
그리고 슬랙봇 관련된 요청을 할 때마다 "이 정도면 충분해요~"라는 답변을 들으며, 저는 항상 뭔가 부족함을 느꼈습니다. 구조나 흐름을 이해하는 것이 양쪽 모두에게 도움이 될 거라 확신했기에, 더 나은 소통 방법을 찾고 싶었습니다.
슬랙봇이 간단한 아이디어를 실현시키기 좋은 툴임이 분명하다고 판단해서 오래간만에 코드를 더듬어가며 만들기 시작했습니다.
처음 목표는 질문을 만들고 저장하고 활용하는 긱봇과 유사한 기능을 구현하는 것이었습니다. 그 이후엔 자동화였어요! 아이디어가 꼬리에 꼬리를 물어서 요구사항은 다양했지만, 우선 기본적인 슬랙봇을 만들어 전체적인 흐름을 파악하고자 했습니다.
1. 커맨드 입력("/망고")
2. 원하는 대답("망고란~~~")
흐름
0. 슬랙 워크스페이스 생성
1. 슬랙 앱 생성
2. 슬랙 앱 환경 설정
3. 로컬 개발 환경 설정
4. 코드 작성
5. 실행
6. 결과
Slack 공식 웹사이트에서 새 워크스페이스를 생성합니다.
- 워크스페이스의 이름, 용도, 버전 선택 등을 하고 나면 아래처럼 워크스페이스가 생길겁니다.
Your Apps → 'Create New App' → From scratch 순서로 클릭
앱 이름 입력 및 위에 생성한 워크스페이스 선택
Create App
요약
OAuth & Permissions → Add an OAuth Scope에서 [chat:write], [channels:read]선택
'Install to Workspace' 버튼 클릭하여 액세스 권한 허용
Bot User OAuth Token, Signing Secret, Slack_app_token 메모 (코드에서 사용됨)
봇 내 채널에 소환하기
커맨드 생성해놓기
슬랙 앱을 만들었다면 이제 권한을 설정해야 한다. 처음엔 권한이 아무것도 없어서 꼭 해줘야 합니다.
우선은 앱에게 워크스페이스에 글을 쓸 수 있게 권한을 주도록 합시다.
1. OAuth & permissions - Add an OAuth Scope 클릭
2. [chat:write], [channels:read]를 선택한 뒤 맨 위에 있는 Install to Workspace 버튼을 눌러서 액세스 권한을 허용을 해주세요.
이렇게 되면 워크스페이스에 슬랙 앱이 추가됩니다.
이제 OAuth & Permissions 섹션에 보시면 Bot User OAuth Token이라는 게 있는데 이 항목을 메모장에 따로 적어두기! 코드작성 시에 쓰임.
ex) SLACK_BOT_TOKEN="코드 부분입니다"
추가로 initialization_error 가 뜰 수도 있으니 토큰을 추가로 준비해줘야 합니다.
Basic Information - Signing Secret에 있는 토큰을 복사하기. 아래에서 활용됩니다.
이제 커맨드를 만들어볼까요
Slash Comaands - Create New Command로 들어가서 필수값만 적어줍시다.
마지막으로 만든 봇을 원하는 채널에 소환해줍니다!
*여기선 Node.js, bolt를 활용합니다.
3-1. Node.js 프로젝트 생성
아래 코드를 터미널에 순차적으로 입력할 것.
3-2. 환경변수 설정
프로젝트 루트 디렉터리에 `.env`파일을 생성하고, 토큰을 추가합니다.
4. 코드 입력
app.js라는"/망고"라는 커맨드를 입력하면 망고에 대한 정보를 알려주는 코드를 짰습니다.
이렇게 셋업 한 뒤 app.js를 실행하면!
자 그럼 이제 결과를 보시죠
다음 편에 상세 내용을 적기 전에 예고편을 공유드리겠습니다.
1. 커맨드 입력
2. 각각 슬랙봇의 질문에 대답
발전한 부분, 부족했던 부분, 다음 주에 이루고자 하는 구체적인 목표, 이번주 정량 평가를 작성해줍니다.
3. 대기
잠시만 기다리면..
4. AI의 회고 공유
제가 사전에 요청해놓은 템플릿을 바탕으로 AI가 회고 피드백을 제공합니다.
5. 노션 DB에 저장 및 해당 정보를 참고하여 이후 응답에 반영
아래처럼 노션 DB에 저장을 할 수 있고 해당 정보를 참고하여 이후 응답에 반영까지 할 수 있습니다.
이제 기본적인 슬랙봇을 만들었으니, 다음 글에서는 예고한대로 더 복잡한 기능을 추가한 슬랙 + 노션 + Ghat GPT로 AI 회고하기에 대해서 자세히 공유 드리겠습니다.