Slack Socket Mode๋ ์ด๋ป๊ฒ ๋์ํ๋?
Webhook ์์ด ์์๋ฐ์ด๋ WebSocket์ผ๋ก ์ด๋ฒคํธ ์์
Slack์ ์๋ Webhook(Event Subscriptions)์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ์ง๋ง, ๊ณต๊ฐ URL์ด ํ์ํ๋ค๋ ๋จ์ ์ด ์์์ต๋๋ค. Socket Mode๋ Bot ์๋ฒ๊ฐ Slack์ ์์๋ฐ์ด๋ WebSocket ์ฐ๊ฒฐ์ ๋จผ์ ์๋ฆฝํ๊ณ , Slack์ด ๊ทธ ์ฐ๊ฒฐ์ ํตํด ์ด๋ฒคํธ๋ฅผ pushํ๋ ๋ฐฉ์์ ๋๋ค. ๊ณต๊ฐ URL, SSL ์ธ์ฆ์, ๋ฐฉํ๋ฒฝ ์ค์ ์ด ๋ชจ๋ ๋ถํ์ํฉ๋๋ค. ๋ด๋ถ์ ์ผ๋ก apps.connections.open API๋ก WebSocket URL์ ๋ฐ์ ์ฐ๊ฒฐํฉ๋๋ค.
๊ตฌ์กฐ ๋ค์ด์ด๊ทธ๋จ
๋์ ํ๋ฆ
Bot์ด apps.connections.open API ํธ์ถ โ ์์ WebSocket URL ์์
Bot์ด ํด๋น URL๋ก WebSocket ์ฐ๊ฒฐ ์๋ฆฝ (์์๋ฐ์ด๋)
Slack์์ ์ด๋ฒคํธ ๋ฐ์ (๋ฉ์์ง, ์ฌ๋์ ์ปค๋งจ๋, ์ธํฐ๋์ ๋ฑ)
Slack์ด WebSocket์ผ๋ก ์ด๋ฒคํธ payload๋ฅผ Bot์ push
Bot์ด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ณ , acknowledge ์๋ต ์ ์ก (3์ด ๋ด)
ํ์ ์ Slack Web API๋ก ๋ฉ์์ง ์ ์ก/์ ๋ฐ์ดํธ
์ฅ์
- ✓ ๊ณต๊ฐ URL ๋ถํ์
- ✓ ๋ฐฉํ๋ฒฝ/NAT ๋ค์์ ๋์
- ✓ ngrok ์์ด ๋ก์ปฌ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ✓ SSL ์ธ์ฆ์ ๋ถํ์
๋จ์
- ✗ ์ฐ๊ฒฐ ์ ์ง ํ์ (30์ด ping)
- ✗ ์ฐ๊ฒฐ ๋๊น ์ ์ด๋ฒคํธ ์ ์ค ๊ฐ๋ฅ
- ✗ ๋๊ท๋ชจ ์ฑ์๋ ๋ถ์ ํฉ (์ฐ๊ฒฐ ์ ์ ํ)
- ✗ Webhook ๋๋น ๋๋ฒ๊น ๋๊ตฌ ๋ถ์กฑ