본문 바로가기
개발자 일지/기타

[개발 일지] CS 처리용 슬랙봇 개발 #1 (개발 개요, Websocket Mode 사용)

by 네빌링 2025. 4. 23.

사내 CS 처리용 슬랙봇 개발 개요와 Websocket Mode 사용과 관련된 정리 포스팅입니다.

 

 

[목차]

  1. CS 처리용 슬랙봇 개발 개요
  2. 사내 방화벽 문제
  3. 웹소켓 모드(Websocket Mode) 사용하기
  4. 마무리

1.  cs 처리용 슬랙봇 개발 개요

 

사내에서 슬랙 메신저를 사용하고 있다.

사업팀 등에서 CS가 들어오면

슬랙으로 문의가 들어오고, 개발팀에서 확인 후 처리하는 식이다.

 

실적 관리나 CS 히스토리 관리 등의 목적으로

이번에 slack bot을 개발 중이다.

 

간단하게 CS 요청이 들어오고, 그걸 처리한 후 체크표시(V)를 하면

내가 만든 슬랙 앱으로 통신이 들어오고 서버에서 처리 후 DB 저장 등을 하는

프로그램이다.

 

2.  사내 방화벽 문제

 

내가 만든 슬랙 앱을 회사 개발 서버 중 한 곳에 올리고, 그쪽에 요청을 하여

처리하려고 했으나 잘 안 되고 있다. (방화벽 문제)

 

이전에 로컬테스트를 위해 로컬에서는 ngrok을 이용해서

임시 프록시를 생성하여 slack app의 Event Subscription의 URL에

등록하여 테스트했었다.

(localhost:8080등으로 등록하면 등록이 안 되며,

도메인이 있어야 하기 때문에 ngrok으로 임시도메인 생성하여 테스트)

 

슬랙봇_개발기_1_방식1
내가 만든 애플리케이션 URL을 등록 후 호출하는 방식

 

 

슬랙봇_개발기_1_방식2
웹소켓을 열어서 슬랙 이벤트에 반응하는 방식

 

일단 호출 및 로깅 테스트로 정보가 전달되는 것 까지만 확인 하였고,

사내에서 개발하기 위해 개발서버 중 하나를 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월 전에 어느정도 개발이 마무리 되면 좋겠다!

반응형