Search

22. 슬랙봇으로 연결하는 Test-to-SQL

섹션
6. Text-to-SQL: 어제 서울에서 가장 많이 팔린 물건은?

슬랙봇으로 연결하는 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 허용 시 사용량 증가 가능성