회사에서 쓸 챗봇이라고 하면 아무래도 조직 대화나 메신저들이 많을텐데..요샌 Slack을 많이 연동해 쓴다 들었다.
나또한 학원에서 이걸로 의사소통이 이루어지고 있으니...

구글에서 슬랙 api로 검색해서 들어가자

로그인 하고 ... 난 이미 만들었지만 나중에 또 참고하거나 처음보는 사람을위해서 조금더 정리하면

Create New App 을 눌러서 "앱 만들기" 하면된다.
선택지가 2개인데 From manifest 말고 , From scratch (처음부터) 누르고 시작하자
메니페스트는 아래같은 경우 쓰인다고한다.
앱의 기능·권한·설정 등을 YAML 파일로 한 번에 정의하는 방식.
|

개인용으로 만들면 슬랙에서 이미 만들어놓은 팀을 선택하라고하는데, 요건 개발단계에서 쓰는거라 상관없고
추후 개개인이 로그인 하도록 구현할 예정이다.
여기서 Bot Token 방식과 Oauth 방식으로 갈리는데, 아래 내용을 지피티를 통해 정리해뒀다.
① Bot Token 방식 (하드코딩 방식)개발자가 Slack 앱을 워크스페이스에 직접 설치하고,발급된 봇 토큰(bot token) 을 서버에 넣어 사용하는 구조. ② OAuth 방식 (사용자 개별 연동)사용자가 Slack OAuth 화면에서“이 앱을 내 워크스페이스에 설치하겠다” 를 허용하는 구조. |
Bot Token 방식
✔ 개념
- 개발자가 Slack 앱을 직접 설치해서 만들어낸 xoxb-... 토큰을 서버에 넣고 사용
- 하나의 워크스페이스에 고정된 하나의 봇으로 동작
✔ 장점
- 구현이 매우 쉽다 (토큰 1개면 바로 메시지 전송 가능)
- 팀 내 슬랙에 “알림 봇”, “빌드/배포 알림” 만들 때 적합
- 초기 데모/MVP로 빠르게 붙이기 좋음
✔ 단점
- 한 회사/한 워크스페이스에서만 사용 가능
- 개인별 연동이 불가능
- 사용자마다 다른 Slack 채널/DM을 쓰는 구조는 지원 어려움
- 토큰 유출 시 권한 손상 위험 큼
✔ 적합한 경우
- 팀 내부 자동화 봇
- 단일 조직에서 사용하는 DevOps 알림 봇
- MVP 수준의 빠른 테스트
OAuth 방식 (사용자 연동)
✔ 개념
- 각 사용자가 Slack OAuth 인증 화면에서
“내 워크스페이스에 이 앱을 설치할게요”
를 허용하며 개별 토큰을 발급받는 구조 - Notion, Linear, Asana 같은 SaaS 서비스들이 사용하는 표준 방식
✔ 장점
- 사용자별 Slack 계정/워크스페이스 연동 가능
- “나의 DM으로 보내줘”, “내가 속한 채널에서 고르기” 같은 개인 비서 기능 구현 가능
- Slack을 쓰는 사람만 선택적으로 연결할 수 있어 UX 유연함
- B2C/B2B 서비스 확장에 매우 유리
- 보안/관리 기준에서도 표준적 방식
✔ 단점
- Bot Token 방식보다 구현 난이도가 높음
- Redirect URI, state 검증, code ↔ token 교환, DB저장 작업 필요
- 토큰 갱신/권한관리 등 유지보수 포인트가 존재
✔ 적합한 경우
- 여러 사용자가 사용하는 개인 Assistant/AI 서비스
- SaaS 형태의 Slack 연동 서비스
- “내 계정 DM으로 자동 보고서/알림 보내기” 같은 기능
4. 언제 무엇을 선택하면 좋을까?
✔ 단일 조직 / 팀 내 자동화 → Bot Token
- 알림 봇
- 팀 내부 자동화 메시지
- 회사 내부 시스템 통합
✔ 개인 비서 / 사용자 기반 서비스 → OAuth
- Slack을 쓰는 사람만 선택적으로 연결
- 개인 DM/개인 채널 기반 기능
- 서로 다른 조직에서도 사용 가능
주의사항
Bot Token 방식 주의점
- 토큰 유출 시 큰 보안 위험
- 서비스화가 사실상 불가능(한 워크스페이스에만 고정)
- 사용자별 권한 분리 불가
OAuth 방식 주의점
- redirect_uri 설정 필수
- state 값 검증해야 보안 문제 없음
- 토큰 저장 시 암호화 필요
- 스코프 최소 권한으로 설정해야 함
요약
| 대상 | 단일 팀/조직 | 여러 사용자/다른 조직 |
| 연동 과정 | 매우 쉬움 | 다소 복잡 |
| 개인화 | 불가능 | 가능 |
| 확장성 | 낮음 | 높음 (SaaS 표준) |
| 보안 | 토큰 유출 위험 | OAuth 표준 방식 (안정적) |
| 추천 용도 | 내부 봇, 데모 | 개인 Assistant / AI 서비스 |
이제 작업을 해서

요렇게 키를 받았고 . Client ID, Client Secret 을 활용하면된다.

이제 로그인후 Slack연동하기를 누르면

여기 워크스페이스 이름을 쓰라고나오는데 ..

슬랙 왼쪽 아이콘 눌렀을때 보이는 "ax-x-1" 이걸 그대로 넣으면된다.

다시 구글로그인을 하면 ,동의가 뜨고..(이건 구글 api 연동시 개인형으로하면 안뜨는걸로 아는데...지금 팀원이 내가만든 google api를 기업용으로 바꿔놨다.

짜잔...

설정을 빼먹었따....
아까 그 ..아래로 다시 들어가서 ..
Slack API: Applications | Slack
Your Apps Don't see an app you're looking for? Sign in to another workspace.
api.slack.com

왼쪽 Features 에 .. OAuth & Permissions 에 들어가야한다.

어랏.... 아직 https 는 구현못했는데@!
http의 보안이 추가된 https 만 된다고함..

ngrok 이라는 기능으로 임시 URL 주소를 https: 랜덤/api/~~ 식으로 만드는 방법이 있긴한데..
매번 테스트 할때마다 url이 바뀌는 상황이라 팀플엔 부적합하다....
일단 언능 서버에 올리고 추가 수정해야겠다..
'학원 TEAM 프로젝트 > 심화과정 Team Project(최종)' 카테고리의 다른 글
| 기록 20 . 멀티 에이전트 구현 하다. (0) | 2025.12.03 |
|---|---|
| 기록 19 . 브레인스토밍 모듈 평가 및 고도화. (0) | 2025.11.28 |
| 기록 17 . 애니메이션 음성이 필요한데... (0) | 2025.11.24 |
| 기록 16 . 음성을 넣어보려고한다. (XTTS-v2) (0) | 2025.11.24 |
| 기록 15 . 브레인스토밍 콘솔모드를 프론트로 출력하기 (0) | 2025.11.19 |