슬랙봇으로 연결하는 Text-to-SQL
연결 방식 선택
다양한 연결 옵션
•
Streamlit 연결 가능
•
n8n 기본 채팅 UI 사용 가능
•
강의를 위해 다양한 시나리오 준비
Slack 구현 방식 비교
멘션 방식 (선택한 방식)
•
슬랙 채널에서 앱을 멘션하여 워크플로우 실행
•
텍스트만 입력하면 되므로 별도 UX 불필요
•
지연 시간 없음
슬래시 커맨드 방식
•
새로운 팝업을 통해 실행
•
슬래시 커맨드에서 팝업까지 약간의 지연 발생
•
테이블 설정, 다양한 조건 제한 등이 필요한 경우 적합
Slack 앱 생성 과정
앱 생성 단계
1.
2.
Your Apps → Create an App 클릭
3.
From Scratch 선택
4.
앱 이름 입력 및 워크스페이스 선택
5.
Create an App 클릭
이벤트 구독 설정
1.
Event Subscription 활성화
2.
권한 설정: Bot 활성화
3.
Bot Event 추가: App Mention 클릭
4.
message.im 입력 (DM 기능, 실제 작동 안 됨)
n8n 연결 설정
트리거 변경
•
기존 트리거 삭제
•
Slack 트리거 검색 후 "On Bot App Mention" 선택
•
웹훅 URL 복사
URL 설정 주의사항
•
포트 번호(5678) 제거 필요
•
실제 n8n 주소에는 포트 번호가 없음
•
강의 자료에 host와 protocol 추가 방법 업데이트됨
Slack API 검증
•
웹훅으로는 서명 응답 불가능
•
Slack 트리거 사용 필수
•
API에서 주소 검증 완료
토큰 설정
OAuth & Permission 설정
1.
이벤트 저장 후 OAuth & Permission 클릭
2.
Scope에 chat:write 추가
3.
Install to Workspace 실행
4.
생성된 토큰 복사하여 n8n에 등록
채널 설정
•
채널에 앱 추가: 채널명 → Integration → Add App
•
Watch All Workspace vs By ID 선택 가능
•
특정 채널 타겟팅 권장 (모니터링 목적)
워크플로우 수정
메시지 처리
•
기존 채팅 입력을 Slack 트리거로 변경
•
멘션된 텍스트에서 실제 질문 부분만 추출
•
정규 표현식으로 멘션 부분 제거 (암기 불필요)
•
first 사용 (item 대신)
응답 메시지 설정
•
Slack Send Message 노드 추가
•
채널 정보를 트리거에서 가져와 연결
•
쿼리 실행 결과와 함께 실제 쿼리도 전송 권장
◦
사용자 검증 가능
◦
쿼리 작성 방식 확인 가능
◦
신뢰성 향상
◦
데이터베이스 스키마 이해 도움
•
쿼리는 triple backtick으로 코드 형태로 전송
프로덕션 배포
테스트와 프로덕션 차이점
•
테스트 URL과 프로덕션 URL의 차이: test 부분만 제거
•
워크플로우를 Active로 설정
•
Event Subscription에서 프로덕션 URL로 업데이트
•
창을 닫아도 응답 가능한 상태 유지
실제 사용 시 고려사항
•
우아한형제들의 Ask 솔루션 사례
•
다양한 채널에서의 무분별한 사용 방지 필요
•
특정 채널로 제한하는 것을 권장
•
DM 허용 시 사용량 증가 가능성