Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
슬랙 Bolt를 이용해 개발팀 전체가 사용하는 슬랙봇을 만든 이야기
Search
unsu0707
November 19, 2020
Programming
910
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
슬랙 Bolt를 이용해 개발팀 전체가 사용하는 슬랙봇을 만든 이야기
슬랙 Bolt를 이용해 개발팀 전체가 사용하는 슬랙봇을 만든 이야기
@Kodeveloper 2020.11
unsu0707
November 19, 2020
More Decks by unsu0707
See All by unsu0707
Deep dive into gpt-5-codex
unsu0707
4
3.1k
toB SaaSに導入したAI Agent機能開発奮闘記
unsu0707
0
640
System Specについて調べてみた話
unsu0707
1
570
Other Decks in Programming
See All in Programming
SREの越境 / SRE Collaboration
y0hgi
2
250
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
130
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
290
一人だけ、Kiroが静止する日
hideg
0
120
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
500
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
120
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
200
setup-vp GitLab対応の裏側
naokihaba
0
110
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.4k
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
250
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
699
190k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
30 Presentation Tips
portentint
PRO
1
400
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
360
The Invisible Side of Design
smashingmag
301
52k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
300
Designing Powerful Visuals for Engaging Learning
tmiket
1
570
So, you think you're a good person
axbom
PRO
2
2.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Utilizing Notion as your number one productivity tool
mfonobong
4
590
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Transcript
Slack Bolt로 개발팀 전체가 쓰는 봇 만든 이야기 2020-11-19 Kodeveloper
고군분투기 장은수
2 Introduce Myself Eunsu Jang / 장 은수 일본 생활
5년차, 웹 개발 8년차 엔지니어 Rakuten C2C Service 개발 담당 Web Application Engineer - Ruby on Rails Assistant Engineering Manager - 사원 채용, 팀 관리, 멤버 평가 등
3 Agenda 1. Bot 만든 배경 2. Slack Bolt 3.
Bot 만들기까지 4. Bot 만든 후 5. 정리
4 Bot 만들게 된 배경
5 슬랙 한 채널의 모습
6 빌리거나, 다 썼을땐 전체 멘션으로 알림 빌립니다 개방합니다
7 예약을 하기도 [예약] DEV ooooo-web 내일 12:00~14:00 빌립니다
8 이런 일이 발생하기도..
9 초반엔 비교적 괜찮았는데.. 개발인원이 급증함 ↓ 문제 발생 1.
@here 멘션 난무 2. 현재 사용상황 파악 힘듬
10 어떻게든 해결해보고 싶다
11 이런 식의 ‘사용 상태’를 누가 대신 기억해서..
12 이렇게 안내해줬으면.. DEV API2 빌릴 수 있어요? 그러면 STG
API2 빌릴래요 벌써 @eng1이 사용중이에요 네 그럼 @eng3님이 사용중으로 바꿀게요 @eng3
13 봇으로 만들어야겠다
14 프로토타이핑을 위한 구성
15 Slack Bolt?
16 Slack Bolt? • 슬랙 ‘App’을 편리하게 만들 수 있도록
Slack에서 제공하는 JS프레임워크 • Slack API들을 편리하게 사용 가능 • Node.js로 만들어짐
17 Bolt를 이용한 Slash 커맨드 처리 흐름 Slash 커맨드다! 리퀘스트
보내야겠다 이벤트 떴다! Bolt의 리스너 메소드로 처리하자 Chat.postMessage 레스폰스가 도착했네! 채널에 메세지 적어야지 처리 결과를 내보내자
18 하나씩 살펴보면..
19 Bolt를 이용한 Slash 커맨드 처리 흐름 Slash 커맨드다! 리퀘스트
보내야겠다 이벤트 떴다! Bolt의 리스너 메소드로 처리하자 Chat.postMessage 레스폰스가 도착했네! 채널에 메세지 적어야지 처리 결과를 내보내자
20 Slash 커맨드를 추가
21 Slash 커맨드 Request URL을 설정 이 URL에 Event Payload를
보냄
22 Bolt를 이용한 Slash 커맨드 처리 흐름 Slash 커맨드다! 리퀘스트
보내야겠다 이벤트 떴다! Bolt의 리스너 메소드로 처리하자 Chat.postMessage 레스폰스가 도착했네! 채널에 메세지 적어야지 처리 결과를 내보내자
23 Bolt에서 리퀘스트를 감지(listen)함 모든 incoming 리퀘스트에 대해 /slack/events 엔드포인트가
Listen합니다
24 한 엔드포인트에서 여러 리스너 메소드로 전달 Event API에서의 리퀘스트
.event(eventType, fn); .command(commandName, fn); .action({ callback_id: callbackId }, fn); Slash 커맨드에서의 리퀘스트 Modal 다이얼로그에서의 리퀘스트 /slack/even ts
25 구현 예시 Slash커맨드의 리스너 /deus 만 쓰면, 처리를 고르기
위해 Views.open 레스폰스에서 ’Modal’을 열게됨 /deus [커맨드] 식으로 작성하면, 곧바로 처리가 진행됨
26 Bolt를 이용한 Slash 커맨드 처리 흐름 Slash 커맨드다! 리퀘스트
보내야겠다 이벤트 떴다! Bolt의 리스너 메소드로 처리하자 Chat.postMessage 레스폰스가 도착했네! 채널에 메세지 적어야지 처리 결과를 내보내자
27 코드 예 – 메시지로 결과를 보내는 경우 처리 결과を
chat.postMessage 레스폰스로 보냄
28 메시지로 결과를 보내는 경우 이 API가 불려져서, 채널에 메세지가
전송됨
29 Oauth Scope(Permission) API를 사용하기 위해서는 그 App(Bot)의 Oauth 스코프
설정도 필요
30 만들어진 Bot의 모습
31 모달 다이얼로그를 사용하는 모습
32 현재 사용중인 사람과 시간, 브랜치명 등을 확인 가능
33
34 Slash 커맨드를 사용하는 경우
35 정리
36 Bot을 만들면 좋은 점 - Bolt 편하다 - 구현하는데
난이도가 어렵지 않다 - 나도 재미있게 만들고, 개발팀에도 조금이나마 기여할 수 있었다
37 여러분들도 만들어 보세요!
38 감사합니다