사내 CS 처리용 슬랙봇 개발 개요와 Websocket Mode 사용과 관련된 정리 포스팅입니다.
[목차]
1. cs 처리용 슬랙봇 개발 개요
사내에서 슬랙 메신저를 사용하고 있다.
사업팀 등에서 CS가 들어오면
슬랙으로 문의가 들어오고, 개발팀에서 확인 후 처리하는 식이다.
실적 관리나 CS 히스토리 관리 등의 목적으로
이번에 slack bot을 개발 중이다.
간단하게 CS 요청이 들어오고, 그걸 처리한 후 체크표시(V)를 하면
내가 만든 슬랙 앱으로 통신이 들어오고 서버에서 처리 후 DB 저장 등을 하는
프로그램이다.
2. 사내 방화벽 문제
내가 만든 슬랙 앱을 회사 개발 서버 중 한 곳에 올리고, 그쪽에 요청을 하여
처리하려고 했으나 잘 안 되고 있다. (방화벽 문제)
이전에 로컬테스트를 위해 로컬에서는 ngrok을 이용해서
임시 프록시를 생성하여 slack app의 Event Subscription의 URL에
등록하여 테스트했었다.
(localhost:8080등으로 등록하면 등록이 안 되며,
도메인이 있어야 하기 때문에 ngrok으로 임시도메인 생성하여 테스트)
일단 호출 및 로깅 테스트로 정보가 전달되는 것 까지만 확인 하였고,
사내에서 개발하기 위해 개발서버 중 하나를 URL로 등록하려고 시도했다.
그러나 개발서버는 내부망 전용이라 인바운드IP 정책을 등록해야 했는데,
슬랙 요청지 IP는 고정IP가 아니라 난감한 상황..
슬랙에서 개발 서버로 통신할 때 AWS를 사용하여
주기적으로 IP 변경이 일어날 것이라고 한다.(chatgpt 말씀)
등록하더라도 IP가 바뀌어 언제 또 인바운드IP 정책을
등록해줘야할지 모르기 때문에 다른 방법을 찾아야 했다.
3. 웹소켓 모드(Websocket Mode) 사용하기
Chatgpt와 검색 등으로 슬랙 앱에 웹소켓 모드(Websocket Mode)라는 걸 알게 되었다.
슬랙앱과 통신하기 위해서 크게 Event Subscription 방식과 Websocket Mode 방식
두 가지가 있다고 생각하면 되고, 기존에 방화벽 문제에 걸린 것이 전자다.
슬랙 앱의 토큰 2개 정도를 내가 만든 스프링 애플리케이션 구동시
@Bean설정 등록하면 소켓이 열린 상태가 되고 통신을 할 수 있는 것 같다.
'같다'라고 하는 것은 SSL 오류로 제대로 테스트를 못해본 상황..
사내 통신 정책으로 로컬에서는 기동이 안 된다.
개발서버에 올려서 기동하면 될 것 같긴한데 내일 해봐야겠다.
그리고 slack bot 추가 후 메시지를 보내서 서버 로그를 확인해보면 될 것이다.
(되라 !)
4. 마무리
CS 처리를 위한 슬랙봇 개발 자체는 아직 완성은 안 되었으나,
개발이 어렵다기 보다 설정이나 방화벽이 귀찮게 한다.
어쨌뜬 해결 못하고 찝찝하게 쓴 포스팅이지만 미리 정리해둔다.
그래도 이번 기회에 웹소켓 방식을 써볼 수 있을 것 같다.
7월 전에 어느정도 개발이 마무리 되면 좋겠다!
'개발자 일지 > 기타' 카테고리의 다른 글
개발 블로그를 하는 것이 의미가 있을까? (AI, 회의감, 그럼에도 해야하는 이유) (1) | 2025.04.19 |
---|---|
[Cursor AI] Cursor AI 사용 이유, 자동완성 해제 방법 (0) | 2025.01.11 |
[기타] 개발 커리어를 다시 신경 쓰기까지 + 나의 실적 평가 (0) | 2024.11.26 |
실력 있는 개발자가 되기 위한 깨달음 (2) | 2024.11.24 |
[개발 기타] 최근 학습 내용 정리 및 TODO 정리 (15) | 2024.11.15 |
[자료구조] 자료구조 개념, 종류 알아보기 (2) | 2024.10.02 |
동시성 제어 개념, 방법, Lock 종류 및 비교 (1) | 2024.09.25 |
[양방향 통신 방법]폴링, 롱 폴링, 웹소켓(+STOMP, SockJS) (0) | 2024.09.19 |