회사에서 쓸 챗봇이라고 하면 아무래도 조직 대화나 메신저들이 많을텐데..요샌 Slack을 많이 연동해 쓴다 들었다.

나또한 학원에서 이걸로 의사소통이 이루어지고 있으니...

 

 

 

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

 

 

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

 

 

 

 

 

Create New App 을 눌러서 "앱 만들기" 하면된다. 

선택지가 2개인데 From manifest 말고 , From scratch (처음부터) 누르고 시작하자 

 

메니페스트는 아래같은 경우 쓰인다고한다. 

앱의 기능·권한·설정 등을 YAML 파일로 한 번에 정의하는 방식.
 
  • 대규모 조직
  • DevOps 자동화
  • 버전 관리(Git으로 Slack App 구성 관리)
  • 여러 환경(dev/stage/prod) 자동 배포

 

개인용으로 만들면 슬랙에서 이미 만들어놓은 팀을 선택하라고하는데, 요건 개발단계에서 쓰는거라 상관없고

추후 개개인이 로그인 하도록 구현할 예정이다.

 

 

여기서 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 값 검증해야 보안 문제 없음
  • 토큰 저장 시 암호화 필요
  • 스코프 최소 권한으로 설정해야 함

 요약

구분Bot Token 방식OAuth 방식
대상 단일 팀/조직 여러 사용자/다른 조직
연동 과정 매우 쉬움 다소 복잡
개인화 불가능 가능
확장성 낮음 높음 (SaaS 표준)
보안 토큰 유출 위험 OAuth 표준 방식 (안정적)
추천 용도 내부 봇, 데모 개인 Assistant / AI 서비스

 

 

 

 

이제 작업을 해서 

 

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

 

 

 

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

 

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

 

 

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

 

 

 

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

 

 

 

짜잔...

 

 

설정을 빼먹었따....

 

아까 그 ..아래로 다시 들어가서 ..

 

https://api.slack.com/apps/

 

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이 바뀌는 상황이라 팀플엔 부적합하다....

일단 언능 서버에 올리고 추가 수정해야겠다..

+ Recent posts